В дополнение к ответу 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
, Как я могу помешать модулю загружаться?
lp
встроен в ядро, так помещение в черный список, оно не будет работать. Простое решение состоит в том, чтобы сделать rmmod lp
для разгрузки, оно когда-то вошло в систему. Можно автоматизировать это путем создания init сценария или просто помещения этого в Ваш .bashrc
- использование rmmod lp 2>nul
так, чтобы, если модуль уже разгружен, он не создавал помехи экрану ошибкой.
я использую Ubuntu 11.10 с 3.0.0-x ядрами от команды ядра PPA.
долгосрочное решение состоит в том, чтобы просто удалить модуль из ядра, которое, конечно, требует создания пользовательского ядра. Посмотрите этот общественная страница справки для получения дополнительной информации о том, как сделать это, если Вы принимаете решение пойти этим путем.
SourceMonitor является потрясающим инструментом.
"Методы В Классе" полезно для тех, кто хочет гарантировать, чтобы их классы следовали за хорошими принципами OO (слишком много методов указывает, что класс мог брать больше, чем он должен).
"Диспаши на Метод" полезно для общего чувства того, насколько большой каждый метод. Более полезный для меня информация о методах со слишком многими операторами (двойной щелчок по модулю для более прекрасной гранулярной детали).
Функциональная Сложность полезна для установления, насколько противный код. Действительно я использую эту информацию больше, чем что-либо еще. Это - информация о том, насколько сложный самая противная функция в модуле (по крайней мере, согласно цикломатической сложности). Если Вы дважды щелкаете по модулю / файл, можно узнать, какой конкретный метод так плох.
Создание пользовательского ядра не необходимо
, Это - моя процедура (приложение прежней версии, виртуализированное в плеере VMware, нуждаясь в доступе к аппаратному ключу параллельного порта)
для аппаратного ключа параллельного порта для работы, пользователь Ubuntu должен быть членом lp
группа. Как корень (или sudo
):
vigr (add user to group lp)
vigr -s (repeat)
Затем, необходимо предотвратить модуль ядра lp
от загрузки
, Редактирование /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
Черный список lp
модуль (Ubuntu 10 и позже), чтобы позволить плееру иметь доступ к нему.
Создают файл:/etc/modprob.d/blacklist-vmware.conf
#/etc/modprob.d/blacklist-vmware.conf
blacklist lp
Выполняют следующее для обновления загрузочного образа:
dpkg-reconfigure linux-image-$(uname -r)
Редактирование /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
(должен быть пустой ответ)
Как правило ползунка, цикломатическая сложность 10 или меньше - то, где Вы хотите быть. CC от 11 до 20 почти настолько высоко, как Вы хотите добраться в большинстве случаев: после того как Вы добираетесь выше 20, Вы, более вероятно, встретитесь с открытием задач и фиксацией дефектов, и после того как Вы добираетесь выше 50, Вы обычно смотрите на метод, который должен быть пересмотрен теперь.
Имеют в виду, что это инструкции. Возможно иметь метод с CC 25, который столь упрощен, как можно получить его; Вы просто захотите быть более осторожными с этими методами, когда необходимо будет обновить их.