
核心梳理
1. 重构的两个层次
传统代码重构:专注于改进代码结构、消除重复、提高可读性,不改变软件的外部行为。这是日常的、基础性的工作。 为实现深层模型而重构:在深入理解领域的基础上进行,旨在改进领域模型本身,使其更准确地反映业务概念和规则。这通常需要一系列的代码重构作为支撑,但其目标是为了获得更深层的模型。
2. 重构的三大关注点
3. 重构的时机与动机
设计没有表达出团队对领域的最新理解:即使代码简洁,但模型语言与专家不一致时。 重要的概念被隐藏在设计中了:复杂的逻辑、重复的模式,常常暗示着缺失的显式概念。 发现了一个能令某个重要的设计部分变得更灵活的机会:重构不仅可以改善当下,更可以为未来铺路。
4. 探索团队
重构不是单打独斗,特别是在寻求深层模型时。建议组织小型的探索团队(4-5人,包括开发人员和领域专家),通过短时间(半小时到一小时半)的头脑风暴,使用白板和UBIQUITOUS LANGUAGE,快速验证模型假设。这种团队是自组织的,任务完成后随即解散。
5. 危机就是机遇
深层模型往往不是在平静中出现的,而是在危机中。当你发现一个“无论如何都解决不了的Bug”或一个“看似简单却描述不清的概念”时,这很可能是一个信号:你站在了突破(第8章)的边缘。这正是重构、深化模型的绝佳时机。
项目使用时的指导原则
1. 将“重构”明确区分为两个层次:代码层和模型层 👥
2. 建立“探索团队”的组织形式,促进知识交流 🤝
3. 识别“重构的信号”:当“危机”和“机会”降临时 ⚠️
4. 重构的黄金法则:小步快跑,持续集成 🏃
5. 学习用“新模式”替换“旧模式”,接受不完美 🔄

夜雨聆风