软件开发中的棘轮

主要观点:工作中使用“棘轮”(ratchet)脚本,用于在源代码检查时统计代码库中特定“模式”的实例数量,防止不良实践通过代码库扩散,脚本简单,通过硬编码预期数量进行基本字符串匹配,存在一些边缘情况,未来计划升级支持正则表达式匹配等,此技术可自动化代码审查中禁止某些做法的过程,但要避免滥用,不同人对类似技术有不同看法。
关键信息:

  • 代码库中曾常用的“模式”需停止使用,一次性删除所有实例工作量大,用 ratchet 脚本统计实例数量。
  • 脚本简单,预期数量硬编码,扫描的“模式”是普通文本字符串,目前主要扫描不被认可的方法名。
  • 存在边缘情况,如注释和字符串字面量中出现被禁止的方法名等。
  • 未来计划升级脚本,使其能自动调整预期数量等。
  • 此技术可避免代码库中遗留不良实践,对新人有误导,能自动化代码审查中的禁止做法。
  • 也存在易被滥用的风险,如强制给开发团队不必要的严格“标准”。
    讨论内容:
  • Spwack 所在工作场所格式标准只增不减,与帖子内容方向相反,认为只有保留现有规则才安全,还抱怨了帖子内容。
  • Ingvar 之前工作的代码库起初混乱,后写脚本在 PR 时根据正则表达式列表决定是否触发禁止失败,可细化列表,但粒度到文件大小,适用性因人而异。
阅读 9
0 条评论