代码大全

软件的首要技术使命:管理复杂度

本质的问题和偶然的问题,导致软件开发变得困难
在软件架构的层次上,可以通过把整个系统分解为多个子系统来降低问题的复杂度

解决复杂度:
把任何人在同一时间需要处理的本质复杂度的量减少到最低
不要让偶然性的复杂度无谓的快速增长

理想的设计特征

  • 最小的复杂度
  • 易于维护
  • 松散耦合
  • 可扩展性
  • 可重用行
  • 高扇入。让大量的类使用某个给定的类。意味着设计出得系统很好的利用了在较低层次上的工具类
  • 低扇出。让一个类较少量或者适中的使用其他的类。不超过7个。
  • 可移植性
  • 精简性
  • 层次性
  • 标准技术