[Moscow.pm] [newsrach]ООП vs процедурка
Konstantin S. Uvarin
khedin на gmail.com
Чт Дек 15 23:02:06 PST 2016
Приветствую!
"На пару функций". Поехали.
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 <moscow-pm на pm.org>:
> Объясните непрограммисту: что за прок от ООП в модулях на пару функций
> (пардон, методов)? Что за смысл многословно и со стрелочками писать что-то,
> что можно вызвать одним именем функции с парой параметров? Какая вообще
> польза в абстрагировании от входных данных? Они разные, блин, чего стоит
> абстрактная хня в вакууме? Не ООП ли это ради ООП?
> Вкусовщинка: какие способы общения со сторонними модулями предпочитаете?
> Может, вопросы глупы, но очень нужна пара осмысленных ответов. Больших
> проектов не пишу, а в мелких на ламерский взгляд от ООП одна порча.
> Помогите разобраться, хоть ссылками на годные материалы (можно en_US или
> en_UK).
>
> --
> С наилучшими пожеланиями
> Максим Белозёров
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
--
Konstantin S. Uvarin
jabber: see <from>
skype: kuvarin
http://github.com/dallaylaen
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20161216/e4b98acc/attachment.html>
Подробная информация о списке рассылки Moscow-pm