我将开始一个我自己的项目,它将是 ASP.NET MVC + Fluent NHibernate。我想尽可能多地使用测试优先的方法。那么,我究竟从哪里开始呢?数据库架构?领域模型?将域模型类映射到数据库?

最佳答案

如果您几乎没有编写测试的经验,最容易从领域模型(或 UI 下方的更高级别)开始。当您使用 TDD 驱动了域模型的设计时,您就会知道数据库模式需要是什么样的。推迟将数据库引入系统可能会很好,因为处理数据库模式迁移会给开发增加一些开销。这也将导致更好的设计,因为这样域模型将更好地与数据库层解耦。

如果您擅长编写测试和 TDD,从端到端测试开始(在这种情况下,它们将针对 Web UI 编写)并生成涉及所有架构部分的一小部分功能可能是有益的系统的(如 GOOS 中所推荐)。换句话说,创建一个 walking skeleton 。这种方法的好处是:(1)您将能够在一开始就处理和解决集成问题,(2)当端到端测试用于驱动设计时,它可以帮助您避免实现多余的部分,以及 (3) 编写端到端测试的困难迫使您改进架构并添加监控钩子(Hook),这对于监控生产中的系统也很有用。 (仍然需要有重点的单元测试,因为它们在类级别提供设计压力,而且它们运行得更快,从而提供更快的反馈。)

我在 Design for Integrability 上写了更多关于后一种方法的文章。

关于asp.net-mvc - 开始一个新项目 - 我从哪里开始?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2564033/

10-14 15:34