小马的世界
//Pony's World
联系我|Contact Me 👉
小马的世界

读书笔记-软件设计的哲学【19】软件发展趋势

2026-06-27
为了进一步说明本书讨论的设计原则,本章将分析过去几十年软件开发中流行起来的一些趋势和模式。对于每一种趋势,我都会讨论它与本书原则之间的关系,并利用这些原则来评估:这种趋势究竟是在帮助我们对抗软件复杂性,还是在加剧复杂性。 面向对象编程与继承...
阅读更多|Read more

读书笔记-软件设计的哲学【18】代码应该一目了然

2026-06-27
晦涩性(Obscurity) 是第 2.3 节中提到的复杂性的两大根源之一。当一个系统的重要信息对新加入的开发者来说并不明显时,就会产生晦涩性。解决晦涩性的办法,就是以一种能够让代码本身更容易理解的方式编写代码。本章将讨论哪些因素会让代码变...
阅读更多|Read more

读书笔记-软件设计的哲学【17】一致性

2026-06-27
一致性是降低系统复杂度、让系统行为更加直观的一项强大工具。如果一个系统具有一致性,这意味着相似的事情会以相似的方式完成,而不同的事情则会以不同的方式完成。一致性能够产生认知杠杆:一旦你学会了某种事情在一个地方是如何实现的,你就可以利用这些知...
阅读更多|Read more

读书笔记-软件设计的哲学【16】修改现有代码

2026-06-22
第1章介绍过,软件开发是一个迭代且渐进的过程。一个大型软件系统会经历一系列演化阶段,每个阶段都会增加新的能力并修改现有模块。这意味着系统设计始终处于不断演进之中。系统在最初阶段不可能就拥有完美的设计;一个成熟系统的设计,更多是由其演化过程中...
阅读更多|Read more

读书笔记-软件设计的哲学【15】先写注释

2026-06-22
将注释作为设计过程的一部分 许多开发者都会把编写文档推迟到开发流程的最后,也就是编码和单元测试全部完成之后。这几乎是产生低质量文档最可靠的方法之一。编写注释的最佳时机,其实是在开发过程的开始阶段,也就是写代码的同时。先写注释,会让文档编写成...
阅读更多|Read more

读书笔记-软件设计的哲学【14】命名

2026-06-22
为变量、方法以及其他实体选择名称,是软件设计中最被低估的方面之一。好的名字本身就是一种文档:它能让代码更容易理解,减少对额外文档的依赖,也更容易发现错误。相反,糟糕的命名会增加代码复杂度,制造歧义和误解,最终导致 Bug。 命名是“复杂度是...
阅读更多|Read more

读书笔记-软件设计的哲学【17】一致性(Consistency)

2026-06-22
一致性是降低系统复杂度、让系统行为更加直观的一项强大工具。如果一个系统具有一致性,这意味着相似的事情会以相似的方式完成,而不同的事情则会以不同的方式完成。一致性能够产生认知杠杆:一旦你学会了某种事情在一个地方是如何实现的,你就可以利用这些知...
阅读更多|Read more

读书笔记-软件设计的哲学【13】注释应该描述那些从代码中看不出来的事情

2026-06-21
编写注释的原因在于:编程语言中的语句无法完整表达开发者在编写代码时脑海中的所有重要信息。注释记录了这些信息,使后来接手代码的开发者能够更容易地理解和修改代码。 编写注释的指导原则是: 注释应该描述那些从代码中无法直接看出来的事情。 代码中有...
阅读更多|Read more

读书笔记-软件设计的哲学【12】为什么要写注释?四种借口

2026-06-21
代码中的文档(in-code documentation)在软件设计中扮演着至关重要的角色。注释不仅能够帮助开发者理解系统并高效工作,其价值还远不止于此。文档对于抽象(abstraction)同样至关重要;如果没有注释,你就无法隐藏复杂性。...
阅读更多|Read more

读书笔记-软件设计的哲学【11】设计两次

2026-06-21
软件设计是一件困难的事情,因此你第一次想到的模块或系统结构方案,极不可能就是最佳设计。对于每一个重要的设计决策,如果能够认真考虑多个备选方案,你最终往往会得到更好的结果: 设计两次(design it twice)。 假设你正在为一个 GU...
阅读更多|Read more