Home
Archives
Tags
About Ma
RSS
小马的世界
//Pony's World
关于我|About Me
联系我|Contact Me 👉
读书笔记-软件设计的哲学【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
读书笔记-软件设计的哲学【10】让错误不再成为“特殊情况”
2026-06-07
异常处理(Exception Handling)是软件系统复杂性的最主要来源之一。处理特殊情况的代码,本质上比处理正常情况的代码更难编写;而开发人员往往在定义异常时,并没有充分考虑这些异常将如何被处理。 本章将讨论为什么异常会对系统复杂度产...
阅读更多|Read more
读书笔记-软件设计的哲学【9】一起更好,还是分开更好?
2026-06-01
软件设计中最根本的问题之一是:给定两项功能,它们应该在同一个地方一起实现,还是应该分别实现? 这个问题适用于系统中的所有层次,例如函数、方法、类以及服务。 例如: 缓冲(buffering)功能应该包含在提供流式文件 I/O 的类中吗? ...
阅读更多|Read more
读书笔记-软件设计的哲学【8】向下拉取复杂度
2026-05-31
本章介绍了一种关于如何构建“更深层(deeper)类”的思考方式。 假设正在开发一个新的模块,并发现其中存在某些无法避免的复杂性。那么,更好的做法是什么?是让模块的使用者去处理这些复杂性,还是由模块在内部自行消化这些复杂性?如果这些复杂性与...
阅读更多|Read more
下一页|Next