首页 > 编程语言 >《程序员修炼之道:从小工到专家》读后感(第四篇)

《程序员修炼之道:从小工到专家》读后感(第四篇)

时间:2022-10-31 12:13:53浏览次数:46  
标签:读后感 断言 DBC 程序 程序员 配平 第四篇 异常

第21节 按合约设计1、注重实效的程序员会不信任自己,所以他们针对自己的错误行为进行防卫性编码。2、按合约设计(Design By Contract,简写DBC)是 Bertrand Meyer 为 Eiffel 语言发展的概念。它的核心是用文档记载模块的权利与责任,并进行校验。它的目的是对函数做一些前置检查和后置保证,结合编译器的支持,我们能够尽早的发现代码问题。3、DBC 有三个概念。前条件:为了调用例程必须为真的条件。后条件:例程保证会做的事情,其完成时的状态。类不变项:其确保从调用者的视角来看,该条件总是为真。4、Java 中的 iContract 框架是专为 DBC 设计的,它通过注释里的 @pre、@post、@invariant 声明这三个概念。它会读取注释并生成包含断言逻辑的源文件。Eiffel 则是通过 require、ensure、is 三个值表示对应概念。但是支持 DBC 的语言真的很少。第22节:死程序不说谎1、对待程序我们通常会有“它不会发生”的心理状态,这会导致我们忽视一些问题。对于注重实效的程序员来说,如果我们忽略了一个错误,将是非常糟糕的事情。2、我们一些异常情况,我们应该及早崩溃,用于强调问题的存在。3、引起崩溃的时候不要造成破坏,比如申请的资源还没有释放等情况。4、死程序带来的额危害通常比有隐患的程序要小得多。第23节 断言式编程1、如果它不可能发生,用断言确保它不会发生。assert(string != NULL)断言里写的为真的条件,当不为真时触发断言,程序退出。2、断言检查的是决不应该发生的事情,而不是错误处理。3、断言应该一直开着,不要在线上环境关掉它。断言对应的是一种强提示,它迫使我们必须遵守。像是单元测试,我们通常都使用断言的形式进行检查。第24节 何时使用异常1、异常很少应作为程序的正常流程的一部分使用,异常应该保留给意外情况。如果移除了所有的异常处理器,代码就无法运行,那说明异常正在被用于非异常情况中。2、是否应该使用异常取决于实际情况。比如打开文件,文件不存在,是否应该发生异常?如果文件应该在那里,那么异常就有正当理由。如果不确定文件是否在那里,返回错误就可以了。第25节 怎样配平资源1、对于资源(内存、事务、现成、文件、定时器等)的管理要有始有终,你分配了对应的资源,就需要考虑对应的解除逻辑。要有始有终。2、嵌套的资源分配,应该使用与分配次序相反的顺序进行解除。3、异常的配平需要避免违反 DRY 原则。例如文件打开的异常情况,会导致 try..catch 有两条路径,那如何避免在正常流程和 catch 流程都处理 error 情况呢?C++ 可以依赖对象自动析构的特性,Java 可以依赖 finally子句。4、当无法配平资源时,需要设定一个规则,决定谁为某个聚集数据结构中的数据负责,以及如何负责。这里有点类似引用计数方案,无引用时释放。5、自动化检查资源配平状态,可以依赖一些三方工具。

标签:读后感,断言,DBC,程序,程序员,配平,第四篇,异常
From: https://www.cnblogs.com/qwb0614/p/16843840.html

相关文章

  • 《程序员修炼之道》读后感第二篇(10月)
    时间耦合时间是软件架构的一个常常被忽视的方面,吸引我们的时间只是进度表上的时间。作为软件自身的一种设计要素,时间有两个方面对我们很重要:并发和次序。我们在编程时......
  • Python程序员常犯的编码错误(三)
    1.引言本文是Python程序员常犯的编码错误的第三篇,在前两篇中我们重点介绍了常见的几种错误,本文继续介绍该话题,希望大家在日常生活中多多关注。闲话少说,我们直接开始吧!2.使......
  • 一封供程序员参考的http学习笔记
    文章目录​​CDN有什么好处​​​​什么是代理​​​​浏览器HTTP请求过程​​​​在HTTP中安全和幂等是什么意思​​​​HTTP方法清单​​​​状态码的含义​​​​3xx​​......
  • 《程序员修炼之道:从小工到专家》读后感4
    本次我学习了第一章第三节和第四节。第三节讲的是石头汤与煮青蛙。石头汤主要讲了一帮士兵通过技巧将一帮村民团结起来,得到了一锅丰盛的汤。这个故事可以从两个视......
  • 《程序员修炼之道读后感》
    注重实效的途径 想法和过程集中在一起,头两节的偏向于“重复的危害”和“正交性”密切相关,前者告诉我们,不要在系统各处对知识进行重复,后者告诉我们不要把同样的知识分散......
  • 程序员修炼之道:从小工到专家 阅读笔记4
    Bug是一个程序员必须要面对的东西,在处理bug的时候,有些事情就显得尤为重要。发现bug后你应该专注于修正问题而不是指责,bug是你的过错还是别人的过错,并没有关系,你应该考虑的......
  • 程序员修炼之道:从小工到专家 阅读笔记3
    我是先读的本书的利用好shell编程,内容大致如下,可以通过对shell编程,构建复杂的宏命令,,完成你经常进行的各种活动。利用命令shell的力量,熟悉shell,你自己的生产率迅速提高,多花......
  • 神级程序员都用什么工具?2020 年度开发工具 Top 100
    神级程序员都用什么工具?2020年度开发工具Top1002021-02-1309:34:11来源: CSDN  举报0分享至【CSDN编者按】在过去的2020年,诞生了哪些新的开发工具?最......
  • 程序员修炼之道笔记4
    第六节:交流1、知道你想要说什么当我们面临会议,重要通话,或者只是撰写技术文档,问下自己你要表达的中心想法是什么,围绕这一点进行展开。2、了解你的听众比如你要做一场分......
  • 程序员修炼之道笔记3
    第五节:你的知识资产1、本杰明·富兰克林说过:知识上的投资总能得到最好的回报。这没问题,但遗憾的是知识是有时效的资产,特别是计算机领域。我们可以把我们了解的技术实现、......