内容简介:在2017年Julie Lerman:不管你信不信,我必须感谢Jimmy Nilsson!多年前,当微软发布LINQ和Entity Framework时,发生了一些争议。我和Jimmy Nilsson在InfoQ上接受了一次采访,他被问到他对LINQ和Entity Framework的看法——这是我非常感兴趣的一个观点。在采访结束时,Jimmy被问到一个问题:“你最喜欢的书是什么?”他回答是Eric Evans的《领域驱动设计》,Jimmy说它读起来就像诗歌一样。那时我正在为O’Reilly Press写
关键要点
- 在将DDD引入新团队时,请从有界的上下文开始——将大问题分解为可管理、可解决的小问题。撇开繁文缛节,动手去做。
- 了解团队成员的能力,以便能够成功地指导他们,这与本能和同理心有很大关系。仔细聆听、尊重、不评判、和善,这些都是非常重要的。
- 人们抵制DDD,是因为他们认为DDD的内容太多了,或者会对他们当前的流程造成太大破坏。解决小问题是可以帮助人们获得对DDD信任的一种很好的方式。
- 领域建模是一门艺术,而不是一门科学,因此,出现碰壁或突然改变方向的情况并不罕见。团队需要一个熟悉建模的教练,让你在整个过程中无需担心视角的变化。
在2017年 探索DDD 会议上,Serial DDD倡导者Julie Lerman谈到了如何通过“亲切照料”进行领域驱动设计。InfoQ采访了Lerman,谈论了她如何向新客户介绍DDD并帮助他们取得成功。
InfoQ:大多数DDD从业者都记得他们是如何首次引入域驱动设计的。你的DDD起源故事是怎样的?
Julie Lerman:不管你信不信,我必须感谢Jimmy Nilsson!多年前,当微软发布LINQ和Entity Framework时,发生了一些争议。我和Jimmy Nilsson在InfoQ上接受了一次采访,他被问到他对LINQ和Entity Framework的看法——这是我非常感兴趣的一个观点。在采访结束时,Jimmy被问到一个问题:“你最喜欢的书是什么?”他回答是Eric Evans的《领域驱动设计》,Jimmy说它读起来就像诗歌一样。那时我正在为O’Reilly Press写一本关于Entity Framework的书。这是我的第一本书,我真的很想知道让一本科技图书读起来像诗歌的意味着什么。所以我拿起了Eric的书,书中涉及的第一个讨论话题是关于领域专家参与度的重要性——这对我在客户方面取得的成功来说至关重要。我喜欢了解他们的业务,并与我的很多客户建立了长期稳固的关系。
InfoQ:DDD涵盖了很多主题。当你开始与新团队合作时,你是如何引入DDD的,以及如何避免向其他人灌输太多新概念?在这方面是否存在一些教学技巧?
Lerman:我通常是在他们正在重构或更换遗留应用程序或正在开发应用程序时加入他们的,而且我只在那里短暂停留,所以我会尽可能快尽可能多地让他们接受DDD。我从有界的上下文开始——将他们的大问题分解为可管理可解决的小问题。我甚至在一开始都没有使用术语。然后我从松散的有界上下文中选择一个简单的目标,并分析它,然后识别出领域模型的不同部分——一次一个,而不是一次性完成。我在一开始就使用新概念,不担心术语问题。从我个人的经验来看,大脑会被术语锁定。所以,我找到了更简单的方法引入新主题——更加明显的类比方式。最后,我再把术语添加进去……聚合、聚合根等,并向他们解释使用这些术语的重要性,这样每个人都可以达成共识。对于无所不在的语言来说,这也是一个很好的选择!
InfoQ:Evan那本书的副标题是“解决软件核心的复杂性”。康威定律意味着复杂的应用程序通常需要复杂的组织和团队来支持它们。DDD的概念,例如有界上下文,是否有助于理解和指导团队?
Lerman:了解团队成员的能力,以便能够成功地指导他们,这与本能和同理心有很大关系。仔细聆听、尊重、不评判、和善,这些都是非常重要的。但是,我也很依赖直觉和经验来“读取房间”。我的星座是天秤座,所以我的性格主要关于平衡和调解。当我与团队合作,并且需要以积极的方式继续前进时,对我的客户有很大的帮助。我认为这与DDD人性的一面很有关系——与客户密切合作以了解他们的业务,识别他们的问题并获得他们对你的信任,最后解决所有的问题。这就是最初Eric的书吸引我的原因。DDD的技术或战术设计部分只是锦上添花!
InfoQ:你有听到哪些反对采用DDD的争论?你是如何回应他们的?
Lerman:有一些观点认为DDD需要学习的东西太多了,这会对我们的流程造成太大破坏,因为需要太多的重新思考、重构和时间。
我回到了“解决小问题”的方法——寻找机会通过小投入获得大利益。
InfoQ:如果你只有两三天的时间来引入DDD和指导团队,你会怎么做?你的目标是什么,以及如何优化时间以最大化实现这些目标?
Lerman:我首先会想知道他们在做什么,他们的目标是什么以及他们担心什么——显然是某种东西,否则他们就不需要我加入。然后我就开始进行神奇的“把大问题分解成小问题“,从这些问题中挑选一些解决方案,然后对其进行建模。我最常帮助他们进行遗留系统的替换,我们在白板上进行建模。建模是一门艺术,而不是一门科学,因此,因此,出现碰壁或突然改变方向的情况并不罕见。对于那些熟悉建模并且在整个过程中不担心视角变化的人来说,体验这一点对他们有好处。我出于同样的原因在那里做一些群体编程。我很清楚我们可能会遇到哪些技术问题,因此我可以指导他们完成。
InfoQ:对于试图开始使用DDD的人,你有什么建议吗?
Lerman:很多人通过专注于技术软件实现(称为战术设计)开始他们的DDD之旅,战略设计对于DDD来说至关重要,并且当你与领域专家合作,了解他们的领域和计划你的系统的时候,战略设计应该是放在第一位的。确保自己至少对DDD的广度、目标、它的用武之地以及在哪些场景中会用力过猛多需要有一定的了解。
关于受访者
Julie Lerman 是微软区域总监和微软MVP。她主要从事全球软件团队的软件教练和顾问方面的工作。你可以在世界各地的用户组和大会上看到Lerman呈现的有关Entity Framework、域驱动设计和其他有趣的主题。Lerman在thedatafarm.com/blog上发表博文,是备受好评的“Programming Entity Framework”一书的作者、MSDN杂志Data Points专栏作者和Pluralsight.com热门视频的作者。
查看英文原文: DDD With TLC
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 一文读懂领域迁移与领域适应的常见方法
- 如何加快疫苗生产?答案在技术领域而非医学领域
- 解构领域驱动设计(二):领域驱动设计的核心之分层架构
- 如何避免写出烂的业务代码(2):领域对象与领域服务
- 领域驱动设计实践之路(四):领域驱动在微服务设计中的应用
- 领域驱动设计落地方案
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
美团机器学习实践
美团算法团队 / 人民邮电出版社 / 2018-8-1 / 79.00元
人工智能技术正以一种超快的速度深刻地改变着我们的生活,引导了第四次工业革命。美团作为国内O2O领域领 先的服务平台,结合自身的业务场景和数据,积极进行了人工智能领域的应用探索。在美团的搜索、推荐、计算广告、风控、图像处理等领域,相关的人工智能技术得到广泛的应用。本书包括通用流程、数据挖掘、搜索和推荐、计算广告、深度学习以及算法工程6大部分内容,全面介绍了美团在多个重要方面对机器学习的应用。 ......一起来看看 《美团机器学习实践》 这本书的介绍吧!