领域驱动设计-读书笔记-第一章-消化知识

先附上第一章,消化知识的读书笔记思维导图,其中有一个案例,需要深入理解下,在思维导图中不好体现,就放到文档中去说明。

第一章的内容,通过PCB专业软件举例子,作者被邀请设计一款PCB软件,通过对象走查图的方式,与领域专家进行头脑风暴并建模,基于模型提炼出了整个软件的基础原型。作者沉淀出了有效建模的四要素:1) 模型与实现绑定。2) 建立一种基于模型的语言。一般通过各种类图即可。3)开发一个蕴含丰富知识的模型。4)提炼模型。

作者还进一步说明,如何取消化知识,这其中大体步骤可分为:1)收集足够多的信息。2)讨论与思考,对知识提精。3)将程序员和领域专家的知识输入到模型。4)不断完善模型。作者也说明,知识的探索是一个永无止境的过程,同时对应的模型的修改和提炼,也是一个无止境的过程。

这里面重点记录下,提取隐藏概念的例子。

例子如下:

一艘船在一次航程(Voyage)中要运载的货物(Cargo),同时将每件货物与一次行程关联起来,并记录和跟踪这种关系。

因为总会有人在最后一刻取消订单,所以航运业一般是多拉一些货物,这个称为超订。比如预订110%的载货量,有时的规则可能更复杂。需求文档中会包含这句话:允许10%的超订。

这个代码没有任何问题,但是有一个重要的业务规则,被隐藏在了标红的这句话中。我们要考虑如何把这个业务规则表达的更清楚,让项目中的人都了解它。说实话,如果代码如上一样,很少有人能通过代码发现这一条隐含的业务规则,如果规则更复杂,情况会更糟糕。这个时候,可能设计的好一点,我们会利用策略设计模式。

这个例子,作者用来说明:领域模型和相应的设计可以用来保护和共享知识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值