metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2009-08-11 10:19 am

А вот теперь пример безумия

В мире жабы(в смысле языка програмирования) есть какая-то тонкая шиза, которая порождает миллиарды фреймворков.
Вот пример про логгирование. Ну блин, как можно столько наворотить на пустом месте?

Самая хохма там - это то, что некоторые упоминают использование логгеров через дополнительный уровень абстракции. Мне иногда для вывода в текстовый лог и на экран юзеру приходится делать обвязку, дословно дублирующую интерфейс логгера, и меня это напрягает, потому что это натурально тупая копипаста. А народ такое массово использует и не парится.

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

[identity profile] mr-aleph.livejournal.com 2009-08-11 08:40 am (UTC)(link)
а чем вам эта книга не угодила?

[identity profile] dmzlj.livejournal.com 2009-08-11 09:58 am (UTC)(link)
Чувак, прочитал - и думает что понимает, Как Надо. Если бы книжка была написана в ключе, "как можно", а не "как нужно", и если бы авторы не думали, что изобрели какую-то фундаментальную хрень, а не пачку частных, но не лишенных иногда остроумности приемов - то все могло бы сложиться иначе.

Но когда проектировщик думает, что задачу надо декомпозировать на паттерны GoF - все, приплыли.

[identity profile] mr-aleph.livejournal.com 2009-08-11 10:16 am (UTC)(link)
вы давно GoF читали?

[identity profile] dmzlj.livejournal.com 2009-08-11 10:18 am (UTC)(link)
В 2000-м или 99-ом, что-ли. Зато вот людей, ушибленных GoF видел за это время столько... Как и примеров их творчества.

[identity profile] mr-aleph.livejournal.com 2009-08-11 10:47 am (UTC)(link)
ну за 10-то лет можно и забыть, что GoF постулируют свою книгу, как неисчерпывающий каталог паттернов, построенный на основе анализа существовавшего на тот момент программного обеспечения (а вовсе не как открытие), причем выбор из этого каталога должен производится после тщательного анализа и взвешивания всех за и против...

Я вот пролистал введение и там написано:


Никакое обсуждение того, как пользоваться паттернами проектирования, нельзя считать полным, если не сказать о том, как не надо их применять. Нередко за гибкость и простоту изменения, которые дают паттерны, приходится платить усложнением дизайна и ухудшением производительности. Паттерн проектирования стоит применять, только когда дополнительная гибкость действительно необходима. Для оценки достоинств и недостатков паттерна большую помощь могут оказать разделы каталога «Результаты».


занятно, неправда ли?

[identity profile] dmzlj.livejournal.com 2009-08-11 10:55 am (UTC)(link)
Я не то, что бы всерьез считаю, что их читать совсем не стоит. Их читать не стоит неокрепшим умам, которых, к сожалению, весьма много. Важно ведь не то, что они пишут, а как воспринимают читатели. Относиться к тому, что они пишут нужно сильно критично, опираясь на свой опыт. Который должен быть. Т.е не знать их плохо, но не знать ничего кроме них тоже плохо. В общем, я вреда от них наблюдал больше, чем пользы.

Вообще же, мне подход GoF кажется концептуалньно неверным, но вот прямо сейчас эту тему я развивать не берусь.

[identity profile] metaclass.livejournal.com 2009-08-11 10:17 am (UTC)(link)
Эту книгу можно читать только после того, как сам придумал хотя бы часть приведенных в ней паттернов. Тогда она воспринимается более правильно, чем если ее сначала читать, а потом пытаться все задачи натягивать на паттерны.

[identity profile] dmzlj.livejournal.com 2009-08-11 10:23 am (UTC)(link)
Так пока не прочитал - не поймешь, что ты придумал. Не, GoF это адъ. Я как сейчас помню - чтение GoF совпало с разработкой парсера-конвертера RTF. А там в примерах как раз ОНО.
Оба!!! подумал я. И оказался поимет два раза (Builder и Chain Of Responsibility, как щас помню). Пока понял, что авторы врядли сильно глубоко вникали в задачи, которыми пытались иллюстрировать свои паттерны. А еще там был паттерн, иллюстрированный с ошибкой и не реализующийся на том ЯП, на котором описывался. Или это у Лармана было...

А еще у меня в тиме тогда был чувак, который мне как-то заявил, что учится мыслить паттернами. Вот тут-то меня и накрыло окончательно.

[identity profile] blacklion.livejournal.com 2009-08-11 12:41 pm (UTC)(link)
О! Я вот в ней был разочарован очень — потому что не увидел ничего нового, читал поздно :)