九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

又一本被过于抬高的普通之作 -- 小评代码整洁之道

总有一些书籍会被大家奉为经典, 也总有一些所谓的经典会让我失望, 不得不说, 代码整洁之道 就是其一.
这么说可能有些刻薄了, 毕竟代码整洁之道还是有些内容, 算是一本不错的书, 但是, 远远称不上经典.

写出更好的代码, 这应该是每个有追求的程序员永无止境的追求, 为写出更好的代码这事情, 各个大牛总结了无数的原则, 规则, 法则, 也出了无数的书, 但是其中真正值得一读的却太少.

闲话少说, 具体到这本书吧.

目录:

代码整洁的重要性

这个很多人都有所怀疑, 因为代码再漂亮也没有用, 毕竟最后只要运行结果对就行. 我个人是比较倾向让代码写的更整洁的, 不谈那些功利性的说辞, 什么我们阅读代码更多啦, 什么整洁的代码易于维护啦等等, 我认为, 对程序员来说, 代码就是我们的脸面, 作为程序员, 你几天不刮胡子不洗脸, 别人看了不会觉得怎么样, 但是, 要是看多了你写出来让人呕吐的代码, 我敢保证没有人会喜欢你的. 一个同为程序的同事, 看到你时会像看到你写出的代码一样的心情. 见其代码, 如见其人.
就连面试的时候, 我最喜欢考察的不是算法和对语言的了解程度, 我最希望的是看到应试者以前写的一些代码片段(最好是以前他自己开源的), 就算是一两个函数片段, 代码整洁与否一目了然, 可以很直观的知道应试者对代码的感觉.
以前有个段子, 说写代码的时候, 要想象将来维护这段代码的人是个脾气非常暴躁的人, 要是代码写的不好惹他生气了, 他会让你死的很难看.

命名

上次看到类似细致的描述似乎还是在代码大全中, 我也绝对同意命名的重要性.
其中”使用读的出来的名称”, 是我以前没有看到过的, 挺新鲜.
“不要添加没用的语境”部分, 我感觉最应该添加的是”类的成员函数实际是具有类这个语境的”部分内容, 比如我们写了一个类叫Stack, 那么成员函数就没有必要再用PushStack, PopStack等命名了, 这个还真是我经常见到的问题.

别返回null值

这个值得思考.
在C++中, 一个返回指针的函数, 常常是以返回null值(即NULL或nullptr)表示错误的. 此时其实要分两种情况, 假设这真是一个错误, 那么应该立即停止程序的执行并且报错, 但是在返回null值也是正常的情况时, 在此时返回特例对象的效果可能会更好.

书本身的问题

前12章是我觉得书中还算有内容的部分, 但是也应该快速阅读, 真没有啥值得细细品味的东西, 然后, 大致的浏览一下第17章, 心里有个底就差不多了. 因为原则太多, 看一遍也很难实际的记得, 更别说在工作中去遵循了.
书的最大问题在于作者举得例子实在太一般, 看了和没看也没啥区别. 12章以后的内容, 特别是近100页的附录, 简直就是充数.
讲到书中的例子和可实际操作程度, 我个人感觉甚至还不如Google的那一系列style guide.
我在阅读了书的前几章后还向全组的人推荐了这本书, 现在想想其实是个错误, 下一次, 我感觉需要看完全书后, 再去做这种决定, 不然, 最后可能是个错误.

分类:  编程 
标签:  Clean Code  代码整洁之道  书评 

Posted By 九天雁翎 at 九天雁翎的博客 on 2013年05月18日

前一篇: 漫谈好程序员的标准 后一篇: cocoslicer(cocos2d/cocos2d-x 打包后的资源分割器)