6

我正在做一个巨大的项目,我们决定让所有代码符合每行 80 个字符。这是一个基于 ruby​​ 的项目,带有 C 的包装器。对于 Ruby,我决定使用 Rubocop 并使用以下命令:

rubocop --only LineLength

我收到了 1,714 个错误,其中行的长度大于 80 个字符。除此之外,Rubocop 还检测到了许多其他错误,我现在想忽略这些错误。

我正在寻找最简单的方法来自动更正所有行长违规以满足 C 和 Ruby 中 80 个字符的限制。

4

1 回答 1

1

请不要自动更改行长。

线长是一种度量,而不是一种风格。样式通常可以交换,例如双引号与单引号,使用 hashrockets 与 ruby​​ 2 中引入的新哈希语法等。选择样式通常是品味问题,对程序本身几乎没有(如果有的话)影响。这就是样式自动更正的原因:更改它们不会改变语义。

指标包括 linelength、classlengthABC-Size等。使用静态代码分析检查指标与检查样式完全不同。例如,将最大线长设置为不是一个品味问题,您宁愿使用它来强制执行某种编程风格。程序员必须避免长变量名和深度嵌套以将行长保持在限制之下。

指标还可以指示代码中的问题。例如,过高的 ABC 大小表示方法可能做得太多。

除此之外,如果不是不可能的话,自动缩短所有代码行将非常困难,因为 ruby​​ 是一种非常复杂的语言。

这里有一些替代方法,而不是自动减少线长:

  • 查看是否可以通过启用 AllowHeredoc 和 AllowURI 选项来减少违规次数。在这里阅读它们https://rubocop.readthedocs.io/en/latest/cops_metrics/#metricslinelength
  • 运行rubocop --only LineLength --auto-gen-config并使用 rubocops 配置停止检查线长。
  • 问问自己:通过减少线长我可以获得什么价值?
  • 不要将太长的行视为违反样式,而应将其视为潜在问题的可能指标。试着找出那个问题,然后解决它。
于 2017-01-19T23:01:06.773 回答