课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
领域驱动设计是随着互联网的不断发展而逐渐被程序员掌握的一种设计方法,而今天我们就通过案例分析来了解一下,软件开发领域驱动设计包含哪些内容。
战略设计
战略设计主要从高层俯视(上帝视角)我们的软件系统,就如同玩即时战略游戏般,可以一览地图全貌,以此来决定我们是要进攻还是防守哪个方向,同样,在软件中我们也可以以此来划分领域,确定权重方向。
统一语言
提炼领域知识,怎么个提炼法,千万条罗马路,各有各的看家本领。像事件风暴方法,用例分析方法,用户故事,甚至是开大会,各种讨论会等,终目的都是提炼出领域知识,而提炼过程中,达成描述上的一致性,包括系统目标、系统范围及系统所具有的功能。
这不是领域驱动设计所独有的,但却是软件开发中所必须的,为领域专家、业务分析人员、编码人员和测试人员等团队所有成员交流时构建统一频道。
领域/子域
领域拆分
对于领域这个概念,习惯性会想到制药领域、环境领域、金融领域等这些概念,而领域本身所描述的是范围,是如同现实世界般的复杂,无边际。借助分治法,将问题逐级细分来降低业务和技术复杂度,将这复杂的世界划分出清晰的边界来,反过来控制着划分后不那么复杂的世界,也既领域拆分出细化后的子领域。
子域划分
在实际解决问题时,我们也习惯将问题拆分,而怎么拆,基于什么原则拆,可能会依据相关性,权重,甚至分类原则等,对于系统而言,会从架构方面考虑,基础设施考虑等,在领域驱动设计中,更偏向基于业务拆分,降低业务复杂度,也分离技术实现的复杂度,依照业务拆分后的子领域,本身存在权重上的差异,依照重要性和功能划分为三类,投资占比也就有所不同。
核心域:其所体现的是核心服务,是代表着产品的核心竞争力。
支撑域:其所体现的是支撑服务,没它不行,但又达不到核心的价值,围绕着产品内部所需要,但又不能单独变更为三方服务,即它不是一个通用的服务。
通用域:其所体现的中间件服务或三方服务。本身可以通过现有的解决方案集成来完成的服务。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请在707945861群中学习了解。