知识卡片

MailProxy案例:EDD方法综合应用的优缺点

普通读书笔记卡

内容

运用[[EDD封装驱动设计方法的四个步骤]],MailProxy邮件代发系统的模块划分方式是:通过研究上下文图粗粒度地设计分层架构,之后运用分层细化、分区、通用模块分离等各种手段推进细粒度模块划分——比如把[[从功能组到功能模块的核心原理]](功能模块的垂直切分思想)运用进来,识别层内的细粒度模块。这套综合方法相比前三章分别演示的单一方法([[MailProxy案例粗粒度功能模块划分的优缺点]]、[[MailProxy案例分层架构设计的优缺点]]、[[MailProxy案例用例驱动模块划分的优缺点]]),呈现出明显不同的优缺点组合。优点:更严谨、更专业,可操作性强;综合了多种手段,促进了细粒度模块划分,有利于关注点分离和模块复用——这正是因为EDD方法不是单靠”功能组映射”“分层”或”用例归纳”任何一种孤立技巧,而是把它们组合起来、各自负责解决对方解决不好的问题(粗粒度分层负责技术关注点分离,功能模块的垂直切分负责业务紧密度聚合,通用模块分离负责减少重复,用例驱动评审负责检验和修正);还加入了评审优化环节,让设计不是一次性定稿,而是可以基于用例反复检验修正。缺点也很直接:因为是综合方法,掌握起来还是稍有门槛的——相比单一方法(比如”照功能组切”这么直观),EDD要求设计者同时掌握分层、分区、扇入扇出判断、机制识别等多项技能,并且知道在什么阶段用哪种技巧,这本身就需要更多的学习和实践积累。把四种模块划分方法在MailProxy这同一个案例上依次演示、逐一对比优缺点,正是本书贯穿始终的教学设计——让读者直观看到”单一方法各有短板,综合方法弥补短板但门槛更高”这个权衡,而不是抽象地讨论”哪种方法最好”。

参考来源

- 位置:《软件架构设计:程序员向架构师转型必备》第15章《模块划分的4步骤方法——运用层、模块、功能模块、用例驱动》"15.3.2 设计的优点、缺点"节(源文件:_epub-src/OEBPS/text00018.html) - 结论依据:原文列出"更严谨、更专业,可操作性强……综合了多种手段,促进了细粒度模块划分,利于关注点分离和模块复用……加入了评审优化环节"三条优点,以及"因为是综合方法,所以掌握起来还是稍有门槛的"这条缺点,直接支撑本卡片结论。 - 原始内容:更严谨、更专业,可操作性强。综合了多种手段,促进了细粒度模块划分,利于关注点分离和模块复用。加入了评审优化环节……因为是综合方法,所以掌握起来还是稍有门槛的。