Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

单元测试中, TDD、BDD、DDD 分别指?【热度: 166】 #742

Open
yanlele opened this issue May 9, 2024 · 0 comments
Open

单元测试中, TDD、BDD、DDD 分别指?【热度: 166】 #742

yanlele opened this issue May 9, 2024 · 0 comments
Labels
京东 公司标签 工程化 web 项目工程化
Milestone

Comments

@yanlele
Copy link
Member

yanlele commented May 9, 2024

关键词:TDD、BDD、DDD

TDD、BDD 和 DDD 这三个缩写在软件开发中分别代表以下概念:

  1. TDD(Test-Driven Development) - 测试驱动开发:
    TDD 是一种软件开发过程,其中开发人员首先编写一个小测试用例,然后编写足够的代码来使这个测试通过,最后重构新代码以满足所需的设计标准。这个过程就是一个循环,被成为“红-绿-重构”循环,其中测试先失败(红色),编写代码使其通过(绿色),然后优化代码(重构)。TDD 的焦点在于编写干净的代码和降低未来的缺陷。

  2. BDD(Behavior-Driven Development) - 行为驱动开发:
    BDD 将 TDD 的基本思想和原则扩展到软件的整个开发生命周期,但其着重点在于软件的行为——即软件应如何表现,而不仅仅是它应该完成什么功能。BDD 强调的是与利益相关者的交流与协作,通过使用通俗易懂的语言来写测试,让非技术人员也能理解测试内容。BDD 鼓励团队成员之间更好地沟通,确保所有人都对软件应有的行为有共同的理解。

  3. DDD(Domain-Driven Design) - 领域驱动设计:
    DDD 与 TDD 和 BDD 并不是同一类型的概念。DDD 是一种软件设计哲学,强调了在软件项目的设计与开发中应以业务领域(Domain)为中心。它主张将业务领域的专业知识嵌入到软件的设计中,从而使软件能更好地解决业务问题。DDD 通常涉及到丰富的领域模型以及分层的架构设计,以确保业务逻辑清晰和维护性高。

这三个概念在软件开发中都扮演着重要的角色。TDD 和 BDD 都与确保软件质量和满足用户需求有关,而 DDD 则是一种更宏观层面上对软件设计的方法论。

@yanlele yanlele added 京东 公司标签 工程化 web 项目工程化 labels May 9, 2024
@yanlele yanlele added this to the milestone May 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
京东 公司标签 工程化 web 项目工程化
Projects
None yet
Development

No branches or pull requests

1 participant