最近买了几本经典编程书,有《head first 设计模式》《人月神话》《程序员修炼之道》《代码大全》,《代码大全》是第二本看完的。
看的期间不断有所悟,书中多处让我惊讶「原来是这样子」。不过由于工作之余时间有限,这本大著看了快两个月才完了,现在仅凭印象把之前悟到的写下来,算是总结。
如果要用一句话概括《代码大全》的话,我以为是「为人写代码,而不是机器」。
一:为人写代码,势必要考虑代码的扩展性。人是多变的,现实世界也是多变的,所以写代码之前需要设计,也才有设计模式,让你想变就变。
二:为人写代码,势必要考虑代码的易读性。书中无数次强调变量名的重要性,同样是代码,int i = 5 和 int beautifulGirlsCount = 5 ,虽然这两种代码都能正确编译并运行,但前者需要结合上下文连猜带蒙都不一定理解正确,后者一目了然且看得春心荡漾。
三:为人写代码,势必考虑代码的逻辑是否简单。在机器面前,人的智力显得太有限。如果代码没有遵循人类能理解的简单逻辑,如if 、for、switch之类,不加限制的使用goto、递归,当代码量到达一定程度,人就没法维护这样的程序。
四:为人写代码,势必考虑异常的出现。从马士兵老师开始,就告诫我们得把你的用户当魔鬼,魔鬼是不会像我们想象中那样去使用我们的程序的。本书的防御式编程也重申了这点,人是会犯错的,毋庸置疑,重要的是犯错后你怎么抛异常、控制错误的影响范围和补救措施。
五:为人写代码,势必要将代码写的漂亮。你看印在书里的文章,所有的文字都用标点符号分隔,行与行有间隙,分段,这些文章的排版,在代码里也要有。代码里的缩进、空行、分段,不仅让代码显得有逻辑,也有美感。所以格式化很重要,即使你代码写得很有逻辑,但写得一坨一坨,你也很难让他人忍着恶心看下去。
这几点的概括显然没办法涵盖八百多页的《代码大全》,不过对于一个刚走在码农路上的我,可以让我消化好一阵子了。在现实世界中,要做到这几点,就更困难了。在看这本书的期间,每天白天在公司里看着前辈留下来那一坨坨的代码,不知何物的mActivity,随处一点就奔溃的系统,我就知道现实跟我一样有多骨感。但是,丰满的理想跟丰满的美女一样,不会突然从天上砸到我身上。好代码是一个个敲出来的,美女也是一步步勾引过来的,这里没有捷径可言。
写代码的人
《代码大全》热门书评
-
堪称经典的力作
32有用 2无用 想飞的猫 2009-11-11
想要学习软件开发的都应该去读这本书。书里面有很多一般很难接触到的最佳实践的东西。很多时候,这些也就是新手和高手之间的区别。当你知道了很多这些东西之后,也就很难有人再去叫你菜鸟。我认为本书最值得去读的是中间那几章很详细的细节方面的描述,如变量命名之类。我也很讨厌死板的软件工程教条,但我不反对软件工程。...
-
软件构建的集大成者
25有用 2无用 草根程序员 2010-03-04
初见《代码大全》,还是该书的第一版,只从书名上看,还以为都是一些代码的示例。觉得还有很多的书需要读,这种实用主义的技巧书,可以先放一放,于是与之失之交臂。及至后来,才发现原来被中文书名给骗了。只要将目录浏览一过,就会发现,这本书基本覆盖了软件构建的全过程,从需要分析、系统架构设计到具体的编码规范、编...
-
代码大全中英文要点
22有用 3无用 rocedu 2006-09-19
《代码大全》是一本不多见的值得多次阅读的好书,在《代码大全》一书中,每一章后面都有这一章的要点,略读这些要点中我们就可以了解到我们已经掌握了哪些知识,哪些知识还没有掌握,阅读,重读时就有重点了。下面列出这些要点,供没有购买这本书的同学(同仁)参考,或可用作决定“是否应该买这本书”的参考。第1章 欢迎...
-
看过最好的计算机书籍之一
12有用 1无用 小疯叔 2008-10-24
对于编程来说,借鉴成功的经验很重要,而这本书是无论新手老手都一定要读一读的佳作。 讲的比较显浅易懂,而很多宝贵的经验一一道出,很多时候看着看着都会兴奋的叫出来。  ...
-
时机
11有用 0无用 忘川 2009-08-10
这本书看的还是满早了,所谓的早是指买回来基本没放,一个月时间读完。有人说书非借不能读也,我个人是非常赞同的,一般的书我都是买回来几个月才想起来看。 这本书的内容不想多谈了,任何夸奖的形容词用在该书上都不过份。但其实我看书的时候,书...