哪一个为大型软件提供更多优势,比如Photoshop?
同样通过TDD我不仅仅意味着单元测试,因为你也可以在D3中使用单元测试,就像TDD一样.
D3:设计驱动开发
TDD:测试驱动开发
DDD =领域驱动设计
TDD意味着在您编写任何行为单元之前,您需要对此行为进行测试并且仅测试此行为.只有在这些测试失败后才能实现该行为.在我见过的每一个化身中,TDD都处于一个方法或类的层面 - 也许是几个类一起工作.最终结果是您获得了高度可测试性,因此代码非常松散.最终,尽管TDD是关于创建可以测试的代码.
DDD是一种更抽象的哲学和一套设计模式,它们解决了如何设计一个大型,可扩展和可维护的系统.最终DDD是关于创建一个隐含或明确捕获领域知识重要部分的代码生态系统.
所以你看,他们肯定不是互相排斥的.几乎每个知道DDD知识渊博的人都是TDD的核心爱好者.
在编码之前,TDD既不是自下而上也不是编写测试.TDD是关于使用测试来推动开发,目标是在交付之前测试代码.首先要确保用户要求以能够进行自动用户验收测试的形式编写.它继续通过集成和功能测试直至单元测试.单元测试最终确实构成了最大的份额.
首先编写测试的原因是,当考虑(设计)问题的解决方案时,您会自动对解决方案应该做什么有所期望.任何期望都可以表示为测试,那么为什么不立即记录期望并同时对其进行自动测试以确保解决方案实现该目标?
我也不认为它们是相互排斥的我认为你可以使用TDD来获得DDD.