JParsec 与 JPJson
最近两天写了两个项目,一个是JParsec,另一个是JPJson.
JParsec
JParsec是Parsec的Java版本实现.由于暑假实习的时候已经写过了JSParsec,所以JParsec写起来还算是轻车熟路.但是说实话,动态语言写Parsec这种东西还是比Java这种静态的,朴素的纯面向对象语言写起来要舒服很多.由于JParsec涉及的类型转换比较多,所以写完JParsec之后,也算比较深刻的理解了为什么Java的类型系统这么招黑.
JPJson
JPJson是一个json数据解析引擎.对外设计的接口模仿了Google的Gson.
由用户提供一个Java Bean的Class对象和一段Json字符串调用fromJson方法之后即可返回一个JavaBean的实例.在实现JPJson的过程中由于要参考Gson的接口设计及相关实现,所以大量的翻阅了Gson的代码,学习到了不少的黑科技.
JPJson基于上面的JParsec实现,所以也间接证明JParsec也算是比较强大的.但是移植过两个版本的Parsec,却一直没有系统的学习过Haskell语言有点说不过去.学习Haskell的事情真的要开始提上日程了.
Why JParsec and JPJson?
在开发JParsec和JPJson的过程中呢,我也是第一次开始体验了TDD开发的模式.
为什么使用者两个项目作为学习实践TDD的起点呢.
实际上这也是这两个项目天然的特性决定的.
JParsec天生就是由一个个算子组成的,算子之间的耦合度极低,甚至可以说没有任何耦合度.这样的项目只需要按照TDD的一般方法来就可以了,不需要为了做单元测试而故意做什么设计,这在开始习惯单元测试的初期是非常有利的.
JPJson就是相对于JParsec而言耦合性稍微有点强的项目了.在开发完JParsec之后,已经基本熟悉了单元测试的使用,这