拾贝

【书友会】重读经典:《整洁代码》

    notes     原创·悦读

继“赏码会”之后,最近和团队开始尝试一种新的技术活动形式——“书友会”。简单来说,就是一起选出一些经典的技术书籍,线下阅读,当面讨论,共同进步。文末有具体的活动形式,欢迎到我的留言板交流。

作为“书友会”的第一期书籍,我们选择的是《代码整洁之道》(后面简称《整洁》)。在我看来,《整洁》和另外两本经典之作《代码大全》《重构:改善既有代码的设计》,是每一个程序员入行必读的三本基础技术书籍。这三本书能够帮助你建立正确的编程理念,养成良好的编程习惯。我建议可以按照《代码》,《重构》,《整洁》的顺序进行阅读。相对另外两本书,《整洁》涉及的面更广一些,内容也更有深度,比较适合有1~2年实际编程经验的程序员。不过即便是更资深的程序员,相信也能从中有所收获。我第一次读这本书还是在2010年,时隔7年重读这本经典之作,仍然感觉历久弥新。在介绍这本书之前,我们先来了解一个跟简洁有关的普适性原则。

奥卡姆剃刀原则

奥卡姆剃刀定律(Occam’s Razor)又称“奥康的剃刀”,它是由14世纪逻辑学家、圣方济各会修士奥卡姆的威廉(William of Occam,约1285年至1349年)提出。这个原理称为“如无必要,勿增实体”,即“简单有效原理”。正如他在《箴言书注》2卷15题说“切勿浪费较多东西去做,用较少的东西,同样可以做好的事情。” – 百度百科

对应到编程,奥卡姆剃刀原则至少对我们有两个启示:

  • 如无必要,勿增实体。一个常见的反例就是代码前大段的注释,《整洁》告诉我们,最好的注释是没有注释,在你写下大段注释之前,应该反思一下是不是有更简单的设计。
  • 对于同一个需求,如果有两种实现方案,选择那个简单的。网上经常可以看到一些装逼的代码,比如这篇,复杂的方案不仅增加了理解成本,更要命的是让问题变得更隐蔽。

整洁之道

《整洁》这本书虽然章节颇多(算上附录A有18章),但每章内容并不多,平均半小时左右就可以读完一章,并且章节之间相互独立,打乱顺序阅读也无妨。为了保证讨论质量,我们总共分了4次(每周1次)进行逐章讨论,每次3~6章,时间控制在2小时以内。总的来说,辅以配图和代码,整本书的阅读体验很流畅,处处闪耀着大师们的编程智慧,摘录一二如下:

童子军军规:让营地比你来时更干净。

整洁的代码从不隐藏设计者的意图。

读和写花费时间的比例超过10:1。写新代码时,我们一直在读旧代码。

整洁的代码总是看起来像是某位特别在意它的人写的。

勒布朗法则:稍后等于永不。

如果代码不能保持整洁,你就会失去它们。

最后一句是我加的,哈!想要了解更多整洁之道?快去阅读《代码整洁之道》吧。

“书友会”活动形式参考

目的:

  • 阅读经典,精进实践能力,提升思考维度
  • 在碎片化阅读的当下,培养静心读书的定力

目标:

  • 写一篇读书笔记
  • 结合书本动手做一些实验

形式:

  • 每周一次,每次不少于2小时,全体参加
  • 每期书友会开始之前,选择一人作为主席,每人(包括主席)作为讲师认领若干章节
  • 主席负责确定讲师,制定当期读书计划(分多少次,每次涉及章节)
  • 每次活动开始前,所有人按读书计划提前读完读完计划内的章节
  • 每次活动开始后,按读书计划先后由各位讲师主持小组讨论,交流读书心得

链接