面向组合的开发

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设计的,上帝他老人家给夏娃的是一个跟任何男人都能生儿子的通用接口。 ”

你可能感兴趣的:(erlang,互联网,脚本,IOC,Ruby)