[Moscow.pm] Perl 6

Victor Efimov victor на vsespb.ru
Вт Окт 13 11:48:45 PDT 2015


13 октября 2015 г., 21:26 пользователь Victor Efimov <victor на vsespb.ru> написал:
> 13 октября 2015 г., 21:16 пользователь Ilya Chesnokov
> <chesnokov.ilya на gmail.com> написал:
>>
>> 13 октября 2015 г., 19:49 пользователь Olga Smirnova
>> <o.smirnova на corp.mail.ru> написал:
>>>
>>> Тут, конечно, можно сказать, мол, просто не используйте 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
>> moscow-pm на pm.org | http://moscow.pm.org
>>


Подробная информация о списке рассылки Moscow-pm