[Moscow.pm] Объективные критерии качества Perl кода
Роман Юсуфханов
r.yusufkhanov на gmail.com
Чт Фев 11 12:14:19 PST 2016
Как по мне, так маниакальностью попахивает и избыток необъективности ))
С ув. Роман Юсуфханов r.yusufkhanov на gmail.com <mailto:r.yusufkhanov на gmail.com>
моб.: +79310075149
> 11 февр. 2016 г., в 17:37, Ivan Petrov <i.petro.77.00 на gmail.com> написал(а):
>
>
>>> вот этот маниакальный вынос констант в константы мне не нравится.
>
>> Непонятно в чём тут видится маниакальность и в чём суть аргумента "мне не
>> нравится".
>
> маниакальность - это когда выносят константы которые в виде числа
> читаются лучше чем в виде текстового идентификатора.
>
>
> допустим широта и долгота
>
> croak "Неверная долгота" unless $lon >= -180 and $lon <= 180;
> croak "Неверная широта" unless $lat >= -90 and $lat <= 90;
>
> Тут в коде стоит 4 магических числа (90, -90, 180 и -180), но я
> утверждаю что вынос их в константы будет вредить коду.
>
> подобных примеров привести можно массу
>
> int($interval / 3600)
> int($interval / 86400)
>
> константа 3600 например сама за себя говорит что она означает.
> равно как и константы 90, 180, 270, 360, 60, 3600, 86400, 24, 1900,
>
>
> Пи - особый случай. 3.1415926 сразу дает понять что это пи и если в
> коде встречается не более пары раз на экран, то выносить ее в
> константы как минимум не полезно.
> если же код - какая-то голимая математика через слово вспоминающая PI,
> то тут конечно можно и константу определить (экспортировать).
>
>> Однако если говорить о Perl::Critic, то он настраивается под себя конфигом, а
>> сейчас я правлю утилиту так чтобы можно было даже на каждый проект отдельный
>> конфиг иметь
>
> да я не вашу утилиту обсуждаю, а некий "общепринятый паттерн
> хорошести"
>
> :)
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20160211/b93e27e4/attachment.html>
Подробная информация о списке рассылки Moscow-pm