序和前言(一)

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

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

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

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

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,279评论 25 707
  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,074评论 6 244
  • 背景说明   对于发布出去的app大部分时候确实都能保证业务正常运行的,但由于版本的迭代,客户端和服务端业务逻辑一...
    JarryWell阅读 6,081评论 0 15
  • 一个撸友给我讲过一个故事,这个故事让我看的心惊胆颤,但好在,我不在半夜打撸。 到了晚上该睡觉就好好睡,别半夜爬起来...
    初心丶阅读 1,598评论 14 4
  • “幼读如刻”,要趁孩子记忆力好的时候,让他背诵一些经典的文章,培养孩子的语感。于是我想到唐诗,她是中华文明的瑰宝,...
    追梦进行时2016阅读 151评论 0 0