编程语言
首页 > 编程语言> > 程序员修炼之道阅读笔记

程序员修炼之道阅读笔记

作者:互联网

第二十二节:死程序不说谎

对待程序我们通常会有“它不会发生”的心理状态,这会导致我们忽视一些问题。对于注重实效的程序员来说,如果我们忽略了一个错误,将是非常糟糕的事情。

对于程序员来说,崩溃往往比破坏更容易让人接受。当代码发生认为不可能的事情时,那么系统已经崩溃了。

正确认识死程序,死程序的危害比有问题的程序危害要小。

第二十三节:断言式编程

如果它不可能发生,用断言确保它不会发生。

使用断言进行代码的检查,排除错误,但传入断言的代码不应该有附条件;但不能使用断言代替错误处理。

让断言开着:检查你任何疏漏的错误

第二十四节:何时使用异常

异常很少应作为程序的正常流程的一部分使用,异常应该保留给意外情况。如果移除了所有的异常处理器,代码就无法运行,那说明异常正在被用于非异常情况中。

是否应该使用异常取决于实际情况。比如打开文件,文件不存在,是否应该发生异常?如果文件应该在那里,那么异常就有正当理由。如果不确定文件是否在那里,返回错误就可以了。

第二十五节:怎样配平资源

对于资源的分配:要有始有终。使用资源,分配资源,解除占用。

对于资源的占用有始有终,但在一些语言中可以扩展这个概念。对资源进行嵌套分配:①以与资源分配相反的次序解除资源占用;②在不同地方分配同一资源时,以相同的次序进行分配,降低死锁的可能性。

异常的配平需要避免违反 DRY 原则。例如文件打开的异常情况,会导致 try..catch 有两条路径,那如何避免在正常流程和 catch 流程都处理 error 情况呢?C++ 可以依赖对象自动析构的特性,Java 可以依赖 finally子句。

无法配平资源时,为内存设立语义不变项,接触顶层结构,可在动态分配的对象上实现可计数方案。

标签:断言,程序,笔记,程序员,修炼,配平,异常,资源
来源: https://www.cnblogs.com/zlyyds/p/16247518.html