angularjs - Angular 应用程序的最大圈复杂度

标签 angularjs testing automated-tests jshint cyclomatic-complexity

我想知道什么Cyclomatic Complexity应该有一个有 Angular 的应用程序(每个 Controller 、服务等),以便于测试和维护。我在 Microsoft Documentation 中找到了Visual Studio 已将其警告级别设置为 25,但我认为它更依赖于语言/技术。

最佳答案

循环复杂度不依赖于语言/技术。它是根据函数中的逻辑可能路径计算的。

不存在“最大”圈复杂度。 它越高,代码就越难快速理解。 它越高,您错误理解它的可能性就越大,并且如果您必须对该函数进行修改,则在该函数中引入错误的可能性就越大。

如果要维护您的代码,或者要改进您的代码,则必须考虑到这一点。 (维护成本被远远低估了。)

这个问题Do you find cyclomatic complexity a useful measure?有一些有值(value)的答案。

我个人使用 7 规则。(科学研究表明,人脑一次只能掌握 7 个事物/概念)。当 CC >= 7 时、当函数的行数 >= 7 时、当我的类具有 >= 7 个数据成员时、当我的函数具有 >= 7 个参数时...等等时,我开始质疑我的设计。

关于angularjs - Angular 应用程序的最大圈复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26062043/

相关文章:

javascript - 如何在AngularJs中将数据从模态的内部 Controller 传递到外部 Controller

angularjs - 通过 td-width 固定宽度 td

ruby-on-rails - 处理后台作业的 Ruby RSpec 最佳实践是什么?我正在做一些不必要的复杂事情吗?

asp.net-mvc - 在 ASP.NET MVC 应用程序中测试 AutoMapper 配置采用什么方法?

linux - 使用熔岩运行测试用例

java - Selenium 不会单击页面上的第一个复选框

javascript - Fuelphp 路线到 Angular 路线

c# - 没有 MediaTypeFormatter 可用于从媒体类型为 'Product' 的内容中读取类型为 'text/plain' 的对象

typescript - 如何使用 Selenium 和 Mocha 实现 Istanbul 尔覆盖

google-chrome - testcafe 是否支持加载任何 crx 扩展,并使用 chrome 浏览器中的自定义 header 值设置 ModHeader 扩展