Oasis's Cloud

一个人的首要责任,就是要有雄心。雄心是一种高尚的激情,它可以采取多种合理的形式。
—— 《一个数学家的辩白》

软件设计的哲学

设计原则总结


  1. 复杂性是增量的:你必须在细枝末节上下功夫
  2. 能工作的代码是不够的
  3. 不断进行小额投资,改进系统设计
  4. 模块应该是深的
  5. 接口的设计应该使常见情况尽可能简单
  6. 模块的简单接口比简单实现更重要
  7. 通用模块更深
  8. 将通用代码与专用代码分开
  9. 不同层应有不同抽象
  10. 减低复杂性
  11. 将错误定义为不存在
  12. 设计两次
  13. 注释应该描述代码中不显而易见的内容
  14. 软件的设计应该便于阅读,而不是便于编写
  15. 软件开发的增量应该是抽象概念,而非特性
  16. 把重要的东西和不重要的东西分开,强调重要的东西