知识卡片

拆分方式决定了系统未来的扩展半径

普通读书笔记卡 · 1683.b

内容

即使团队都是熟练工程师、不拆分也能靠自律控制修改范围,现实中团队水平参差,拆分的价值在于强制约束——即便某程序员判断失误,出错范围也被拆分边界天然限制住,不会波及无关模块。不同拆分方式带来不同扩展半径:面向流程拆分改动通常局限一两层,面向服务拆分局限相关服务,面向功能拆分局限具体功能模块。选错拆分维度,日后每次新需求都要跨边界修改,等于白拆。发散:拆分本质是给未来变更预先划定安全边界。

参考来源

- 位置:《从0开始学架构》第37章《32|可扩展架构的基本思想和模式》(源文件:_epub-src/OEBPS/Text/part0036_split_002.html) - 结论依据:原文明确"现实却是:团队有菜鸟程序员,到底是改A处实现功能还是改B处实现功能,完全取决于他觉得哪里容易改……合理的拆分,能够强制保证即使程序员出错,出错的范围也不会太广",并以学生管理系统举例"如果我们需要在注册服务中增加一种'学号注册'功能,则只需要修改'注册服务'和'登录服务'即可,'信息管理服务'和'安全设置'服务无须修改"。 - 原始内容:合理的拆分,能够强制保证即使程序员出错,出错的范围也不会太广,影响也不会太大……如果我们需要在注册服务中增加一种"学号注册"功能,则只需要修改"注册服务"和"登录服务"即可,"信息管理服务"和"安全设置"服务无须修改。