我所处的情况是,有一个具有TypeScript和ESlint的代码库,但是:
import/no-cycle规则来防止它)。我们现在正在引入一个构建管道,这样我们就可以防止人们提交错误的代码--但问题是,代码已经无法通过CI质量检查。
我们不能像现在这样在类型错误上失败,我们需要首先修复所有的类型错误。
在不妨碍我们同时使用代码的情况下,采取什么最佳策略来执行代码质量呢?
以下是我试过或考虑过的一些事情:
--no-verify,然后当人们把主人拉进他们的分支时,他们就会得到所有的错误。是否有经过很好测试的策略来解决这个问题?
发布于 2020-11-25 10:09:04
本质上,您需要的是一个系统来验证您的代码至少是坏的,因为它没有添加新的修改来增加违反规则的行为。有一些办法来执行这一点:
请记住,您需要有一个系统来执行这一点,并有一个团队希望这种情况发生。
发布于 2020-11-27 19:58:53
听起来你的想法是正确的,但是要提出一些具体的建议:
--fix选项,并且知道如何在整个代码库中自动修复许多违反规则的行为。使用它--它比手动修改要可靠得多,而且比开发人员一次花时间(手动或自动)修复一个文件要快得多。您可以在单独提交中一次自动修正ESLint规则,以帮助跟踪更改和减少风险。像细碎这样的工具可以方便一次自动修正一条规则。--no-verify绕过钩子并向前推进是可以的。.rubocop_todo.yml中。在ESLint世界里,有精练-生成-待办。)就我个人而言,我对这种方法不太确定;我希望我的linting /代码质量尽可能少,所以添加一些步骤来维护一个忽略的文件似乎更难让开发人员参与进来。但至少值得注意。发布于 2020-11-25 05:49:58
我们在执行代码库上的一些规则时也遇到了类似的问题,这些代码库有很多遗留问题。
我们在主分支中使用合并请求。为我们工作的方法是,当合并请求包含对包含linter警告的行或函数的修改时,可以使用工具来指示。在这种情况下,CI管道是不会通过的(我们无论如何都可以合并,但这已经被证明是非常罕见的,因为devs不修复管道错误)。这样,每个合并请求都必须包含新的干净代码,或者在修改遗留代码时清除其他代码。
我们对这个系统感到非常高兴,因为它实际上是在我们的基础上执行渐进式的变革。唯一的负担是开发工具,使之能够比较线型警告线和修改行。
https://softwareengineering.stackexchange.com/questions/419325
复制相似问题