《代码大全》读后感之二

总算度过了较为紧张的考试阶段,在团队项目逐渐开展起来的同时,我也总算是有时间再读一些课外书。上上一周我开始拜读史蒂夫·麦康诺 等人的著作《代码大全》,虽然当时只是阅读了前三章,但已经可以算得上是收获颇丰,于是这一周我继续研读这本书。

第四章 关键的“构建”决策

本章的前两节主要论述了程序员选择的编程语言对其构建过程的影响。研究表明,程序员选择的编程语言从多个方面都能影响到生产率和代码质量。

1.程序员使用熟悉的编程语言时的生产效率要高于其使用不熟悉语言时的生产效率。这一点我是深有感悟的,虽然我接触编程已经有两年的时间了,但是我系统掌握的编程语言仍然还是C语言,因为学校方面只教授C语言,其他的编程语言需要自己去摸索,然而在有限的时间内为了完成一项编程任务,我往往还是选择使用接触时间最长,使用起来最熟悉的C语言进行编程。而不会选择其他的高级语言(如C++,Java,其实入门还是很简单的,但是想要在短时间掌握其精髓较为困难,因此我往往不选择使用)。但是,这也就导致了某些程序员仅仅是精通一两门编程语言,然而对其他的编程语言却一无所知。

2.使用高级语言的程序员比使用低级语言的程序员有更高的生产率,而且做出来的产品有更高的质量。这是由于高级语言的特性所决定的,相比于低级语言,高级语言在生产率、可靠性、简洁性、易理解性等方面要高出五至十倍。因此,每行代码能表达出更多的含义。低级语言中需要好几行的代码才能完成的工作在高级语言中也许只需要一行就能完成同样的工作。

3.编程语言影响了程序员的思维。文中引用了语言学家Sapir和Whorf对“语言的表达能力”和“思考的能力”之间的关系的假说:你思考的能力取决于你是否知道表达该思想的词汇。同样,一个程序员使用的编程语言中可用来表达编程思想的词汇也决定了一个程序员编程的思维。这一点是很好理解的,当你使用一门编程语言做项目时,你会根据该编程语言提供的数据结构和基本的编程语句来思考问题。

在第三小节,作者提出了一个观点:编程实践取决于你在技术浪潮中所处的位置。作者指出,当我们处在成熟的技术环境下——浪潮的末尾时,受益于丰富的软件开发基础设施,我们可以将大部分时间放在稳定持续地添加新功能上;但是如果我们处在浪潮的前期,也就是说可选择的编程语言非常少,那些编程语言中还有许多bug而且文档十分糟糕,我们可能要耗费大部分时间调试程序库代码的缺陷导致的一些错误、适应厂商提供的新版本函数库及找出文档中未加说明的编程语言特性上。我十分认同作者的这一观点,在我看来,我们现在就是处在浪潮的末尾:目前我们有各种各样功能强大且稳定的IDE,因此,我们不用担心程序库代码存在缺陷,能够把大部分的时间都用来实现我们想要做的事情上去。得益于目前较为先进的技术,我们有信心能够通过编写代码的方式实现我们改变世界的梦想!

最后,我认为本章最值得我们去理解的内容是“在一种语言上编程”和”深入一种语言去编程“的区别。其实,有很多程序员会根据一种编程语言提供的构件去发掘其编程思路,但是这也就将程序员的思想限制住了,如果程序员使用的语言工具是初级的,那么他们的思想将也是初级的,做出来的产品也会是初级的。但是,如果一个程序员能够”深入一种语言去编程“,能够根据他的编程思想弥补使用的语言工具的缺陷(如发明自己的编码约定、标准、、类库以及其他改进措施),一方面,利于代码的管理;另一方面,也让自己做出的产品比他人高了一个台阶。

posted on 2018-05-16 12:22  纵贯线  阅读(184)  评论(0编辑  收藏  举报

导航