从来没有一本书如此大影响我,这本书对我的影响有两个。
一、改变了我写程序的方法。不仅立即(一周)而且可能永远改变了我写程序的习惯。
二、让我开始学习和写python程序。
这是一本天才写的书,开创了新的软件方法论。这是一本200页的薄书,但以前所有软件工程的几十万页的书加在一起,应该也只与这本书的份量相当。以前软件工程的书只是对几千年的工程传统的不成功的拷贝和YY,但这本书写了程序自己的方法学,与和程序员自己的方法学。
以前软件工程的方法,说白了就是包工头管基建的方法。所以,一个好
的项目经理,常常不需要是一个好的程序员。这样管理下的程序员,与民工(严格地说是小工)也没有什么区别。
测试驱动开发,就是先写测试,再写程序,颠覆了先写程序再做测试的传统。优点是:
需求是明确的。
程序是符合需求的。
程序的高内聚低耦合的。传统方法中的不可企及的目标现在只是理所当然的结果。
程序是胆小怕事的程序员也敢修改的。
程序是久经测试的。
测试是自动的。
但是,为了“拥抱变化”,只有测试驱动开发是不完整的,当需求变化需要修改代码时,有时仅仅局部增加代码是不行的。测试驱动开发需要加上重构refactor才是完整的开发方法,才能修改好代码。所以学习这本书还应该学习refactor.
这本书通过一个个的例子的演化来说明重大的思想,基本采用的是java代码,所以,尽管学习这本书让人脱胎换骨,但学习过程不需要读者下苦功而是非常愉快。
这本书的部分例子采用了python代码,虽然不另学python也能顺利读完这本书,但不学python毕竟不能实践书中的例子。为了真正欣赏这本书,学习一点python是值得的。当然,一个程序员,学习pythoy本身就很值。