這里有作者之一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 閱讀(342)
評論(0) 編輯 收藏 引用 所屬分類:
Read the book