知识卡片

构件切分不机械对应任务可拆可合核心标准是有明确业务含义

普通读书笔记卡

内容

构件模型里的”构件”该怎么切,作者给出一个反直觉但关键的原则: 构件不是任务的机械映射。业务建模时,流程已经被标准化成一个个 “任务”,但进行构件设计时,完全可以把一个任务再细分成若干个 “零件”,也可以把多个任务聚合成一个”零件”——这些打破了原有 任务结构边界的”零件”,才是真正可用于”组装”的构件。这和企业 能力视图里任务与用例的一一对应关系不同:构件对应的是服务的 设计,一个构件可以由一个或一组服务组成,具体怎么组取决于实际 需要或团队的设计习惯。真正决定一个构件划分是否合理的标准, 不是”能不能干净利落地把服务分好类”,而是这个构件本身能不能 给出一个明确的业务含义,并且这份含义还要指向”业务可组装”这个 目标——换句话说,切分构件的出发点始终是”业务人员能不能理解 并想要组装这个东西”,而不是纯粹从技术分类整洁度出发。这个原则 之所以重要,是因为它划清了一条界限:如果构件划分只是为了让 服务列表看起来分类清楚,那本质上仍然是单纯的技术组装,业务人员 看不懂、也用不上;只有当每个构件都能对应一个业务人员能一眼 认出来的具体概念(比如”竞价通知”这个环节),构件模型才真正 起到了业务和技术之间”通用语言”的作用,而不只是又一层技术 抽象。

参考来源

- 位置:《企业级业务架构设计:方法论与实践》第14章"如何支持 面向构件的设计"14.3节"构件模型的设计方式"之"1.构件"(源 文件:_epub-src对应text00030.html一带) - 结论依据:原文明确"将一个'任务'再细分成若干个'零件',抑或 将多个任务聚合成一个'零件',这些打破了原有任务结构的'零件' 就是可用于'组装'的'构件'……构件不同于任务,其要对应于服务 的设计,一个构件可以由一个或一组服务组成……构件的切分原则 应当是每个构件都能够给出明确的业务含义,而不是单纯地为了给 服务分分类,这种含义还应面向业务可'组装'的目标",直接支撑 构件切分不机械对应任务、核心标准是明确业务含义这一结论。 - 原始内容:将一个"任务"再细分成若干个"零件",抑或将多个任务 聚合成一个"零件"……构件的切分原则应当是每个构件都能够给出 明确的业务含义,而不是单纯地为了给服务分分类。