Смотри-ка, люди срутся про синтаксис Перла, прям как в старые добрые
времена. :)

вт, 13 окт. 2015 г. в 21:49, Victor Efimov <[email protected]>:

> 13 октября 2015 г., 21:26 пользователь Victor Efimov <[email protected]>
> написал:
> > 13 октября 2015 г., 21:16 пользователь Ilya Chesnokov
> > <[email protected]> написал:
> >>
> >> 13 октября 2015 г., 19:49 пользователь Olga Smirnova
> >> <[email protected]> написал:
> >>>
> >>> Тут, конечно, можно сказать, мол, просто не используйте Dumper (или
> любую
> >>> другую функцию, неявно преобразующую тип), но это не панацея, т.к. в
> любой
> >>> момент в проект может прийти новый человек, не знающий про эту фичу,
> который
> >>> возьмет да и начнет использовать одну из таких функций перед отправкой
> и все
> >>> нахрен поломается.
> >>
> >>
> >> Code review? Тесты? :)
> >
> > да, у нас похожий код был и были тесты. сломать было нельзя.
> > однако если ты по всему коду за собой таскаешь некоторую структуру с
> > "числами" и вдруг добавление в любом месте логгирования этой струкруты
> > делает её не валдиной, тут тесты не помогут, вернее только 100%
> > покрытие и постоянно тест на то что число осталось числом (для чего,
> > мужду прочим нужен модуль B или тот же JSON::XS) на все все кейзы.
> > получается что если "число" поучаствует в строковой операции (как
> > readonly) (например print $number) без всякой ошибки или варнинга оно
> > превратится в "не число". это не в какие ворота не лезет.
>
> даже поясню ещё больше:
>
> вот допустим у тебя есть функция print_data_as_json
> она покрыта тестами. всё ок. числа там не портястся. отлично.
>
> затем ты пишешь новый код в рандомном месте проекта
>
> my $struct = { x => 42 };
> print_data_as_json($struct)
>
> всё окей.
>
> затем ты добавляещё ещё кода
>
> my $struct = { x => 42 };
> someanotherfunc($somedata, $struct)
> print_data_as_json($struct)
>
> всё.. приехали. теперь (учитывая что любое чтение поля x может его
> испортить) нужно добавить тест, гарантируюющий что
>
> someanotherfunc не "испортит" значение x в $somestruct для всех ветвлений.
>
> фактически это удваивает количество тестов (ассертов тестов) всего
> кода где структура с числом
> должна быть "живая" и оставаться числом.
>
>
> >
> >>
> >> --
> >> Best regards,
> >> Ilya Chesnokov
> >>
> >> --
> >> Moscow.pm mailing list
> >> [email protected] | http://moscow.pm.org
> >>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org
>
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить