[Moscow.pm] [newsrach]ООП vs процедурка

Иван Соколов vaneska.ru на gmail.com
Чт Дек 15 23:14:00 PST 2016


Есть интересное видение ООП от джависта
https://www.youtube.com/watch?v=lfdAwl3-X_c
и его же про орм https://www.youtube.com/watch?v=ckjAWXJWZEY

Про то, что большинство программистов думают процедурами, а не объектами.

А прок в маленьких классах - разделение труда. Каждый класс решает свою
маленькую задачку и отвечает за ее решение.
Его можно лекго протестировать, рефакторить, понять, что он делает.


16 декабря 2016 г., 10:02 пользователь Konstantin S. Uvarin via Moscow-pm <
moscow-pm на pm.org> написал:

> Приветствую!
>
>   "На пару функций". Поехали.
>
> 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
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
>
>


-- 
С уважением,
Иван
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20161216/d08d8276/attachment-0001.html>


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