http://martinfowler.com/articles/designDead.html#DoYouWannaBeAnArchitectWhenYouGrowUp

在马大叔的文章中讨论了计划式设计和进化式设计的不同

在Planned Design中,人们通常会做一个Front-Big-Design,其优势就是可以讲设计职责和开发职责区分开,设计的人负责设计,开发的人负责开发。但是在现代软件工程领域Planned Design有诸多的缺点:

第一,过度依赖于设计者的技能,如果设计者能力不足或者设计不周全而使得实现者产生疑问时,沟通较复杂,过程较长。

第二,这种模式使得设计者完全脱离编码,而技术在这过程中会变革,设计思想也会变革,实现方式也会变革,而设计者无法发觉这一些,设计也就逐步落后。

第三,很多时候设计的问题源于需求的变化,几乎没人能够在设计之前预测出所有的需求可变点。

综合上述,马大叔更喜欢XP推崇的code and fix进化式设计方式,只在前期做最简单的设计,不需要为未来变化提供任何空间,而等到变化发生时,通过重构完成改变,通过单元测试保证改变的正确。

我记得还有人说过,最好的设计往往不是设计出来的,而是随着代码的不断编写而自然浮现出来的,在很多优秀的开源项目中下载不到设计文档我想很大程度上是因为“最好的设计说明就是代码本身”而在前期投入低设计时间甚至没有UML图,这是敏捷所倡导的。

相关文章:

  • 2021-11-30
  • 2021-09-18
  • 2021-07-06
  • 2021-12-02
  • 2022-02-22
  • 2021-12-19
  • 2021-07-07
  • 2021-09-08
猜你喜欢
  • 2022-12-23
  • 2021-09-13
  • 2021-11-22
  • 2022-02-07
  • 2022-01-19
相关资源
相似解决方案