程序员的修炼之道:从小工到专家 读书笔记四
第四章 注重实效的的偏执
本章开头就说明了:你不可能写出完美的软件。给定了这么压抑的事实,那么注重实效的程序员如何把他转化为有利条件呢?
他们不信任自己,这对自己会犯的错误,做出防卫型代码。
按合约设计
通过合约进行设计,按合约设计:Designed by Contract,俗称DBC。合约:合约约定了进入一个函数/方法/模块的前条件,即进入模块必须满足的条件,常常指满足模块运行的情景或变量取值范围等等;后条件,即模块需要达成的结果,模块运行之后所能达到的状态;类不变项,是对于模块的约束,在调用模块前后始终为真的一些描述。
死程序不说谎
一个出现问题的程序可能会因为异常操作造成很大的破坏,所以运行出现问题时,崩溃好于破坏。要利用异常机制。早崩溃。早发现问题。
断言式编程
更好的暴露了调用者的错误,便于调试,最少的处理代价。
何时使用异常
检查每一个可能的错误,尤其是意料之中的错误是有必要的。要将异常用于真正异常情况的处理而非模块逻辑的一部分。检查这一点的方式是去掉异常,观察模块能否正常运作。错误处理器是另一种选择。
怎样配平资源
申请资源后,要记得最后解除该资源,在java中配平资源,无论怎样的运行,最后都要用finally代码段进行资源的关闭。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通