第四章中主要讲了五节,分别是按合约设计、死程序不会说话、断言式编程、何时使用异常和怎样匹配资源。
在按合约设计中,注重实效的程序员会不信任自己,所以他们针对自己的错误行为进行防卫性编码,按合约设计简称为DBC是Bertrand Meyer为Eiffel语言发展的概念,它的核心是用文档记载模块的权利与责任,并进行校验。它的目的是对函数做一些前置检查和后置保障,结合编译器的支持,我们可以今早的发现代码问题。在DBC中有三个概念分别是前条件、后条件和类不变项,分别是为了调用历程必须为真的条件、历程保证会做的事情,其完成是的状态和确保从调用者的视角来看,该条件总是为真。
在死程序不说谎中这样说,对待程序员我们通常会有“它不会发生”的心理状态。这会导致我们忽略一些问题。对于注重实效的程序员来说,如果我们忽略了一个错误,将是非常糟糕的事情。我们一些异常情况,我们应该及早崩溃,用于强调问题的存在。引起崩溃的时候不要造成破坏,比如申请的资源还没有释放等情况。死程序带来的额危害必有隐患的程序要小的多。
在在断言式编程中,如果它不可能发生,用断言确保他不会发生。assert(string !=NULL)断言里面写的为真的条件,当不为真的时候出发断言,程序退出。断言检查的是绝不应该发生的事情,而不是错误处理。断言应该一直开着,不要在线上环境关掉它。断言对应的是一种强提示,他迫使我们必须遵守,像是单元测试,我们通常都使用断言的形式进行检查。
在何时使用异常一节中,异常很少作为程序的正常流程的一部分使用,异常应该保留给意外情况。如果移除了所有的异常处理器,代码就无法运行,那说明异常正在被用于非异常情况中。是否应该使用异常取决于实际情况,比如打开文件,文件不存在,是否应该发生异常?如果文件应该在那里,那么异常就有正当理由,如果不确定文件是否在那里,返回错误就可以了。
在怎样配平资源中,对于资源的管理要有始有终,你分配了对应的资源,就需要考虑对应的接触逻辑,要有始有终。嵌套的资源分配,应该使用与分配次序相反的顺序进行解除。异常的配平需要避免违反DRY原则。当无法配平资源时,需要设定一个规则,决定谁为某个聚集数据结构中的数据负责,以及如何负责。自动化检查资源配平状态,可以依赖一些三方工具。
标签:读后感,断言,小工,程序,程序员,配平,异常,资源 From: https://www.cnblogs.com/mine-my/p/16851657.html