深度解读 - TDD(测试驱动开发)(9)

发表于:2017-03-31来源:jianshu作者:SeabornLee点击数: 标签:tdd
,在开始写代码前要设计好所有细节。 而我们有了重构这个工具后,做设计的压力小了很多,因为有测试代码保护,我们可以随时重构实现了。但这并不
,在开始写代码前要设计好所有细节。
而我们有了重构这个工具后,做设计的压力小了很多,因为有测试代码保护,我们可以随时重构实现了。但这并不代表我们不需要做提前设计了,提前设计可以让我们可以和他人讨论,可以先迭代几次再开始写代码,在纸上迭代总比改代码要快。
我个人比较认同 Martin Fowler 的做法,先在脑子里(当然,我脑子不够用,所以用纸画)做设计,迭代几次之后再开始写,这样,我还是会用最简单的实现通过测试,但重构时就有了方向,效率更高。

回到这个程序,我发现目前的封装不在一个抽象层次上,更理想的设计是:


分解任务
main() {
    String words = read_file('words.txt')
    String output = word_frequency(words)
    print(output)
}

word_frequency(words) {
    String[] wordArray = split(words)
    Map<String, Integer> frequency = group(wordArray)
    sort(frequency) 
           

原文转自:http://www.jianshu.com/p/62f16cd4fef3