随笔-19  评论-21  文章-0  trackbacks-0
      这里有作者之一Dave Thomas在敏捷2009大会上关于此书的演讲(http://www.infoq.com/cn/presentations/dt-pragmatic-programmer)

      这本书的成书方式很有意思。作者非常喜欢program,以至于将这本书的写作当成了软件工程,全书用plain text写成,以soruce code(应 该是他们自己发明的领域语言DSL~)的方式组织而成,用他们自己写成的工具build一下后就成了此书,相信他们也以某种版本管理工具对此进行了管理(方便查看版本之间的变化等),并对书中的code进行了单元测试。
      想像一下他们怎么写书的(借用HTML的格式猜想一下):
     
      <Title>程序员修炼之道</Title>
      
<Body>
             shell游戏
             
<Code>/home/Dave/game.sh</Code>
      
</Body>  

      Test时会自动测试书中的程序,如:game.sh;Build之后本书便完成了(书中的code文件会自动读入)。
     
      这真是一个很成功的“项目”:
      * Automate Everything.
      * 如果需要,则设计自己的小语言
        Perl有一个作解释器的包http://search.cpan.org/~dconway/Parse-RecDescent-1.965001/lib/Parse/RecDescent.pm
      * Fix Broken Windows
        --Fix small thing,Then big thing will not happen.
      * Don't repeat yourself(DRY)
        -- code duplication
        解决方法: 做成函数,模块,类;采用code generators;采用元程序设计(The art of metaprogramming:http://www.ibm.com /developerworks/linux/library/l-metaprog1.html);采用设计模式(作者觉得采用模式有可能把问题弄复杂);convertions;metaphors;
        -- Project Duplication
        Fix by producing procduts; Fix with data-driven designs.
      * Do one thing better.
        简单,低耦合。
      * Do Nothing Twice.
      * 代码之前,测试先行。
      * 选择好的编码工具能有效地提高效率,避免编码中的小错误。
 
posted on 2010-08-13 20:34 hex108 阅读(317) 评论(0)  编辑 收藏 引用 所属分类: Read the book

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理