软件设计:从专业到卓越
张刚
资深技术专家
374 人已学习
立即订阅
软件设计:从专业到卓越
15
15
1.0x
00:00/00:00
登录|注册

第 8 章 用领域模型指导实现(2)

8.5 限界上下文

在本章前 4 节中,我们介绍了如何使用领域模型指导软件实现,但是刻意忽略了一个重要的方面:在实现软件系统时首先是按照问题域进行切分,而不是直接分层。本书已经在 5.2 节讨论了子域划分,可如何在具体实现中体现对问题域的分解呢?本节我们介绍领域驱动设计的限界上下文概念,并把它和子域的关系说明清楚。

8.5.1 限界上下文的理想边界

限界上下文这个名字看起来多少有些费解。Eric Evans 在《领域驱动设计》一书中用细胞做了比喻,来说明限界上下文是什么。细胞有什么特点呢?它功能完备,自成一个系统,最关键的是有一层细胞膜,能把细胞和外部世界隔离开来。同理,限界上下文本质上是一个自治的小世界,它有完备的职责,还有清晰的边界。
完备的职责和清晰的边界这种描述多少有些模糊,不那么容易把握。但是,5.2 节的设计原则表明,架构设计优先要按问题域划分。结合第 4 章关于领域和子域的介绍,限界上下文的最理想边界也就很清楚了。
限界上下文的最理想边界是子域的边界。

8.5.2 把一切都封装在限界上下文中

切分合理、边界清晰的限界上下文会带来巨大的收益,在易于理解、易于复用和易于演进方面皆是如此。例如,如果你在一个业务中需要发送短信,那么大概率你不会自己实现这个功能,而是会直接找一个可以发送短信的服务提供商,使用公开的 API 或者 SDK 完成。这个短信服务就包裹在一个限界上下文中,对你来说,仅需要了解它的公开接口。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了领域驱动设计中的限界上下文的重要性以及相关概念。通过讨论限界上下文的理想边界、封装原则和上下文映射的模式总结,强调了在软件实现中划分限界上下文和建立清晰一致的边界的重要性。此外,文章还探讨了领域模型的持续演进,强调了模型和代码的同步变化的重要性,以避免领域模型腐化。通过介绍领域驱动设计的实际应用和技术特点,本文对于读者快速了解领域驱动设计的实现指导具有重要参考价值。总之,本文内容丰富,涵盖了领域驱动设计的关键概念和实践指导,对于软件开发人员具有重要的指导意义。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《软件设计:从专业到卓越》
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
大纲
固定大纲
8.5 限界上下文
8.5.1 限界上下文的理想边界
8.5.2 把一切都封装在限界上下文中
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部