Как интерпретировать метрики кода (вычисленный SourceMonitor)

В дополнение к ответу o-o я хотел бы рекомендовать отделить логические операции от возврата и поместить их как тройники в переменные.

Кроме того, используйте concat() для обеспечения безопасной конкатенации переменных

 Date.prototype.yyyymmdd = function() {
   var yyyy = this.getFullYear();
   var mm = this.getMonth() < 9 ? "0" + (this.getMonth() + 1) : (this.getMonth() + 1); // getMonth() is zero-based
   var dd  = this.getDate() < 10 ? "0" + this.getDate() : this.getDate();
   return "".concat(yyyy).concat(mm).concat(dd);
  };

 Date.prototype.yyyymmddhhmm = function() {
   var yyyy = this.getFullYear();
   var mm = this.getMonth() < 9 ? "0" + (this.getMonth() + 1) : (this.getMonth() + 1); // getMonth() is zero-based
   var dd  = this.getDate() < 10 ? "0" + this.getDate() : this.getDate();
   var hh = this.getHours() < 10 ? "0" + this.getHours() : this.getHours();
   var min = this.getMinutes() < 10 ? "0" + this.getMinutes() : this.getMinutes();
   return "".concat(yyyy).concat(mm).concat(dd).concat(hh).concat(min);
  };

 Date.prototype.yyyymmddhhmmss = function() {
   var yyyy = this.getFullYear();
   var mm = this.getMonth() < 9 ? "0" + (this.getMonth() + 1) : (this.getMonth() + 1); // getMonth() is zero-based
   var dd  = this.getDate() < 10 ? "0" + this.getDate() : this.getDate();
   var hh = this.getHours() < 10 ? "0" + this.getHours() : this.getHours();
   var min = this.getMinutes() < 10 ? "0" + this.getMinutes() : this.getMinutes();
   var ss = this.getSeconds() < 10 ? "0" + this.getSeconds() : this.getSeconds();
   return "".concat(yyyy).concat(mm).concat(dd).concat(hh).concat(min).concat(ss);
  };

var d = new Date();
d.yyyymmdd();
d.yyyymmddhhmm();
d.yyyymmddhhmmss();

Немного больше DRY скрипта, как предложено RiZKiT

https: //jsfiddle.net/EricHerlitz/tuhhfxz9/

15
задан ish 24 June 2012 в 07:39
поделиться

4 ответа

, Как я могу помешать модулю загружаться?

lp встроен в ядро, так помещение в черный список, оно не будет работать. Простое решение состоит в том, чтобы сделать rmmod lp для разгрузки, оно когда-то вошло в систему. Можно автоматизировать это путем создания init сценария или просто помещения этого в Ваш .bashrc - использование rmmod lp 2>nul так, чтобы, если модуль уже разгружен, он не создавал помехи экрану ошибкой.

я использую Ubuntu 11.10 с 3.0.0-x ядрами от команды ядра PPA.

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

1
ответ дан ish 22 October 2019 в 14:49
поделиться

SourceMonitor является потрясающим инструментом.

"Методы В Классе" полезно для тех, кто хочет гарантировать, чтобы их классы следовали за хорошими принципами OO (слишком много методов указывает, что класс мог брать больше, чем он должен).

"Диспаши на Метод" полезно для общего чувства того, насколько большой каждый метод. Более полезный для меня информация о методах со слишком многими операторами (двойной щелчок по модулю для более прекрасной гранулярной детали).

Функциональная Сложность полезна для установления, насколько противный код. Действительно я использую эту информацию больше, чем что-либо еще. Это - информация о том, насколько сложный самая противная функция в модуле (по крайней мере, согласно цикломатической сложности). Если Вы дважды щелкаете по модулю / файл, можно узнать, какой конкретный метод так плох.

16
ответ дан 1 December 2019 в 03:05
поделиться

Создание пользовательского ядра не необходимо

, Это - моя процедура (приложение прежней версии, виртуализированное в плеере VMware, нуждаясь в доступе к аппаратному ключу параллельного порта)

для аппаратного ключа параллельного порта для работы, пользователь Ubuntu должен быть членом lp группа. Как корень (или sudo):

vigr    (add user to group lp)
vigr -s (repeat)

Затем, необходимо предотвратить модуль ядра lp от загрузки

  1. , Редактирование /etc/modules для обеспечения lp не загружается при начальной загрузке:

    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    
    #lp
    rtc
    
  2. Черный список lp модуль (Ubuntu 10 и позже), чтобы позволить плееру иметь доступ к нему.

    Создают файл:/etc/modprob.d/blacklist-vmware.conf

    #/etc/modprob.d/blacklist-vmware.conf
    blacklist lp
    
  3. Выполняют следующее для обновления загрузочного образа:

    dpkg-reconfigure linux-image-$(uname -r)
    
  4. Редактирование /etc/default/cups для сходства с этим:

    # Cups configure options
    
    # LOAD_LP_MODULE: enable/disable to load "lp" parallel printer driver module
    LOAD_LP_MODULE=no
    

Перезагрузка и тест!

lsmod | grep lp

(должен быть пустой ответ)

6
ответ дан Byte Commander 22 October 2019 в 14:49
поделиться

Как правило ползунка, цикломатическая сложность 10 или меньше - то, где Вы хотите быть. CC от 11 до 20 почти настолько высоко, как Вы хотите добраться в большинстве случаев: после того как Вы добираетесь выше 20, Вы, более вероятно, встретитесь с открытием задач и фиксацией дефектов, и после того как Вы добираетесь выше 50, Вы обычно смотрите на метод, который должен быть пересмотрен теперь.

Имеют в виду, что это инструкции. Возможно иметь метод с CC 25, который столь упрощен, как можно получить его; Вы просто захотите быть более осторожными с этими методами, когда необходимо будет обновить их.

8
ответ дан 1 December 2019 в 03:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: