XP、TDD设计理念的一点差异 博客分类: 技术及貌似 XPTDDCache
程序员文章站
2024-02-21 13:07:28
...
这是我参与TDD,Cache讨论回帖之一的一部分,其他部分经过讨论已经比较明了,摘录的这部分算是我的一个疑问,也算是我的一种看法。
...
问题在于一个关键短语“设计的固化”(为了讨论方便这样说),传统的设计方式先“固化”设计,“照单(设计)定制”,产出物是设计文档 + funcation code;后来XP的出现,淡化了设计的先行“固化”,代码才是最终“固化”的设计,这里的代码是funcation code--唯一的产出物;而TDD的出现似乎又强化了设计的“固化”,当然不是先行,而是不断迭代进行,test code是最终“固化”的设计,产出物是test code + funcation code。似乎只有XP的没有“冗余的设计”。
那么XP、TDD在设计理念这点上,有什么优劣么?有说看test code这样的“设计”比看funcation code这样的设计更清晰明了。我不赞同这样的说法,这很牵强,要想看清晰明了的设计,设计文档最好。所以这并不是TDD的优势,这也是我倾向于把TDD看作开发手段而不是设计方法的原因之一。如果把test code看作设计,那它就是“冗余的”,如果把它看作质量保证手段、开发手段、辅助的设计手段,它是优秀的。
...
...
问题在于一个关键短语“设计的固化”(为了讨论方便这样说),传统的设计方式先“固化”设计,“照单(设计)定制”,产出物是设计文档 + funcation code;后来XP的出现,淡化了设计的先行“固化”,代码才是最终“固化”的设计,这里的代码是funcation code--唯一的产出物;而TDD的出现似乎又强化了设计的“固化”,当然不是先行,而是不断迭代进行,test code是最终“固化”的设计,产出物是test code + funcation code。似乎只有XP的没有“冗余的设计”。
那么XP、TDD在设计理念这点上,有什么优劣么?有说看test code这样的“设计”比看funcation code这样的设计更清晰明了。我不赞同这样的说法,这很牵强,要想看清晰明了的设计,设计文档最好。所以这并不是TDD的优势,这也是我倾向于把TDD看作开发手段而不是设计方法的原因之一。如果把test code看作设计,那它就是“冗余的”,如果把它看作质量保证手段、开发手段、辅助的设计手段,它是优秀的。
...