Подтвердить что ты не робот

Как получить SonarQube, чтобы хорошо играть с AngularJS?

Я смотрел на использование SonarQube для проверки качества на каком-то javascript-коде, но этот код написан с помощью AngularJS.

Одно из правил SonarQube проверяет количество строк в функции - что кажется разумным - но в AngularJS функции используются для определения контроллеров, служб и директив, и эти функции могут стать довольно большими. Понятно, что они действительно больше похожи на определения классов, а другие функции вложены в них.

В идеале я бы хотел, чтобы SonarQube проверил длины внутренних функций и, возможно, внешнюю функцию с внутренними исключениями, но я не знаю, как это сделать.

Кто-нибудь еще столкнулся с этой проблемой, используя SonarQube с AngularJS, или кто-нибудь знает хорошее решение?

4b9b3361

Ответ 1

Одно из решений состоит в том, чтобы объявить все ваши методы отдельно в вашей функции самостоятельного выполнения.

(function(){
    var controller = function(dependency){
         //...
    },

    someDirective = function(dependency){
        //...
    },

    //Finally, your module
    module = angular.module("MyMod", []);

    module.controller("MyController", ['dependency', controller]);
    module.directive("someDirective", ['dependency', someDirective]);
}());

Это определенно может быть неудобным шаблоном для некоторых разработчиков, но это один из способов разбить ваши функции на более мелкие куски для SonarQube.