Re[3]: Думать надо не шаблонами, думать надо головой
От: Ромашка Украина  
Дата: 12.11.11 19:40
Оценка: 1 (1)
04.10.2011 10:16, Здравствуйте, fplab :
> Хвала небесам — наконец, нашелся человек, который понял то, что автор
> статьи хотел донести. Я уж почти отчаялся Те, кто в танке —
> сосредоточтесь хоть чуточку, прочтите внимательно название темы.

А автор что-то хотел донести? Нет, реально, просветите нас. Только вот
не нужно про сабжевую банальность.

Автор (да и вы тоже) смутно догадывается, где собака порылась, но
внятного ответа почему паттерны проектирования такая гадость,
дать не может. Мы с детства в паттернах. Детский сад? Переходя дорогу,
смотрим сначала налево, потом направо. Школа? Дают задачу, дают пример
ее решения и дают кучу заданий на самостоятельное решение подобных
задач. И так по каждой теме. Мы приходим в ВУЗ. Чем нас пичкают на
лекциях? Паттернами доказательств: прямое, от противного, методом
исключения. Потом на каждой дисциплине, аксиоматика которых также
укладывается в один паттерн (его дают на старших курсах), мы из паттерна
аксиом выводим все новые и новые теоремы с помощью паттернов
доказательств. На проработках продолжаются школьные паттерны -- пример
решения и задания на самостоятельное решение. Да в нас за нашу жизнь
вкладывается столько паттернов, что мы должны быть "зашаблонизированы"
по самые ушки.

Так почему нам все эти паттерны жить и творить не мешают, а паттерны
проектирования заставляют вполне вменяемых и умных людей писать код, на
который без слез смотреть невозможно?
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[4]: Думать надо не шаблонами, думать надо головой
От: DorfDepp  
Дата: 12.11.11 20:06
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>Так почему нам все эти паттерны жить и творить не мешают


Потому что паттерны работают, когда есть рутина, сильная повторяемость и сходность, механика, моторика.

Р>, а паттерны

Р>проектирования заставляют вполне вменяемых и умных людей писать код, на
Р>который без слез смотреть невозможно?

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

Хорошие инженеры, кстати, тоже творчески мыслят. А по паттернам работают токари, слесари.
Re[5]: Думать надо не шаблонами, думать надо головой
От: Ромашка Украина  
Дата: 12.11.11 20:30
Оценка:
12.11.2011 22:06, Здравствуйте, DorfDepp :
> Потому что паттерны работают, когда есть рутина, сильная повторяемость и
> сходность, механика, моторика.
> А создание софта есть творческая дизайнерская деятельность с большим
> творческим потенциалом. Попробуй научи дизайнера работать по шаблонам.
> Некоторые могут, только их "работа" не представляет никакой
> художественной ценности.

Фигня собачья. Паттерны доказательств теорем работают далеко не в
тривиальных случаях, где требуется весьма и весьма творческий потенциал.

> Хорошие инженеры, кстати, тоже творчески мыслят. А по паттернам работают

> токари, слесари.

Инженеры тоже работают по паттернам и для творческого мышления паттерны
ни разу не помеха. Я не слышал, чтобы, скажем, венгерская нотация
ограничивала кого-то в творчестве. А нотация это есть суть паттерн
именования переменных. Что отличает паттерны проектирования от остальных
паттернов, которыми мы пользуемся, но которые нам совершенно не мешают?
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[4]: Думать надо не шаблонами, думать надо головой
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.11.11 20:45
Оценка: 2 (1)
Здравствуйте, Ромашка, Вы писали:

Не путай порядок: спору нет, любой метод можно назвать "паттерном" (паттерн этого метода), но не любой выделенный паттерн можно с успехом превратить в метод (сиречь — последовательность действий с предсказуемым результатом). Паттерн — значительно более общая "категория", поэтому, в отличие от методов (сугубо практических по своей сути), к практике имеет самое опосредованное отношение. В детском саду, в школе учат именно методам (последовательностям действий), а не паттернам. Паттерны — это вторичная конструкция, первичен выбранный набор действий.

Р>Так почему нам все эти паттерны жить и творить не мешают, а паттерны

Р>проектирования заставляют вполне вменяемых и умных людей писать код, на
Р>который без слез смотреть невозможно?

Потому что взрослые вменяемые люди увидев новое слово "паттерн" почему-то приняли его за метод действия (до некоторой степени даже я не исключение). Почему так случилось — не знаю. Может быть, потому, что традиционно проектирование ПО считается чем-то запредельно сложным, чем владеют только гуру, а тут такой подарок: гуру поделились знаниями. Ну а дальше как всегда: ученики-то в немалой части далеко не гуру, да ещё и очень даже "идолопоклонники" — вот и превратили набор наблюдений в фетиш. Ещё можно провести аналогию с культом карго: если я возьму в руки портфель и надену профессорский пиджак, то я стану профессором.

