BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

在基于Entity Framework的核心业务应用中使用DDD

| 作者 Jan Stenberg 关注 34 他的粉丝 ,译者 姚琪琳 关注 0 他的粉丝 发布于 2013年12月6日. 估计阅读时间: 2 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

领域驱动开发(DDD)所关注的是领域,而不是持久化”,Julie Lerman最近在瑞典的Øredev开发者大会上这样说道

Julie从2003年以来一直是微软最有价值专家,.NET平台顾问,曾关注数据库编程25年,然后使用Entity Framework(EF),但现在受到了关注领域的DDD的启发。

她的经验是,很多使用DDD的人不关心持久化,数据库是开发最后才会考虑的事。但长远来看,我们仍然需要将数据存入数据库,并且尽管Julie关注的是领域,但她仍然希望尽早确定应该什么时候引入持久化。

对于Julie来说,DDD中最重要的概念是边界上下文,它让我们以一种更加结构化的方式在子系统中思考问题,而不是在同一时间考虑应用程序的全部内容,如实体、行为等。在处理顾客服务的时候,可以不用关心与其他子系统(如市场)的交互。我们可能会需要某个标识,或很少的来自其他上下文的信息,但这些大部分都属于一个上下文领域的边界。这意味着我们在考虑持久化的时候,可以只关注一部分实体。

在处理不同的实体(如客户)时,它在不同的上下文中重新定义客户实体,尽管它们都持久化在相同的Customer表中。她发现一个潜在的扩展是使用不同的表甚至数据库,将这些上下文彻底分离开来。

对Julie来说,值对象一直是一个混乱的概念。它从DDD专家那里听到过5种不同的解释,它们全都正确,并且丰富了她的视野。现在,Julie认为值对象是没有标识的不可变对象,

一般情况下,Julie也将领域模型作为数据模型使用,但她发现在一些非常复杂的领域中(如遗留数据库),需要分离的持久化模型。

在今年早些时候,Julie撰写了三篇文章,讲述了她从数据驱动开发转移到DDD时所学到的东西。

原文英文链接:http://www.infoq.com/news/2013/11/leveraging-ddd-ef

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT