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