代码之家  ›  专栏  ›  技术社区  ›  chester89

开始一个新项目-从哪里开始?

  •  3
  • chester89  · 技术社区  · 16 年前

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

    4 回复  |  直到 15 年前
        1
  •  6
  •   Esko Luontola    15 年前

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

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

    关于后一种方法,我在 Design for Integrability .

        2
  •  2
  •   AaronLS    16 年前

    需求收集。

        3
  •  2
  •   Jaimal Chohan    16 年前

    从应用程序的模拟/原型(例如balsamiq mocks)开始,然后编写视图,一边模拟控制器,然后编写控制器逻辑,一边模拟DAO/库。当您开始编写DAO/存储库时,您将对所需的域对象有一个很好的了解。去掉这些,使用FluentNHibernate构建数据库。

    至少我是这么做的。

        4
  •  1
  •   Velocoder    16 年前

    我推荐你 S#arp Architecture 使用最佳实践组合的项目:

    • NHiBiNATE
    • FluentHibernate(注:休眠)
    • TDD/DDD,采用模型FIRTS方法,使用sqlite数据库进行单元测试
    • 嘲笑
    • 仓库模式

    您也可以安装S arp arch。Visual Studio IDE模板。

    推荐文章