面向組合的開發

Joe Armstrong 在他的新書Programming Erlang裏提到我們不該隨便應用函數返回高端函數的技巧,因爲這個技巧容易讓代碼難以分析和調試。但是也有一些明顯的例外,比如說構造parser combinator。高度精簡的代碼卻能實現高度靈活複雜的操作。多少程序員用不靠譜的XML實現自己的DSL就是被解析這一環逼的啊?最近在項目裏實現了一個parser combinator的庫,更體會到組合的方法並不限於解析,甚至不限於高端函數的應用。互聯網的好處(或者說壞處?)之一就是當自己對某項技術有所灰心時,我們總可以在網上發現牛銀們做出了更爲深廣的探索。比如說ajoo老大2005年的系列帖子,面向組合的開發。我不過寫了一個簡單的parser combinator庫而已,而Ajoo不僅寫了Java下的JParsec,還寫了Ruby下的rparsec。哦,我說了A老大還實現了C#的NParsec,和支持monadic combinator的jaskell腳本語言麼?所以還等什麼囁?點擊這裏,開始享受吧

P.S., 這樣談技術灰常邪惡:

“所謂ioc就是這樣的思想的一種表達。子模塊需要一個外部提供的功能時,不是直接去找到某個具體實現模塊,而是通過接口把協議公開出去。這和上帝他老人家的設計有點形似了:夏娃需要生兒子,但是雖然暫時旁邊只有一個adam gg,但是夏娃的身體構造卻不是僅僅爲adam設計的,上帝他老人家給夏娃的是一個跟任何男人都能生兒子的通用接口。 ”

發佈了245 篇原創文章 · 獲贊 33 · 訪問量 323萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章