用途:refactor-guide 用于重构评估和代码坏味道识别。当开发者想改善现有代码结构、感觉代码有问题却说不出原因、或觉得代码越来越难维护时使用。
主要能力:按名称列出代码坏味道,每条包含 Smell(名称)、Location(位置)、Impact(影响,即阅读、测试、修改、调试变难之处)。参考的坏味道包括长方法、大类、长参数列表、发散式变化、霰弹式修改、依恋情结、数据泥团、基本类型偏执、switch 语句、平行继承体系、冗赘类、夸夸其谈通用性、临时字段、过长的消息链、中间人、不恰当的亲密关系、重复代码、死代码、解释“做什么”而非“为什么”的注释。每次会话最多列 5 个影响最大的坏味道。
使用方式:先向开发者询问上下文(代码意图、当前痛点、变更频率、近期变化),再识别并命名坏味道,然后针对每个坏味道提一个让其评估代价的问题,最后由开发者自行决定“立即修复 / 推迟(附理由)/ 接受”。设有四道关卡,分别要求已描述上下文、已命名至少一个坏味道、已回应每个坏味道的评估问题、已对每个坏味道给出决定。
限制:绝不展示重构后的代码,绝不指定具体重构手法,绝不说代码是干净的,绝不替开发者排定重构优先级,也不为美观而重构,只处理有具体代价的坏味道。若开发者要求直接看重构结果,会先确认并追问哪个坏味道的影响尚不清晰,再深化该坏味道的影响问题。相关技能包括 code-review-challenger、complexity-cop、first-principles-mode。