infoQ_Architect_february

来源:互联网 发布:数控g92螺纹编程格式 编辑:程序博客网 时间:2024/06/03 23:40

1、所谓条条大路通罗马,对于同一个问题,可选的编程语言、方法、框架、平台多之又多。架构师的职责是找到那条满足客户最本质需求的最优解。洞悉层次需求、之气所以然,是架构师们必须培养的两项基本素质。

2、高内聚:系统内各个模块聚集在一起协调工作能力

     低耦合:模块间的独立性

3、软件架构不是一成不变的,需要时就改变它。要想做到可以修改,架构就必须保持简单。牺牲简单性的修改要抵制

4、延迟设计决定,知道你必须做出这些决定为止。不要再你还不知道需求的时候就做出架构决定,不要猜测。

5、结对编程:

      找个水平差的不太远的程序员和自己配成一对。只用一台计算机,大家选一个人坐在键盘前面负责输入,另一个人坐在后面口述。两个人要不断的交流,频率不应低于一分钟一次。整个的设计思想由后面只动口不动手的人主导,而由操键盘的人做实现。由于人的思维速度是快于输入代码的速度的。那么观看的人可以有空闲的时间做额外的思考,观察代码写的有没有问题,结构有没有问题。

6、设计中的品质控制:结对编程、代码/设计复审、对每一段代码进行单元测试

7、Conway法则:代码结构符合团队结构。简而言之,“如果你让4个小组开发一个编译器,就会得到一个4阶段编译器 ”

8、好构架的一些前提(仅记录我易忽略的):

(1)进行前期设计:分析需求、制定构架

(2)在开发过程中保持清晰地设计观点:从原理上理解各个模块,做到知其所依然

(3)不要害怕改变设计,没有什么是一成不变的。切记!

(4)确保与合作者有健康的工作关系:包括设计者、经理、客户等管理人员

(5)在合适的时候做出设计决定,当你知道所有必要信息时在做出决定。延迟那些暂时不能做出的决定

原创粉丝点击