域驱动设计 – 可以有人解释DDD在平原英语请?
我一直看到DDD(域驱动设计)被用于文章中 – 我已经阅读了关于DDD的维基百科条目,但仍然不能弄清楚它是什么,我将如何实现它在创建我的网站?
首先,如果你不知道你需要它,那么它可能是你不需要它。如果你不认识DDD解决的问题,那么也许你没有这些问题。甚至DDD倡导者经常指出DDD仅用于大(> 6个月)的项目。
假设你还在读这一点,我的DDD是这样的: DDD是关于试图让你的软件成为现实世界系统或过程的模型。在使用DDD时,您将与一个能够解释真实世界系统如何工作的domain expert密切合作。例如,如果您正在开发一个处理赛马投注的系统,您的域名专家可能是一个有经验的博彩公司。 在您和领域专家之间,您构建一个无处不在的语言(UL),这基本上是系统的概念描述。这个想法是,你应该能够记录系统做的方式,域专家可以读它,并验证它是正确的。在我们的博彩示例中,无处不在的语言将包括诸如“赛跑”,“赌注”,“赔率”等词语的定义。 UL描述的概念将构成面向对象设计的基础。 DDD为您的对象如何交互提供了一些明确的指导,并帮助您将对象划分为以下类别: >值对象,其表示可能具有子部分的值(例如,日期可以具有日,月和年) DDD还推荐几种模式: > Repository,持久化模式(保存和加载数据,通常到/从数据库) 现在,在这一点,我不得不说,如果你没有听说过任何这些事情,你不应该试图使用DDD在任何项目,你有一个截止日期。在尝试DDD之前,你应该熟悉design patterns和enterprise design patterns.知道这些使DDD更容易掌握。并且,如上所述,InfoQ有一个free introduction to DDD(你也可以找到关于DDD的谈话)。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |