《程序员修炼之道——从小工到专家》阅读笔记02
第四章——注重实效的偏执
你不可能写出完美的软件。把它视为生活的公理,接受它,拥抱它,庆祝它。因为完美的软件不存在。
按合约设计(简称DBC),使用它的最大好处是它迫使需求与保证的问题走到前台来。
尽早检测问题的好处之一是你可以更早崩溃。而许多时候,让你的程序崩溃是你的最佳选择。要崩溃,不要破坏。(小声bb:不是很理解)
如果它不可能发生,用断言确保它不会发生。
将异常用于异常的问题。
分配资源的历程要有始有终。
第五章——弯曲,或折断
把你的代码组织成最小组织单位(模块),并限制它们之间的交互。如果随后出于折中必须替换某个模块,其他模块仍能够继续工作。使模块之间的耦合减至最小。
要配置,不要集成。将抽象放进代码,细节放进元数据。从而带来更灵活、可适应性更好的程序。
分析工作流,以改善并发性。可以使用像UML活动图这样的表示法来捕捉它们对工作流的描述。
使视图与模型分离。
黑板方式的编程消除了对太多接口的需要,从而能带来更优雅、更一致的系统。用黑板协调工作流。
第六章——当你编码时
避免用巧合编程,要深思熟虑的编程。总是意识到你在做什么,不要盲目的编程,按照计划行事,依靠可靠的事物,把时间花在重要的事情上。
O()表示法是处理近似计算的一种数学途径。即算法复杂度。
重写、重做和重新架构代码合起来,成为重构。违反DRY原则的重复、非正交的设计、过时的知识、性能等需要考虑重构代码。
测试你的软件,否则你的用户就得测试。测试是技术,更是文化。
不要使用你不理解的向导代码。
嗯还是得学,书里很多东西不理解,以后学的知识多了再看,估计会更有收获一点。
标签:
阅读笔记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!