首页 > 编程语言 >《程序员修炼之道》读后感

《程序员修炼之道》读后感

时间:2022-12-11 23:00:09浏览次数:48  
标签:读后感 断言 一个 代码 程序员 修炼 软件 务实

不存在有完美的软件,但学会务实的偏执,可以把遗憾变为优势

 

这个世界上没有任何事情可以达到十全十美,同样,也不可能有完美无缺的软件项目。虽然这是一个比较令人遗憾的现实,但作为一个务实的程序员可以利用某些偏执的方法,把这种遗憾变成另一种优势。

 

正如世界上没有完美的人,软件也不可能是完美的,对于在所难免的软件缺陷,最主要的是保护代码和用户对象避免受缺陷的影响。因此,为自己代码中可能产生的缺陷建立一个防御机制,是务实的程序员必有的保证措施。

这种务实的预防措施可以让你的代码质量更高效,很大程度上保证了代码的安全性和可靠性,让你在编写代码过程中条理清晰,软件质量和工作效率事半功倍。

  1. 契约式设计:这里包含了第一个防御措施。契约是对双方共同的权利和责任的规定,在软件模块中,对于代码是否能正好完成它宣称要做的事情,就可以使用契约进行检验和文档化,这也是契约式设计的核心内容。
  2. 死掉的程序不会说谎:程序员在编写代码时,会意识到某些程序出现问题,有可能是不小心给库传了一个空值或空表;可能是哈希表中缺少一个键值;也可能有一个系统文件没被捕获,得到一个空数据等。诸如此类情况,都是一些微小的细节问题,许多程序员都曾经忽略它们。而一个务实的程序员一定不会错过这些问题细节,即使有错误漏出,他们也会查看详细的错误信息,因为死掉的程序要比有缺陷的程序造成的损害小很多。
  3. 断言式编程:务实的程序员应该会使用断言来预防假设的事情,断言能够校验你为避免错误而写下的假设,因此断言实际上是为了保护你的代码而来。在许多编程语言中都有一些检查布尔条件的断言语句,这大大方便了程序员对自己代码的正确判断。比如,一个参数或返回结果永远不该为null,则用以下显式的检查:assert(result !=null);同样地,断言也能用于检查算法的操作,例如你写了一个排序算法,叫my_sort,检查一下它工作是否正常:books=my_sort(find(“scifi”))
  4. assert(is_sorted?(books))
  5. 如何保持资源的平衡:正如厄休拉·勒古恩在《地海巫师》所说过的经典语句:“点亮一盏烛火,便投出一道阴影”。对于软件中的资源,一直使用遵循可预测的模式,那就是先分配资源,再使用资源,最后释放资源。因此,分配资源的函数或对象,也有责任去释放资源,我们通过本书第119页一段Ruby程序例子可以搞懂它的具体方法。这也说明如果将灵活多变的变量维持在一个范围内,那么打开资源的过程会短暂并且明显可见。
  6. 不要冲出前灯范围:一个长期保持务实编码习惯的程序员来说,永远小步前进,在前进中不断的自我检查和及时反馈,并能做到在推进之前先做好调整是一个良好的偏执行为。在对软件做维护设计时,一定要保持在你能预测到的范围内进行设计,对于未来不可预测的设计,一定要在可控范围内适时更替,如此才能避免犯更大的错误。

标签:读后感,断言,一个,代码,程序员,修炼,软件,务实
From: https://www.cnblogs.com/wangzelin/p/16974820.html

相关文章

  • #yyds干货盘点# LeetCode程序员面试金典:回文链表
    题目:编写一个函数,检查输入的链表是否是回文的。 示例1:输入:1->2输出:false示例2:输入:1->2->2->1输出:true代码实现:classSolution{publicbooleanisPalindrome(L......
  • #yyds干货盘点#程序员是做管理还是做技术
    只要有得选,专注技术或是转管理。都可以。但对于大部分程序员来说,都没得选。专注技术,你得有基础,基础太差,技术发展的天花板很低;想转管理,虽然门槛没有专注技术那么高,但是,公司里......
  • 一个程序员的学习成长之路
    一个程序员的学习成长之路小米有品技术团队2021年12月14日09:45 ·  阅读1543这是一篇回忆性的学习经验总结,从笔者zt(现为小米有品高级软件研发工程师,主要......
  • 程序员修炼之道 四
    第八节:正交性1、正交性是一个从几何学中借鉴而来的术语,如果两条直线相交成直角,他们就是正交的。这在向量中的解释是沿着一条直线移动,你投影到另一条直线上的位置不变。在......
  • 程序员修炼之道 三
    第六节:交流1、知道你想要说什么当我们面临会议,重要通话,或者只是撰写技术文档,问下自己你要表达的中心想法是什么,围绕这一点进行展开。2、了解你的听众比如你要做一场分享......
  • 程序员修炼之道 六
    第16节强力编辑器1、我们认为你最好是精通一种编辑器,并将其用于所有编辑任务:代码、文档、备忘录、系统管理等等。进行编辑活动时,你不必停下来思考怎样完成文本操作,编辑器......
  • 程序员修炼之道 五
    第十节:曳(ye)光弹1、在黑暗中使用机枪射击有两种方式。方式一:你需要知道目标准确的位置,然后考虑当时的温度、湿度、气压、风力等一系列因素,计算完位置之后进行射击。方式二......
  • 《程序员修炼之道:从小工到专家》读后感6
    本次我学习了第一章的第六节,这章教我们如何与别人交流,交流的重要性。从第五章我知道了我要不停学习,不能将问题摆在那,要解决问题,就要交流,与同事交流,与朋友交流,与客户交......
  • 《程序员修炼之道:从小工到专家》读后感5
    本次读后感应该是11月的读后感,但是因为疫情的原因,从11.5号开始封在学校,到11.18连夜逃回家,接着是健康码弹窗,红码,然后是本人阳性,磕磕绊绊地一直到现在才安定下来,补一下读......
  • #yyds干货盘点# LeetCode程序员面试金典:链表求和
    题目:给定两个用链表表示的整数,每个节点包含一个数位。这些数位是反向存放的,也就是个位排在链表首部。编写函数对这两个整数求和,并用链表形式返回结果。 示例:输入:(7->1->......