序和前言(一)

我是个读书少且慢的人。别说序和跋不可略过,就连封面和扉页都不愿错过。体会封面设计的美感和扉页的插画或是与书有关的小故事,也算是我读书的一部分。内心总觉得怕遗失什么美好的东西。

我做程序员已经8年了。从写一些小模块就高兴无比的小书童,到现在总觉得代码不够好,内心对写好代码这件事总算有一些感受了。但对什么是好代码,怎么写出好代码却没有什么坚实的理论说辞。隐隐记得有一本《代码之美》,当在z.cn搜索时,并没有这本书。是我记错了,只有一本《数学之美》。在比较了几本讲代码优化的书之后,我选择了这本《Clean Code》,中文叫做《代码整洁之道》。

晚上花了点时间读了序和前言。还是有些收获的!

序中,Martin爷用印在乐嚼糖果上的谚语“小处诚实非小事”和建筑师之语“神在细节之中”,讲出了自己对整洁代码的价值观和 整洁代码与架构在软件开发中地位的不休争论。Martin爷把整洁代码和架构的价值比喻为矛与盾。“架构”一词来自建筑业。等同于建筑师交付毛坯房,软件则是交付初始软件产品。而在现在的市场环境中,我们关注如何快速将产品推向市场。为此我们要求工厂全速运转、生产软件。没错,就是人类工厂、程序猿工厂。软件行业兴起于最近40年,相比于其他工业,是新兴事物。无可避免地收到当时顶尖行业工程化思想的影响——汽车工业。在汽车工业的经验表明,大量工作并不在于生产而在于维护——或避免维护。仔细想想我们更多的工作也集中在名为“维护”的事情上!1951年,在日本出现了名为“全员生产维护”(TPM)的质量保证方法。它关注维护甚于关注生产。主要支柱之一就是5S原则:

  • 整理(sort) 搞清楚事物之所在——通过恰当的命名之类的方法——至关重要。
  • 整顿(systematize) 每段代码都该在你希望它所在的地方——如果不在那里,就需要重构了。
  • 清楚(shine) 清理工作地的拉线、油污和边角废料。对于那种四处遗失的带注释的代码和放映过往或期望的无注释的代码——除之而后快!
  • 清洁(标准化) 有关如何保持工作地清洁的共识。在代码层面就是代码规范啊!
  • 身美(自律) 在实践中贯彻一切规范,并时时体现于个人工作之中,而且乐于改进。

以上5S原则的精髓可以概括为臻于至善,Martin爷称作精益。理解起来并不难,难在做!窃以为,难点在于后三条。关于清楚,简单操作时,可以观察程序猿的桌面(工作台面和电脑桌面),进一步观察他的文件夹和事务安排习惯。关于清洁,就是关注他对规范的态度和执行情况;必要时可以动用领导权力要求执行(最次方法)。关于身美,身美是日本人的说法,我们叫自律。这个也可以从对他们的观察中发现一些。难处在哪儿呢?想想看,我们也是软件工程中的一员,这三点你如何做到呢?所以Martin爷鄙视我们了:“如果你接受挑战——没错,就是挑战,阅读并应用本书,你就会理解和赞赏上述最后一条。” :)

前言中也有两条实用信息。

首先,我们总是写下“感觉良好”的代码。就像我们懂得了重力、摩擦力、角动量和质心等物理学知识但不代表学会了自行车。这个比喻如此简单明了,让我关于自己那点代码小心得不敢向外人提起。学写整洁代码很难,它可不止于要求你掌握原则和模式,你得在这上面花功夫。你需自行实践,且体验自己的失败。你需观察他人的实践与失败。

其次,关于阅读本书的方法。本书分成三大部分。前几章介绍编写整洁代码的原则、模式和实践。这部分有相当多的示例代码,读起来颇具挑战。不可跳过这部分直接阅读第2部分。第2部分最需要花功夫,这部分是几个复杂性不断增加的案例研究。需要我们慢慢阅读,不断站在作者的角度思考为什么这么写。简言之,需要琢磨!前两部分的付出在第3部分得到回报——列出从前面案例中得到的启示和灵感。

总之,这并不是一本飞机书或者高铁书。需要我慢慢实践与感悟。

你可能感兴趣的:(序和前言(一))