话说有一次Eric Gamma 坐飞机的时候偶遇Kent Beck(对,就是极限编程和TDD的发起人) , 两位大牛见面寒暄过以后就觉得很无聊了。
旅途漫漫,干点啥好呢。
Kent Beck当时力推测试驱动开发, 但是没有一个工具或者框架能让大家轻松愉快的写测试,并且自动的运行测试。
两人勾兑了一下:不如自己挽起袖子写一个, 于是两人就在飞机上结对编程 , 等到飞机的时候,一个划时代的单元测试工具就新鲜出炉了,这就是JUnit:
JUnit当然是用Java写的, 其他语言一看, 这东西好, 咱也搞一套, 于是就有了一大批工具,统称xUnit
NUnit (针对.Net 平台) , CUnit (针对C语言) , CppUnit(针对C++语言), PyUnit (针对Python), PHPUnit, OCUnit, DUnit, JSUnit ......
超级大牛出马,亲自敲出来的代码自然非同凡响, 它的设计简直就是使用设计模式的典范:
更牛的是, 他们是以一种叫做“模式生成架构”的方法来创建JUnit的, 换句话说,就是从零应用模式, 然后一个接一个, 直到你获取最终的系统架构:
我第一次看到这种方式, 真是惊为天人, 我知道代码要向模式进行重构, 还从来没听过由模式来构建系统!
但一想到Eric Gamma的背景, 就没有什么可惊讶的了, 因为Eric Gamma 实际上是划时代的书籍《设计模式:可复用面向对象软件基础》四位合著者(称为GoF,Gang of Four)之一
这本书的经典地位就不用说了, 像JUnit繁衍出来的xUnit一样, 这本书也有很多的“繁衍品”, 例如
《Head First Degisn Pattern》 , 《设计模式解析》,《大话设计模式》。。。。
JUnit超级流行,几乎是事实上的Java 单元测试和TDD的工具标准, 有人选择了GitHub上最热的三门语言Java,Ruby和Javascript , 对每个语言分析了1000个项目,找出了最常用的组件,可以看到JUnit 以30.7%并列第一
所以JUnit已经变成了程序员必备的技能, 不会JUnit就太Out了。
-----------------------------------------------------------------------------------
码农翻身公共号(coderising) : 由工作15年的IBM架构师创建,分享编程和职场的经验教训。
回复下面的关键字,查看更多文章
牛人 键盘侠 留学 读书 调试 烂代码 小白 培训
数据结构 代码腐化 无聊 迷茫 刚工作 死锁 简历 真实项目
HTTP Session XML AJAX TOMCAT 反射 JUnit
加入码农翻身QQ群:135769418 每周日晚9点至10点定期授课,不容错过。
长按二维码, 关注"coderising"