用途:该技能在用户要求对 Ruby 代码库进行代码审查、重构或提升代码质量时使用,帮助应用 Sandi Metz 的四条可维护面向对象代码规则。四条规则为:类不超过100行代码;方法不超过5行代码;方法参数不超过4个;控制器只能实例化一个对象。
主要能力:审查 Ruby 代码是否符合上述规则;按严重程度对违规排序(如类超200行、方法超10行、参数6个以上为高优先级);针对长类、长方法、参数过多、臃肿控制器给出具体重构策略,如提取类、提取子方法、引入参数对象、提取服务对象等;提供前后对比代码示例并说明改进理由;提示规则可合理破例的场景(配置文件、测试文件、DSL、生成代码、迁移,或遵循规则反而降低清晰度时)。
使用方式:先读取 references/rules.md 获取详细规则;按精确计数规则测量类与方法行数(排除空行、注释、定义与 end 语句),参数计数包含关键字参数但不含 &block,控制器统计每个 action 中的对象实例化(排除查找已有对象);用 grep 或文件搜索定位类与方法;按严重程度排序并给出带文件位置和行号的具体重构建议。可结合静态分析工具强制执行:RuboCop 配置 Metrics/ClassLength Max 100、Metrics/MethodLength Max 5、Metrics/ParameterLists Max 4、MaxOptionalParameters 3;也可用 Reek、flog、flay。
适用场景:整个代码库审查、单个文件或类审查、主动重构辅助,以及用户提及代码坏味道、POODR 或 Sandi Metz 工作时。
限制:规则为启发式,允许有充分理由的例外;重构后需验证测试仍通过。资料未提供安装命令、收费或平台信息。