## 一个中心: * 以复用为中心:DRY(Don't Repeat Yourself) * 功能唯一 * 原则上不要出现相同的代码 * 高内聚 * 相关领域的代码组织在一起 * 低耦合 * 尽量减少对其他代码的依赖 ## 两个基本点: * 保持简单:KISS(Keep It Simple ,Stupid) * 职责单一 * 一个函数只做一件事情 * 事情必须做到有头有尾(参数要校验,结束要返回) * 逻辑清晰 * 合理分层降低复杂性 * 修复问题后必须注释 * 终结问题 * 首要明确定位出现问题的根本原因 * 更要谨慎选择解决问题的最佳时机 * 保持专注:SOC(Separation of concerns) * 黑盒测试 * 隐藏实现细节,专注当前层级 * 屏蔽服务中断,降低影响范围 * 以我为主 * 如果没有问题,老代码对扩展开启,对修改关闭 * 如果问题严重,重新梳理逻辑,写个更好的替换 * 避免过早优化 * 珍惜改版的机会,每次改版都是最好的重构时机 * 但如果没有改版,不要去动它,做好你手头的事