О, спасибо! Конкретика попёрла, воспринял и осмысливаю!
--
С наилучшими пожеланиями
С наилучшими пожеланиями
Максим Белозёров
16.12.2016, 10:02, "Konstantin S. Uvarin via Moscow-pm" <[email protected]>:
Приветствую!
"На пару функций". Поехали.
1) Захват ресурса (временный файл, например).
ООП позволяет написать что-то в духе
my $resource = My::Resource->new( %params );my $fd = $resuource->file;
# долго делаем что-то с $fd
undef $resource; # вызвался деструктор и освободил ресурс за нас# и это сработает независимо от того, вызвали мы return или die# разве что на exec-е не сработает, или если сигналом убили.
Хотя в тестовых скриптах, например, вызываю mktemp( ..., CLEANUP => 1 );и не парюсь.
2) сериализация:
my $codec = My::Serializer->new( %params );$codec->encode( ... );$codec->decode( ... );
И тут мы (а) гарантируем, что параметры надо менять в ОДНОМ месте, и (б) гарантируем 100% раунд-трип данных (то есть, encode(decode(x)) == x).Опять же, есть куча мест, где freeze/thaw или encode_json/decode_json прекрасно работают. А вот попробуйте сконфигурировать (через local Data::Dumper::foo = ... ) Data::Dumper так, как удобно Вам, а не ему - узнаете много новых выражений из уже известных Вам слов :)
С уважением,,--2016-12-16 8:27 GMT+02:00 Максим Белозёров via Moscow-pm <[email protected]>:Объясните непрограммисту: что за прок от ООП в модулях на пару функций (пардон, методов)? Что за смысл многословно и со стрелочками писать что-то, что можно вызвать одним именем функции с парой параметров? Какая вообще польза в абстрагировании от входных данных? Они разные, блин, чего стоит абстрактная хня в вакууме? Не ООП ли это ради ООП?
Вкусовщинка: какие способы общения со сторонними модулями предпочитаете?
Может, вопросы глупы, но очень нужна пара осмысленных ответов. Больших проектов не пишу, а в мелких на ламерский взгляд от ООП одна порча. Помогите разобраться, хоть ссылками на годные материалы (можно en_US или en_UK).
--
С наилучшими пожеланиями
Максим Белозёров
--
Moscow.pm mailing list
[email protected] | http://moscow.pm.org
--http://github.com/dallaylaenskype: kuvarinKonstantin S. Uvarinjabber: see <from>
Moscow.pm mailing list
[email protected] | http://moscow.pm.org
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
