先附上第一章,消化知识的读书笔记思维导图,其中有一个案例,需要深入理解下,在思维导图中不好体现,就放到文档中去说明。
第一章的内容,通过PCB专业软件举例子,作者被邀请设计一款PCB软件,通过对象走查图的方式,与领域专家进行头脑风暴并建模,基于模型提炼出了整个软件的基础原型。作者沉淀出了有效建模的四要素:1) 模型与实现绑定。2) 建立一种基于模型的语言。一般通过各种类图即可。3)开发一个蕴含丰富知识的模型。4)提炼模型。
作者还进一步说明,如何取消化知识,这其中大体步骤可分为:1)收集足够多的信息。2)讨论与思考,对知识提精。3)将程序员和领域专家的知识输入到模型。4)不断完善模型。作者也说明,知识的探索是一个永无止境的过程,同时对应的模型的修改和提炼,也是一个无止境的过程。
这里面重点记录下,提取隐藏概念的例子。
例子如下:
一艘船在一次航程(Voyage)中要运载的货物(Cargo),同时将每件货物与一次行程关联起来,并记录和跟踪这种关系。
因为总会有人在最后一刻取消订单,所以航运业一般是多拉一些货物,这个称为超订。比如预订110%的载货量,有时的规则可能更复杂。需求文档中会包含这句话:允许10%的超订。
这个代码没有任何问题,但是有一个重要的业务规则,被隐藏在了标红的这句话中。我们要考虑如何把这个业务规则表达的更清楚,让项目中的人都了解它。说实话,如果代码如上一样,很少有人能通过代码发现这一条隐含的业务规则,如果规则更复杂,情况会更糟糕。这个时候,可能设计的好一点,我们会利用策略设计模式。
这个例子,作者用来说明:领域模型和相应的设计可以用来保护和共享知识。