Кстати, я сам отметился на этом поприще (посмотри моё первое сообщение на RSDN), правда, меня по первому времени GoF привлекли именно "близостью к жизни" — большая часть описанного так или иначе встречалась мне до 2001-го года, когда я познакомился с GoF. Действительно, много из того, что было в книге, я уже синтезировал сам. О, думаю, авторы — свои люди! Правда, сейчас уже такие дискуссии без приступа тоски читать не могу: взрослые люди серьёзно обсуждают детали различий какой-нибудь Strategy и Memento.

ИМХО, паттерны GoF (и не только) можно как-то использовать, если задаться целью именно исследования паттернов, как таковых. Скажем, для того, чтобы выделить какие-то общие закономерности в принимаемых решениях, или ещё для чего-то. Пытаться их прямо применять (по сути дела, инвертируя остановку задачи на выделение паттернов) — невероятно сложная задача, гораздо сложнее, чем синтез подходящего решения в некоем заданном контексте. Собственно, как всегда оно происходит, когда вещи переворачиваются с ног на голову.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: Думать надо не шаблонами, думать надо головой
От: Ромашка Украина  
Дата: 12.11.11 21:15
Оценка:
12.11.2011 22:45, Здравствуйте, Геннадий Васильев :
> Паттерны — это вторичная конструкция, первичен выбранный набор действий.


А вот это интересная мысль. Если взять аналогию с производной
(паттерном), то мы можем каким-то образом оценить только поведение
функции (метода), но не можем оценить значение в конкретной точке (сам
метод), потому что в первообразной (реализации метода) обязательно
выскочит константа (неопределенность)? Что-то сумбурно как-то.

Еще один вопрос. Почему, когда используются паттерны, смешивается
абстракция предметной области с абстракцией паттерна? Откуда лезут
всякие Helper-ы, Mapper-ы и прочее, чего вроде в модели быть не должно
ибо строится совсем не модель паттернов?
Posted via RSDN NNTP Server 2.1 beta


Всё, что нас не убивает, ещё горько об этом пожалеет.
Re[6]: Думать надо не шаблонами, думать надо головой
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 12.11.11 21:22
Оценка:
Здравствуйте, Ромашка, Вы писали:

Р>12.11.2011 22:45, Здравствуйте, Геннадий Васильев :

>> Паттерны — это вторичная конструкция, первичен выбранный набор действий.

Р>А вот это интересная мысль. Если взять аналогию с производной

Р>(паттерном), то мы можем каким-то образом оценить только поведение
Р>функции (метода), но не можем оценить значение в конкретной точке (сам
Р>метод), потому что в первообразной (реализации метода) обязательно
Р>выскочит константа (неопределенность)? Что-то сумбурно как-то.

Да нет, как раз, ИМХО, удачная аналогия: паттерн — как производная. А весь цимус реальности — в константах.

Р>Еще один вопрос. Почему, когда используются паттерны, смешивается

Р>абстракция предметной области с абстракцией паттерна? Откуда лезут
Р>всякие Helper-ы, Mapper-ы и прочее, чего вроде в модели быть не должно
Р>ибо строится совсем не модель паттернов?

ИМХО, по двум причинам. Первая — потому что агрегаты, которые получаются при декомпозиции, нужно как-то называть (давать классу некоторое имя). А вторая — потому что литература по паттернам одновременно предлагает некоторую более или менее единообразную систему терминов как раз для обозначения таких агрегатов.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[2]: Думать надо не шаблонами, думать надо головой
От: DarkGray Россия http://blog.metatech.ru/post/ogni-razrabotki.aspx
Дата: 14.11.11 00:20
Оценка: -1
U> Кроме того ряд общепризнанных сложных паттернов гарантированно приводят к усложнению решения (например, паттерн Декоратор), т.е. на самом деле это антипаттерны.

декоратор — это тот же мост, но вид сбоку

когда систему пилили на кусочки было применение моста, а когда из напиленных кусочков начинаем собирать обратно — получаем декоратора
Re[5]: Думать надо не шаблонами, думать надо головой
От: dimgel Россия https://github.com/dimgel
Дата: 03.01.12 13:48
Оценка:
Здравствуйте, Steamus, Вы писали:

S>Первое, чему постоянно учит Фаулер, так это тому, что проектирование штука сложная и прямое копирование подходов одной задачи в другой возможно далеко не всегда.


+1, побаяню: http://www.rsdn.ru/forum/philosophy/2568701.1.aspx
Автор: Дм.Григорьев
Дата: 02.07.07
Re[2]: Думать надо не шаблонами, думать надо головой
От: alexlz  
Дата: 20.01.12 01:56
Оценка:
Здравствуйте, Steamus, Вы писали:
S>-------------------------------------------
>>...Постойте, коллеги, какие шаблоны на С++, какие ещё шаблоны на C#? Оказывается, шаблоны сыграли с программистским сообществом злую шутку: они оказались еще и языкозависимыми.
S>-------------------------------------------

S>Угу. Похоже он вообще странный человек.

Видимо не только он. Есть и другие:
Вот в прошлом тысячелетии Норвиг сочинил
Да и мнение, что шаблоны имени вдовы председателя Мао ("банда четырёх") -- просто способ борьбы с недостатками языка, считает достаточно много народа.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.