舒读无瑕的程式码 : 敏捷软体开发技巧守则

无瑕的程式码:敏捷软体开发技巧守则
当ㄚ琪毕业于大学的工业工程学科时,热爱资讯的我心想不会踏入品质或制造的工作领域吧,所以很快地就把这些知识丢回给老师了,在经过几年的资讯技能的养成,无意间还是踏入了品质资讯领域,在品质界里讲究的就是5S,那时这个观念对我的程式应该没有多少的影响。后来认识了神,推而广之的就是让圣灵来启发设计程式的灵感,程式功力可说又提升不少,心想已经很了不起了,没多久开始热衷文艺创作,并从古今文学经典吸取养料,这些日子就在想我的程式可以像高中时写作文那样强吗?当我手上拿到了无瑕的程式码 : 敏捷软体开发技巧守则,翻到James O. “Jim” Coplien的推荐说,”Arlighed i sma ting er nogen lille ting.”这句丹麦谚语翻成中文就是‘在小事情上的诚信是个不小的事情’,著名的现代主义建筑大师 路德维希·密斯·凡德罗(Ludwig Mies van der Rohe)也这样说:‘神就在细节里’,在这里我注意到了小事或是细节因为诚信有奇迹,熟读的尼腓一书​16:29‘指针​上​有​新​写上​的​字​迹,​一目了然,​使​我们明白​主​的​旨意;​那​是​按照​我们​对​它​的​信心​和​努力​而​随时​书写​和​变更​的。​由此​可​知,​主​能​藉着微小​的​方法,​促成​伟大​的​事情。’原来在教会学习小事可以触发了不起的大事。

因为这样的提醒,推荐里说的我们是不是应该对旧程式重构了,否则我们学习到的悔改原则,不就没有落实,”To err is human; to forgive, divine.”书中的中译‘熟能无过,神亦宽恕’看来要拿起这本书重构程式了。看热闹的乡民们可以先看看博客来的介绍,再来决定看不看↓↓↓↓↓↓↓

本书荣获iThome年度百大好书推荐

  本书的原文书名为《Clean Code: A Handbook of Agile Software Craftsmanship》,根据作者的说法,《无瑕的程式码》为Jolt得奖著作《敏捷软体开发:原则、样式及实务》的前传。

在台湾另一本销售极佳的书籍《重构─改善既有程式的设计》,根据亚马逊Amazon网站的统计,购买该书原文版《Refactoring: Improving the Design of Existing Code》,又同时购买的其他书籍第一名,正是《Clean Code: A Handbook of Agile Software Craftsmanship》这一本书。

  .第一章
  作者开宗明义说明什么是Clean Code,他询问了包含C++发明人Bjarne Stroustrup、Eclipse策略教父Dave Thomas、极限程式设计大师Ron Jeffries、维基与极限程式设计发明人,Ward Cunningham等等的大师,从他们的眼光来描述什么是Clean Code,最后才说到作者本人认为的Clean Code应该长成什么样子,有什么好处,以及学习撰写Clean Code的基本原则。小编只能说,能和那么多大师对谈,就已经证明了作者也是一位大师

  其余部分本书分成三部份。  

  .第一部份
  包含有许多章节,这些章节将描述撰写clean code的原则、模式及实践,这些章节包含了不少的程式码篇幅,阅读它们颇具有挑战性。这些章节替你准备好阅读第二部份所需的背景知识。

  .第二部份
  这里包含许多复杂性不断增加的案例讨论。在这个部分,作者会直接带领您进行整个重构的过程,每次的修改,作者都会说明原因,重构的对象并不仅止于一般的程式,甚至还包含了著名的框架,例如JUnit(哇!把开放原始码框架拿来重构,真酷)。

  .第三部份
  终于到了成果收割的时候。最后一章列出了案例讨论时搜集到的程式启发和气味。在案例讨论里走过和清理程式码时,纪录了每个行为的原因,并整理成一种程式启发或气味,成了一个知识库,这个知识库可以说是整本书的精华与交互参照。

作者简介

Robert C. Martin

人称Uncle Bob,程式设计经验超过40年,Agile Software(敏捷软体开发)的提倡者之一。创立Object Mentor,这是一间专注于C ++、Java物件导向、模式、UML、敏捷方法学和极限程式设计的顾问谘询公司。

在这些领域,作者撰写了相当多的名著,其中,又以获得有IT奥斯卡奖之称──Jolt震撼年度大奖的《Agile Software Development: Principles, Patterns, and Practices》《敏捷软体开发:原则、样式及实务》最为知名。该得奖年度,Jolt仅颁布通用类、技术类各一本著作得奖,通用类由此书获得大奖,而技术类书籍则由另一本广为人知的《Thinking in Java(第三版)》获得。

目录:

第1章  无瑕的程式码      (Clean Code)
第2章  有意义的命名      (Meaningful Names)
第3章  函式          (Functions)
第4章  注解          (Comments)
第5章  编排          (Formatting)
第6章  物件及资料结构     (Objects and Data Structures)
第7章  错误处理        (Error Handling)
第8章  边界          (Boundaries)
第9章  单元测试        (Unit Tests)
第10章  类别         (Classes)
第11章  系统         (Systems)
第12章  羽化         (Emergence)
第13章  平行化        (Concurrency)
第14章  持续地精炼      (Successive Refinement)
第15章  JUnit 的内部结构    (JUnit Internals)
第16章  重构SerialDate      (Refactoring SerialDate)
第17章  程式码的气味和启发  (Smells and Heuristics)

↑↑↑↑↑↑↑

在第1章  无瑕的程式码→什么是Clean Code?提到了Dave Thomas和Andrew Hunt,《The Pragmatic Programmer》的破窗效应理论,如果一开始没有注意细节,那么程式就会像破窗理论一样坏到不可收拾,The Pragmatic Programmer有简体英文注释版:程序员修炼之道(英文注释版)可以参考。

物件导向分析设计与应用一书的作者Grady Booch这样说:‘Clean Code是简单又直接明了的,读来就像是一篇优美的散文。Clean Code绝不会掩盖设计者的意图,反而充满着俐落的抽象概念,以及直截了当得程式控制叙述。’

3 則留言


    1. “价格要400元,打完79折后也要379元”
      400*0.79 = 316
      应该是480 *0.79 = 379.2;
      现在降到75折了
      优惠价:75折360元
      优惠期限:2014年03月17日止

      1. Author

        谢谢你的留言,确实现在是打75折了。

Comments are closed.