知识卡片
从事务脚本到活动记录的自然演化路径
内容
如果一开始把事务脚本和行数据入口搭配使用,随着系统演进,很可能会发现同样的业务逻辑在多处脚本里反复出现——而这些重复的逻辑本该待在行数据入口里才对。不断把这些重复逻辑从各个脚本挪回对应的行数据入口,行数据入口会逐渐演变成活动记录——这个转变是件好事,因为活动记录能实实在在减少业务逻辑里的重复代码。这个思路反过来也给出了一条务实的渐进式重构路径:先把数据库表包装成入口(此时只是纯粹的数据存取封装),再逐步把散落在各处脚本里的行为迁移进来,让入口慢慢演化成活动记录——这条路径不要求一开始就精确判断”这个系统到底该用事务脚本还是活动记录”,而是允许从最简单的形态出发,跟着代码里实际暴露出的重复问题走。可迁移启发:模式之间的迁移未必需要一次性的架构决策,”先上最简单的方案、让代码自己暴露出该往哪个方向长”、再顺着这个信号做渐进式重构,是一种更低风险的演化策略,尤其适合早期需求还不够明朗的场景。
参考来源
- 位置:《企业应用架构模式》第二部分"模式"之"第10章 数据源架构模式"之"10.2.2 使用时机"(源文件:_epub-src/OEBPS/Text/000081.html)
- 结论依据:原文说明"如果把事务脚本和行数据入口一起使用,可能会发现业务逻辑在多处脚本中重复出现,这些逻辑可能在行数据入口中有用。不断移动这些逻辑会使行数据入口演变为活动记录,活动记录很好,因为它减少了业务逻辑中的重复",直接支撑本卡结论。
- 原始内容:不断移动这些逻辑会使行数据入口演变为活动记录,活动记录很好,因为它减少了业务逻辑中的重复。