[Moscow.pm] Perl 6

Тимур Нозадзе timur.nozadze на gmail.com
Вт Окт 13 11:56:33 PDT 2015


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

вт, 13 окт. 2015 г. в 21:49, Victor Efimov <victor на vsespb.ru>:

> 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 mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20151013/1cd124f7/attachment.html>


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