Смотри-ка, люди срутся про синтаксис Перла, прям как в старые добрые времена. :)
вт, 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
