每一支箭都是一次全新的发射。
如果一个项目没有提出挑战,那么就不需要认真地讨论设计,这类项目早已有现成的框架,没有必要去颠覆它。
软件开发中最基本的问题就是复杂性。只存在一种对付复杂性的基本方法:分而治之。一层意思是将一个问题可以分成两能分别处理的子问题。另一层意思是将一个类模块或者类,分成两部分(实现与其用户),它们之间(情况下)通过一个定义良的界面相互联系。这是处理程序中内在复杂性的基本方式。再一层意思设计一个程序的过程也可以分割成一些独痒痒活动,在所涉及的人之间(理想情况)也有定义良好的相互关系。这就是处理开发过程的和所涉及人员的内在复杂性的基本途径。
无论对人还是对程序,分开总是容易的,更困难的部分是保证分界两边各个部分间的有效通信,而又不破坏这种分解,不抑制协作所需要的通信。
程序需要有一个清晰的结构,以便较容易:
- 调试
- 移植
- 扩展
- 重组
- 理解