《A Philosophy of Software Design》
全书围绕一个词:复杂度 complexity。
复杂性来源于,1 依赖,2 阴暗 obscurity
-
Deep module, 信息隐藏,不同层次的抽象。简单说,一个类应该做很多,但是对外抽象却很简单。从而降低模块之间的依赖。
-
命名,注释,代码风格约定。都能帮助别人很容易读懂,降低认知成本。如果别人能很容易读懂你的代码,那就是好代码。如果别人不容易读懂,你自己觉得再清晰,也不行。一定要用读者的角度写代码,降低代码阴暗程度。