vmo*_*usu 21 java algorithm refactoring mapreduce sonarlint
对于其中一个java项目,我们最近开始使用SonarLint.代码分析的输出显示太多关键代码气味警报.
Critical code smell: Refactor this method to reduce its Cognitive Complexity.
我听说过Cyclomatic Complexity而不是认知复杂性.我对小组的问题:
我已经通过这个链接,但无法得到我所有问题的答案.
提前致谢.
Sor*_*rin 27
人类可以轻松记住7个实体+/- 2(维基百科).当有人需要阅读代码时,他们可能会遇到这个限制.有时会有太多的局部变量需要跟踪,或者if/for语句太多.在所有情况下,它都更难理解代码应该做什么,因为很难保持算法的精神图像.
行业标准:不.
可读性和可维护性:调试/改进简单易读的代码更容易.
适用于方法或其他部分:某些人可能想要了解的一切.如果你试图解释你的设计,我需要跟踪20多个课程,我会迷失方向.如果我需要快速使用你的界面,但我需要记住10位状态,我将无法做到.
它依赖的任何特定标准:理解代码时需要记住的事物数量.
最佳实践:创建更多更好的功能.将相关概念提取到组/包中.减少代码中嵌套级别的数量(如果您阅读嵌套代码,则需要记住导致您的条件).在任何一点减少使用中变量的数量(在提取函数时效果很好).