clean code这本书是程序员必读经典之一。
我相信大多数程序员都是去找过书的,网上有好多人都列了程序员必读经典,csapp,sicp,龙书,code complete是大家熟悉的几本经典。
我这里介绍的clean code其实被收入必读经典的频率其实也相当高,但是没有我刚列举的那些有名。但这本书对于没有好的编码风格的人来说绝对是非常重要的。
适合人群
能熟练使用一门编程语言。
编码风格存在缺陷的程序员。
关于编码风格
国内大部分程序员或许都是以教科书入门的,这个时候,你就会发现一个很普遍的现象,命名都不优雅,有的网站(我在读的学校的教务系统)的命名还是拼音缩写。
这也难怪,那些教科书动辄int a,b,c,m,k;注释也不好好写,有的时候有的教科书和原文相比少一句注释,直接让我凝思苦想半小时还没结果,然后在网上一搜,发现了真理。。。
介于我们学的书编码质量如此之差,所以说国内程序员在编程风格上是吃了巨大的亏的,特别是在校生,有的研究生给变量命名起来都是m,n,k的。变量命名是编程风格中基础的基础,但也是很重要的,没有好的命名,别说别人了,过了一星期自己都看不懂,这无疑就是垃圾代码。
编码风格的重要性
bug又名臭虫
整洁代码就像整洁的玻璃,任何的虫子扒在上面能一眼找到
但是dirty的代码就像垃圾堆,你找一个虫子并把它干掉会无比艰辛
前几天我才看完的一本书《观止-微软创建NT和未来的夺命狂奔》,是写Windows NT第一版的开发。
Windows NT第一版是20年前由超过250名成员共同编写的超过560万行代码的操作系统 。
我们想想看,当软件的代码量到了一个数量级,我们编码最困难的地方再也不是语法、算法,而是如何统帅、组织、维护它。
现代社会很少有那种一个人完成的软件了,程序员之间的沟通至关重要的,唯有好的编码风格,他人才能更容易的阅读你的代码,从而和你进行深度有效的沟通。
在格式的笔记里面我也写道,或许你认为让代码能工作才是专业开发者的头等大事。但是实际上,修改和维护代码才是开发者花时间花得最多的地方。只有拥有良好的代码格式,代码的可读性才会增加,这对日后修改和维护产生深远影响。
所以说编码风格或许直接决定了整个程序的成败,一团糟的编码会使得整个程序难以维护,更别谈增加功能,很容易看到整个程序将走向再也无法维护的末路,而使得整个程序需要推倒重来。
vczh在知乎里也说了,面试的时候如果看github的主页,最看重的不是做了什么项目,而是看编码风格。
编程是一门艺术
画画是一门艺术,我们知道,画画要讲究好多东西,布局,用色,笔法等等。
其实编程也是一样的,只有我们讲究了这些东西,我们才能像画画一样将自己脑海里的东西美美的落实于编码上,而不是由于完全不讲究章法,把整个画画的一塌糊涂,连自己都不忍卒读。
然后关于阅读笔记
早上我回复了第一个评论的人,说了以下的话,我觉得这应该是出现在序里面的。
具体情况具体分析,对于像我这种初学者来说,只能将这些有关整洁代码的概念记入脑海中,然后通过自己的无数实践(重构代码),体会实践的意义,这样才能真正找到属于自己的整洁编码之道。
相信对每一个人也是这样,书上的东西只是前人的体会,往往大牛的体会是有价值的,我们应该在实践中吸收。
我记的笔记或许就是前人总结的“真理”,而实践是检验真理的唯一标准。
最后最重要的是我们日后编码的时候,要结合这些前人总结来实践,通过实践改善自己的编码风格,从而拥有良好的编码风格。