标签:
《程序开发心理学读书笔记之四》
本书绝对称得上是经典著作了,之前已经发表过自己对最感兴趣的两篇的见解以及从中收获的益处了,但是其余两篇也是比较好的,下面就让我来带大家去其中遨游吧!
以下是我认为书中作者写的比较好的见解:
第一篇是《作为人类行为的程序开发》,以下是我认为作者总结的较好的观点:
(1)程序员自己编写的代码是为了弥补计算机本身的不足,本人认为这是作者的一个较为独到的见解。
(2)我们发现,大量代码的作用,只是为了克服那些我们将可能遇到的硬件配置的不尽完美之处,这是作者的看待程序开发的新思维。
a.机器的局限:比如,如果制造主存储器的成本足够低,中间存储器就根本没有必要存在。但这只是个理想的假设,实际上,我们不得不是用磁盘等存储介质—这将带来大量的程序开发工作。另外,每种设备都有其特定的时钟特性、定址模式以及存储容量。我们发现大量代码的作用,只是为了克服那些我们将可能遇到的硬件配置的不尽完美之处。
b. 语言的局限:例如,FORTRAN语言中存在大量的冗余代码,有的是因为DO循环无法逆向计数,有的是因为不允许用表达是作为跌代的增量或上下限,有的是因为数组下标必须从1开始。在其他的许多语言中,同样充斥着对旁枝末节的无聊限制。除非这些限制被去除了,否则我们可能根本不会意识到有这些限制。(温伯格说,这是一个心理学的问题,将会在后面的章节讲到,我也很期待看到后面相关内容,这里先留个悬念)
c. 程序员的限制:一是程序员可能不了解程序语言的所有功能,二是程序员可能不知道某些特定的算法,或者不能同时兼顾一个大问题的各个部分,从而有效的避免重复劳动。
(10) 历史遗留问题:一些代码并没有根据程序语言的最近改进而作修改,这就使得任何一段代码都可能存在历史遗留问题。而且如果某段程序运行很好,那么任何人都不大可能对它进行考察。
(11) 规范:在几乎所有的程序中,总可以找到一些代码,现在的确已经成为人们所需要的功能。即使能够成功地从程序中剥离出这些核心部分,我们也不应被假象所误导,以至于认为可以在一开始就以该内核为规范。在知之甚少的情况下,程序员很难确定其最终的意图;如果在制定规范时,缺乏对计算机功能的起码了解,据此去写出搞校的代码也是很困难的。规范随着程序和程序员的发展而获得改进,写程序的过程是在特定的计算机硬件上使用特定的程序语言,由特定的程序员在特定的工作环境中,以一系列特定的历史事件为背景进行的,这些事件不仅决定了程序的形式,而且包括代码的功能。
标签:
原文地址:http://www.cnblogs.com/Twinklelittlestar/p/4385462.html