软件设计的哲学

limboy's HQ at 
软件设计的哲学的配图
今天要推荐的书是「A Philosophy of Software Design」,作者是 Tcl 语言的设计者,也是斯坦福大学的教授:John Ousterhou。他也在 Google 做了一个相关的分享。作为一个还在从事编程的大佬,看看他是怎么理解软件开发的哲学的。一切都是关于复杂度在作者看来,「复杂度」是核心,如果无法处理好复杂度,就很难构建大型/复杂的系统。复杂度的定义复杂度有没有简单的定义呢,作者认为复杂度就是理解和修改系统的成本。比如是否容易理解某一段代码是怎么工作的,如何跟上下游衔接的,处于架构中的哪个部分,改动它会对那些模块产生影响。如果这些都比较模糊,那就是复杂的。还有一点是……