阅读笔记四:《程序员修炼之道:从小工到专家》之“正交性”
“正交性”的概念十分精妙,它倡导系统的各个组件或功能之间应尽可能独立,互不干扰。这样一来,当需要修改或扩展某一部分时,不会对其他部分产生连锁反应。以Web应用开发为例,将数据层、业务逻辑层、表现层进行良好的分离,就是正交性的体现。如果各层之间耦合过紧,比如在表现层直接操作数据库,那么当数据库结构发生变化时,表现层的代码也需要大量修改,维护成本极高。遵循正交性原则设计系统,能让系统更具灵活性和可维护性,是构建优质软件的重要设计思路。
阅读笔记五:《程序员修炼之道:从小工到专家》之“可撤销性”
“可撤销性”强调在做决策或进行开发工作时,要考虑到操作的可逆性。在软件开发中,这意味着我们要为可能出现的错误或变更做好准备。比如使用版本控制系统,能让我们轻松回退到之前的代码版本;在设计功能时,采用可配置的方式,方便后续调整。我曾经在没有考虑可撤销性的情况下,对数据库表结构进行了不合理的修改,导致后续数据处理出现大问题,又难以恢复到之前的状态,耗费了大量时间去修正。这让我深刻体会到,具备“可撤销性”的思维,能让我们在开发过程中更有底气,减少对错误的恐惧,更从容地推进工作。
阅读笔记六:《程序员修炼之道:从小工到专家》之“ Tracer Bullets”(曳光弹)
“Tracer Bullets(曳光弹)”的开发方法主张快速构建一个能贯穿整个系统流程的原型,验证端到端的可行性,然后再逐步完善细节。这种方法能让我们尽早发现系统在整体流程上的问题,而不是在细节完善后才发现架构或流程层面的错误。比如开发一个电商系统,先快速实现从用户下单到支付成功的核心流程,不管界面是否美观、异常处理是否完善,先确保这个核心链路是通的。这样可以避免在打磨细节的过程中,才发现核心流程存在根本性问题,从而节省大量的时间和精力,是一种高效的开发策略。