我可以在10分钟内从域驱动设计中学到什么?

他们说,您可以无休止地看着火,观察他人的工作方式,还可以研究DDD(域驱动设计,特定领域的设计)。但是,如果您只有10分钟的时间,则可以阅读本文并走到最顶端,然后以灵巧的外观在闲聊中点头。

我们与Ugra互联网解决方案技术总监Andrei Ratushny一起从不同角度扭转和审查了DDD。





关于公司:Ugra Internet Solutions是一家从事商业和公共部门业务流程自动化的公司。位于汉提-曼西斯克市。发展中的12人。

1.什么是DDD,甚至可以向儿童(或推销员)解释


DDD是一种旨在研究整个企业或任何单个业务流程的主题领域的方法。对于业务逻辑的复杂性(复杂性)非常大的项目,这是一种极好的方法。它的使用旨在最大程度地降低这种复杂性。

在DDD方法之外,程序员编写代码时,他更加关注技术和基础结构,例如,如何发送消息,如何接收消息,对其进行编码,将其保存到数据库以及哪个数据库。

DDD方法表明,所有这些当然很重要,但是次要的。业务更重要,应该放在第一位。为了使整个过程协同工作,DDD教会我们(开发人员)与企业说相同的语言。不是使用编程语言,而是使用业务语言。这在DDD无处不在的语言中被称为。

2. DDD芯片-有界上下文


边界上下文是DDD的关键工具;它是域模型存在的明确边界。它将一种语言映射到软件模型中。可以根据上下文将代码划分为模块/包/组件,以使每个代码中的更改对其他代码的影响最小(或为零)。

对于开发人员而言,这种方法使您可以更改代码,而不必担心在其他地方的某个地方会发生中断(例如,在结帐时进行某些更改,而不必担心由于此而使某些东西从快递员那里掉下来)。

对于团队负责人,这种方法使我们能够显着并行化团队的工作,从而可以显着加快项目的工作。

除了有限的上下文外,还有各种各样的东西,例如上下文图,一种语言,上下文之间的关系,翻译图……呃!您不会在10分钟内告诉您,但是您可以阅读“绿色”书。

3.关于DDD的常规书籍:红色,蓝色和绿色


DDD是一种非常古老的方法。它的使用似乎是合理且合理的,但是由于某种原因,它仍然没有广泛使用,在会议上对此几乎没有提及。这个DDD有什么问题?

有一个假设是主要问题是缺少培训材料。整个理论在几本书中都有介绍:红色蓝色绿色。他们说还有“另一本红色的书”,但很少有人看过:)

红色和蓝色的书是如此难以察觉,以至于我想在中间的某个地方把书扔到窗外大喊:这个难以理解的DDD!我会尽力去做。”而且这仅是理论上的内容,而有关实践的材料则更为复杂。

因此,如果您仍然决定开始研究DDD方面的文献,则最好从一本绿皮书开始。在其中,沃恩·弗农Vaughn Vernon)贯穿了该方法的顶端,并通过简单的示例展示了其优势。他们说翻译结果令人怀疑,因此最好阅读原文。

4.如何理解是时候申请DDD了


计算系统的用例数量。如果它们在10到15的范围内,则业务逻辑不是那么复杂,并且您无法蒸蒸日上,请不要应用任何DDD。

如果您有30-50个或更多的UX案例,并且它们相交非常多,那么考虑至少在系统的某些部分中使用DDD是有意义的。

5.如何从下至上在公司中实施DDD


假设您是喜欢DDD的开发人员,并且您认为在您的公司中可以采用这种方法来使人们感到高兴。

仅仅开始对DDD进行游击式介绍是很难的。首先,知识可能不足以启动该过程。其次,来自团队的帅哥可能会认为您在做愚蠢的事情,并且会通过塞进轮子来破坏一切。

最好通过创建一个倡议小组来开始实施:一起尝试该方法,了解细微差别并在实践中进行了解。

只有这样,您才能去找建筑师或技术工程师向他解释价值。但是请记住,并不是到处都需要DDD。 DDD解决了特定的问题,因此不要过度使用DDD非常重要。

这种方法有一个副作用:如果人们甚至开始为DDD奋斗,那么他们将已经开始按照“划分,划分,减少连接并遵循业务逻辑”的模式行事。从这开始,积极的变化将开始:在某个地方代码会更好地编写,在某个地方速度会提高。这些知识不必在上下文和其他DDD工件中转化为代码。该代码可以保留为代码,但是它将变得更好,并且速度和质量将提高。

6.如何在公司上下实施DDD


  1. 确保这种方法在特定情况下会有所帮助。
  2. 在团队中找到一个具有建筑技能的人(他将帮助确定系统中要切缝的位置)。
  3. 邀请DDD从业人员教您。
  4. . ! . , .

7. DDD


当然是通过实践。只是不要事先告诉对方您正在教他DDD,请不要害怕。

让那个人来找难题。不要告诉他这是DDD,让他去做。他将根据他如何理解扎实的身体和所有一切来做。然后,当他移交工作时,他需要说:“亲爱的兄弟,这似乎行得通,但是需要重做,”并向他解释原因。

不要强迫阅读或学习所有内容。在这方面要互动。因此,一个人在3-5个月内将开始理解DDD的基本原理:从实施的角度,从理论的角度。他将甚至更早地通过方法工件(上下文映射)来理解模式。起初,人们什么都不懂,但是逐渐地,他们会被削减,甚至有些人会读书。

8.我能够DDD-俄罗斯简历中不重要的一行


如果您在俄罗斯并且知道DDD-这很酷。但是,DDD本身的知识在工作中是有用的,这远非事实。相反,它将作为雇主关于您作为开发人员的高水平发展的指标。毕竟,通过研究DDD方法获得的技能可以使您既成为程序员又成为设计师(架构师)。

但是,如果您正在考虑出国,那么简历中的这一行可能会产生积极的影响。在国外,DDD社区要大得多,而且这种方法本身比我们的方法更受欢迎。特别是在欧洲。

9. DDD与面部毛发的关系


观察:了解DDD的人留着胡须。这是否意味着留胡子是DDD成功的先决条件?你怎么看?

10.关于DDD的有用材料



« ». , . , Miro, , Amazon, Microsoft, . .

:


All Articles