架构之美 摘抄

开发团队中健康的工作关系将直接有益于软件设计。不健康的关系和个性膨胀会导致不健康的软件。

内聚和耦合

软件设计的关键品质是内聚和耦合。这不是什么新奇的“面向对象”概念;我们的目标是通过设计使系统的组件具备下列品质:

高内聚:

内聚是一个测量指标,说明相关的功能如何聚集在一起,模块内的各部分作为一个整体工作的如何。内聚性是将模块粘成一个整体的胶水。

弱内聚的模块是不良分解的信号。每个模块都必须具有清晰定义的角色,而不只是一堆不相关的功能。

低耦合

耦合是模块之间独立性的测量指标--它们之间进出“电线”的数量。在最简单的设计中,模块几乎没有什么耦合,所以彼此之间的依赖关系较少。

显然,模块不能够完全解耦,否则它们将根本不能够一起工作!

好的软件设计会限制通信的线路,只提供那些绝对需要的。这种通信线路是确定架构的一部分因素。

好的设计考虑到内部组件连接机制和连接数(以及连接性质)。系统的单个部分应该能够独立存在。紧耦合将导致不可测试的代码。

松弛而模块的架构将导致每个代码组件编写得不好,并且相互之间匹配得不好。它也会导致重复的代码和工作。

 

保持品质

从一开始,“设计之城”就准备好了一些品质控制过程:

  • 结对编程。
  • 对没有结对编程的工作进行代码/设计复审。
  • 对每一段代码进行单元测试。

这些过程确保了系统中从未加入不正确的,不合适的变更。所有不符合软件设计的内容都被拒之门外。

 

管理技术债务

随着最后期限的临近,一些不太重要的功能被砍掉,让产品能够准时推出。小的代码“瑕疵”或设计问题允许存在于代码集中,要么是为了让功能快一点实现,要么是为了在接近发布时避免高风险的改动。

这些逃避职责的地方被标记为技术债务,并安排在后续的版本发布中修正。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2012-11-12 10:32  duanxz  阅读(301)  评论(0编辑  收藏  举报