這里有作者之一Dave Thomas在敏捷2009大會(huì)上關(guān)于此書(shū)的演講(http://www.infoq.com/cn/presentations/dt-pragmatic-programmer)
這本書(shū)的成書(shū)方式很有意思。作者非常喜歡program,以至于將這本書(shū)的寫(xiě)作當(dāng)成了軟件工程,全書(shū)用plain text寫(xiě)成,以soruce code(應(yīng) 該是他們自己發(fā)明的領(lǐng)域語(yǔ)言DSL~)的方式組織而成,用他們自己寫(xiě)成的工具build一下后就成了此書(shū),相信他們也以某種版本管理工具對(duì)此進(jìn)行了管理(方便查看版本之間的變化等),并對(duì)書(shū)中的code進(jìn)行了單元測(cè)試。
想像一下他們?cè)趺磳?xiě)書(shū)的(借用HTML的格式猜想一下):
<Title>程序員修煉之道</Title>
<Body>
shell游戲
<Code>/home/Dave/game.sh</Code>
</Body>
Test時(shí)會(huì)自動(dòng)測(cè)試書(shū)中的程序,如:game.sh;Build之后本書(shū)便完成了(書(shū)中的code文件會(huì)自動(dòng)讀入)。
這真是一個(gè)很成功的“項(xiàng)目”:
*
Automate Everything.
* 如果需要,則設(shè)計(jì)自己的小語(yǔ)言
Perl有一個(gè)作解釋器的包
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
解決方法: 做成函數(shù),模塊,類;采用code generators;采用元程序設(shè)計(jì)(The art of metaprogramming:
http://www.ibm.com /developerworks/linux/library/l-metaprog1.html);采用設(shè)計(jì)模式(作者覺(jué)得采用模式有可能把問(wèn)題弄復(fù)雜);convertions;metaphors;
-- Project Duplication
Fix by producing procduts; Fix with data-driven designs.
* Do one thing better.
簡(jiǎn)單,低耦合。
* Do Nothing Twice.
* 代碼之前,測(cè)試先行。
* 選擇好的編碼工具能有效地提高效率,避免編碼中的小錯(cuò)誤。
posted on 2010-08-13 20:34
hex108 閱讀(338)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
Read the book