[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