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

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

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

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

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

[identity profile] dmzlj.livejournal.com 2009-08-11 08:12 am (UTC)(link)
Да. Именно сжигать книги GoF. А апологетов подвергать негативному мотивированию, пока не поймут Правду.

[identity profile] g-rub.livejournal.com 2009-08-11 08:41 am (UTC)(link)
Gang of Four.
Паттерны проектирования, всё такое.

[identity profile] metaclass.livejournal.com 2009-08-11 08:44 am (UTC)(link)
Gang of Four, Design Patterns.
На пару с Мартином Фаулером это корень зла всех паттернов, слоев абстракции, фасадов, проксей, врапперов и прочих вещей, которые из проектов делают гирлянды мелких копипастных классов.

[identity profile] theiced.livejournal.com 2009-08-11 08:46 am (UTC)(link)
ааа - я пробовал эти каки чейтать - это для индусов.

[personal profile] alll 2009-08-11 09:43 am (UTC)(link)
Ну да, а учителя фехтования - корень всех бытовых убийств по пьянке, всех этих "сорок ножевых ранений из которых пятнадцать смертельных".

[identity profile] zamotivator.livejournal.com 2009-08-13 08:41 pm (UTC)(link)
Лучший коммент!
Ещё надо запретить молотки, отвёртки и бензопилы...
А ведь паттерны - это всего лишь инструмент =)

[identity profile] aamonster.livejournal.com 2009-08-11 10:01 am (UTC)(link)
По сравнению с Александреску они белые и пушистые.

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

[identity profile] henu3detb.livejournal.com 2009-08-11 09:04 am (UTC)(link)
А что не так с GoF?