用途:该技能提供《A Philosophy of Software Design》的提炼指南,用于代码评审、架构讨论、API/接口设计、模块拆分、错误处理、重构以及命名与注释。
主要能力:整理复杂性的定义与症状(变更放大、认知负担、未知的未知),根因(依赖与晦涩);战略性编程与战术性编程对比,建议投入约10%–20%开发时间改进设计;深模块与浅模块概念;信息隐藏与信息泄漏;通用模块与专用模块;不同层应提供不同抽象;将复杂性下移;通过重新定义语义让错误消失;重要设计至少构思两种方案;注释应描述代码未体现的信息;命名与一致性标准;以及一份代码评审红标速查表(浅模块、信息泄漏、时间分解、过度暴露、传递方法、重复、通用与专用混杂、粘连方法、注释复述代码、实现污染接口、模糊名称、难以命名、难以描述、代码不直观)。
使用方式:在代码评审中对照红标速查表识别设计问题;设计接口时追求深模块并让常见用法尽量简单;模块分解依据信息隐藏而非执行顺序或代码行数;错误处理优先考虑让错误条件不再成立;重构时预留时间改善周边设计;命名求精确,注释求补充代码未显示的内容。
限制:资料为设计理念指南,未提供具体安装命令、平台要求、收费信息或自动化工具能力;具体命令与版本暂未提供。