最近阅读了《程序员的修炼之道:从小工到专家》第四章:“注重实效的偏执”首先我明白了一个人的精力是有限的,不可能写出完美的软件,所以我们会对自己编写的代码可能出现的错误书写另外的代码进行处理。我们要明确每个软件要做的事,规定每个方法应该发挥的作用,要控制好可能影响每个方法的结果的因素。我明白了要通过合约进行设计,并对输入方法的参数进行控制,要在代码中加入断言进行方法用真判断,当问题发生时,能够找到出错原因。我了解不变项的重要性以及语义不变项的概念。当使用资源完毕时,要记得释放,不然程序可能会出现读写异常等错误,分配资源要有始有终。我还明白了如何在一些语言分配资源,还明白了要检查配平。
本章开始先讲述了“按合约设计”,大该讲的是与计算机打交道很难。与人打交道更难。但作为一个族类,我们花费在弄清楚人们交往的问题上的时间更长。在过去几千年中我们得出的一些解决办法也可应用于编程,确保坦率的最佳方案之一就是合约。 合约既规定你的权利和义务,也规定对方的权利和责任,此外,还有关于任何一方没有遵守合约的后果的约定。 何为DBC Meyer为Eiffel语言发展了按合约设计的概念。 什么是正确的程序?不多不少,做它声明要做的事情的程序。用文档记载这样的声明,并进行校验,是按合约设计(简称DBC)的核心所在。 软件系统中的每一个函数和方法都会做某件事情。在开始做某件事情之前,例程对世界的状态可能有某种期望,并且有能力称述系统结束时的状态,Meyer这样描述这些期望和称述:1、前条件——为调用例程必须为真的条件,例程的需求。违反前条件时,例程不应被调用。传递好数据是调用者的责任。2、后条件——例程保证会做的事情,例程完成时世界的状态。不允许有无限循环。3、类不变项——从调用者的视角来看,该条件始终为真。在例程内部可能会变,但是例程退出返回调用者时必须为真。起初我在读完这部分后,没有多大的感触,但在经历了周一的失败,加后来的反省之后我才突然发现:“什么是正确的程序?不多不少,做它声明要做的事情的程序。”讲的是多么的正确,因为如果把自己放在社会上,周一那场考试,就是没有按合约设计. . . . .或许是因为紧张的情绪,在老师发试卷后,我仅是简单的浏览了一下,就开始按照自己的意愿去写程序了,以至于. . . . . .这不但警示我,写程序是一定要按照“合同”设计,还让我明白,读书,不能单纯的读,还要思考,实践,理解了书中的意思,才算是读过这本书。
原文地址:https://www.cnblogs.com/xk1013/p/12152143.html