(no subject)
Monday, December 11th, 2006 12:16Злобная статья про паттерны.
Чисто пацанский комментарий.
Всё отчётливее понимаю, хули «промышленный» софт такой раздутый.
Чисто пацанский комментарий.
Всё отчётливее понимаю, хули «промышленный» софт такой раздутый.

no subject
Date: Monday, December 11th, 2006 11:03 am (UTC)PS. Последняя неделя у меня проходит под лозунгом "долго, дорого и хреново". Почему - незнаю.
no subject
Date: Monday, December 11th, 2006 11:09 am (UTC)no subject
Date: Monday, December 11th, 2006 11:28 am (UTC)no subject
Date: Monday, December 11th, 2006 11:42 am (UTC)И ещё. В данном случае я написал «кустарные поделки», подразумевая уникальность каждой софтварной разработки.
no subject
Date: Monday, December 11th, 2006 08:01 pm (UTC)вызывать своих блядейжить-поживать.no subject
Date: Monday, December 11th, 2006 07:59 pm (UTC)no subject
Date: Monday, December 11th, 2006 06:47 pm (UTC)кроме прочего, активная апологетика того, что "в нормальных языках паттерны не нужны".
ну и вообще симпатичная статейка
no subject
Date: Monday, December 11th, 2006 07:57 pm (UTC)У меня, к примеру, есть на всё, на чём я пишу, с весьма дохуя стандартных решений для большого набора стандартных ситуаций. Их, наверное, можно назвать паттернами. Но я не состою в GoF, не учусь в MIT и не здороваюсь за руку с Полом Грэхемом и Джоэлом Спольски, поэтому меня, чисто подвального девелопера, никто слушать не будет.
Паттерн -- это всего лишь некое типовое решение, проверенное для типовых задач.
Я в принципе не против паттернов. Говорить, что "в нормальных языках" они не нужны -- это бред, иначе не назовёшь. У любого программиста есть свой набор паттернов. Наверное, я бы даже назвал паттерном банальности класса прохода по list'у -- только не говорите мне, что существует 30 вариаций решения этой задачи, сертифицированных по RFC.
То, что есть паттерны в терминах GoF -- то же самое. Типовой набор типовых решений типовых задач.
Но, как говаривал Остап Бендер, "не делайте из еды культа!". Ставить знание типовых решений во главу угла, фильтровать работников на собеседованиях на основании (не)знания десятка терминов -- это безусловно зло. Как, впрочем, и обожествление любой другой вещи.
Короче, в двух словах. Паттерны -- нормальная штука. Божество "Паттерн" -- зло.
ps: простите за сумбурность изложения, но одесское вино даёт себя знать :D
no subject
Date: Tuesday, December 12th, 2006 07:46 am (UTC)Если посмотреть внимательно на труды "банды четырёх" или хотя бы отдельно Александреску - видно, что
1) те шаблоны, которые рассматриваются в этих трудах - с одной стороны, существенны для определённого класса задач; с другой стороны, они резко нетривиальны. Это уже совсем не интуитивно понятные действия вроде "если нужно что-то сделать со всеми элементами списка, надо организовать поэлементный перебор в цикле". Это нетривиальные, отработанные не только короткой практикой, но и теорией решения. Даже простейший Singleton. Даже детская задачка "как сделать assert времени компиляции".
2) тема паттернов особенно привязана к C++. А C++ сейчас - это в первую очередь механизм шаблонов (templates), который сейчас доведен до состояния, эквивалентного машине Тьюринга, то есть теоретически способен сгенерировать что угодно на стадии компиляции. Но - опять же - с необходимостью весьма нетривиальной логики при разработке: это хорошо видно в книге Александреску.
Именно поэтому и "носятся" с паттернами: в мире C++ на сейчас это необходимое средство для того, чтобы делать некоторые важные вещи - и при этом требующее явного знания. С другой же стороны, это показывает проблему языка: вместо того, чтобы то же метапрограммирование сделать более прямыми средствами, используется крайне "косвенное" средство - шаблоны.
Возвращаясь к статье - её автор заметно неправ в рассуждении про то, чему учиться. Потому что все чтобы что-то сделать должны "стоять на плечах гигантов". И любая творческая работа, неважно, это программирование, абстрактная живопись или каратэ, нормально делается только тем, кто набрал в память/навыки/рефлексы готовые решения, и уже на основании их дальше разрабатывает свои, оригинальные решения. "Изобретать велосипеды", конечно, хорошо. Но не тогда, когда важно время, и не тогда, когда речь идёт про, например, visitor (пожалуй, один из самых тяжёлых "детей" паттернов).
А вот в чём он IMO прав - это в том, что в средах с существующим reflection (тут уже менее важно, это статически типизированная и компилированная среда, как Java, или динамическая и интерпретируемая, как Python) шаблонизация резко теряет свою важность. И это сейчас - тот путь, который полезен практически всем.
no subject
Date: Thursday, December 14th, 2006 03:11 pm (UTC)что никак не отменяет всей "глыбовости" паттернов как концепции. И носятся с ними везде, в питоне ничуть не меньше.
даже я б сказал, чем больше проект - тем больше носятся с паттернами. И видимый перекос в с++ связан только с величиной проектов.
no subject
Date: Friday, December 15th, 2006 05:50 pm (UTC)с удивлением осознал, что в тексте не понял ничего, кроме редкой вспышки узнавания отдельных слов.
интерес и удивление связаны с тем, что лет восемь назад ваял на C++ по десятке тысяч строк кода с активным использованием шаблонов.
no subject
Date: Friday, December 15th, 2006 06:43 pm (UTC)1. Что именно было прочтено из?
2. Вообще-то паттерны != шаблоны.
no subject
Date: Tuesday, December 12th, 2006 02:30 am (UTC)Вспоминаются сборники стандартных алгоритмов по ГОСТ.
Если бы тогда морочились объектами, такие сборники смело можно было бы объявлять "стандартными паттернами".
А самое смешное, что эти сборники пылились чуть ли не наравне с собраниями сочинаний Великих Идеологов. Точно так же - есть несколько томов, которые зачитывают, цитируют и выписывают в дипломные работы просто все, и есть все остальные тома, которые за пять лет брали два раза.
no subject
Date: Tuesday, December 12th, 2006 09:21 am (UTC)Программист (который таки программист) оценивает алгоритм… ну, как алгоритм. По применимости к данному классу задач, по эффективности (использование проца, памяти и красной маны), по прочим критериям, но все они не с потолка взяты.
Делец от «верхних технологий», менеджер, маркетолог, околожурналист и прочая тусовка не вкурят разницу между O(n) и O(log n), зато жрут с говном все эти buzzwords. У них нету других критериев оценки, кроме как «шумиха в прессе». А уж когда это говно начинает пахнуть идеологией — дело дрянь.
no subject
Date: Tuesday, December 12th, 2006 10:31 am (UTC)Мы, программисты, редкие мастера тянуть время…
Блин! Откуда они знают? %-)
no subject
Date: Tuesday, December 12th, 2006 01:30 pm (UTC)no subject
Date: Tuesday, December 12th, 2006 01:50 pm (UTC)Одно плохо - надо явно сохранять состояние на диске...
no subject
Date: Tuesday, December 12th, 2006 03:00 pm (UTC)