Re[3]: Самый сложный для понимания паттерн
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 18.11.11 00:13
Оценка:
Здравствуйте, Ikemefula, Вы писали:

S>>>Может вопрос слегка глупый, просто я новичок Какой, вы считаете, самый сложный паттерн? Если бы вы самому сложному поставили 10 баллов по шкале сложности, то сколько бы вы поставили абстрактной фабрике?


ГВ>>ИМХО, прежде всего, такая оценка зависит от того, с каким количеством ситуаций, отражённых в паттернах, оценивающий сталкивался до того, как узнал о паттернах. Чем меньше ситуаций он прошёл самостоятельно, тем выше будут оценки сложности.


I>А что значит сложность ? То, что ты пишешь, больше похоже на трудности при освоении, а что такое сложность —


А ты топикстартера спроси. Я полагаю, что в уго устах "сложный" как раз и означает "трудный" (часто встречающаяся замена). Сама по себе сложность вполне объективна: пересчитываем сущности, пересчитываем связи — и всё.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[11]: Самый сложный для понимания паттерн
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 18.11.11 00:31
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:

I>В программухе с паттернами ровно так же, как и в любой другой области — паттерны со временем устаканиваются и превращаются в конкретные понятия при чем паттернами от этого не перестают быть.


Ты это... Не путай последовательность и меня так не пугай. Сначала обычно предпринимают некие действия по решению вполне конкретной задачи, нередко даже хаотичные (поиск). Потом так или иначе находят удачную последовательность, которую могут зафиксировать в некотором виде. И уже потом этот эту последовательность можно разбить на части, выделить некоторые части в виде шаблонов (паттерны)... Иначе у паттерны просто негде выделять. Если нет конкретных решений, нет и шаблонных решений.

Другими словами: шаблон — это обобщение совокупности конкретных решений, но не наоборот. Не путать с программированием в терминах обобщённых типов.

I>Вопрос исключительно в том, что же дают паттерны и почему они появляются сами собой практически в любой области. А когда выяснится, что этого не избежать, нужно просто направить процесс в мирное русло.


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

I>Например в шахматах никто не орёт что не надо применять паттерны. Есть например принятый гамбит, отказанный гамбит, контргамбит и более конкретные вроде сицилианская защита, королевский гамбит, дебют ххх и тд и тд. Другой вопрос, что принятие решений основывается не на самих паттернах, а более базовых вещах, в шахматах это фигуры, комбинации и позиция.


В шахматах с "применёнными паттернами" не приходится потом жить пользователям и разработчикам. Так что, аналогия плохая.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re: Самый сложный для понимания паттерн
От: Mishka Норвегия  
Дата: 18.11.11 11:06
Оценка:
Здравствуйте, Sorc17, Вы писали:

S>Может вопрос слегка глупый, просто я новичок Какой, вы считаете, самый сложный паттерн? Если бы вы самому сложному поставили 10 баллов по шкале сложности, то сколько бы вы поставили абстрактной фабрике?


Самый сложный для начинающих — inversion of control. Это как в бридже двойной сквиз, вроде как понятно и очень красиво, но вот когда ситуация как раз для него, народ теряется.

P.S. Визитор фигня, обычный дабл диспач, надо только увидеть его в реальном проекте один разок и всё станет ясно.
Re[12]: Самый сложный для понимания паттерн
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.11.11 11:14
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Ты это... Не путай последовательность и меня так не пугай. Сначала обычно предпринимают некие действия по решению вполне конкретной задачи, нередко даже хаотичные (поиск). Потом так или иначе находят удачную последовательность, которую могут зафиксировать в некотором виде. И уже потом этот эту последовательность можно разбить на части, выделить некоторые части в виде шаблонов (паттерны)... Иначе у паттерны просто негде выделять. Если нет конкретных решений, нет и шаблонных решений.


Я говорю о том, что паттерны это вобщем то форма близкая к той, в какой мозг хранит инфу и какой он оперирует. И нужно разделять сами паттерны и принятие решений.

Одна из проблем с самими паттернами в том, что люди акцентируют внимание на вариантах паттерна и реализациях этих вариантов. Это как бы нужно, но гораздо важнее исходная проблема, которая разрешается паттерном. Вот на ней и нужно акцентировать внимание. Это делают Физерс и Кент Бек, а вот ГоФ заходят с конца и смещает акцент на картинки и код. Собственно неудивтельно, что Кент Бек подкалывает их в своей книге.

Т.е. нужны паттерны для проблем, паттерны для решений и сами типовые решения, что в свою очередь тоже паттерн. ГоФ описывает только вторую часть и этого очевидно мало.

I>>Вопрос исключительно в том, что же дают паттерны и почему они появляются сами собой практически в любой области. А когда выяснится, что этого не избежать, нужно просто направить процесс в мирное русло.


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


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

Поскольку задачи могут быть только похожими, принятие решения должно основываться на имеющемся коде и требованиях и тд. Грубо говоря, сначала нужно идентифицировать проблему, вычислить само решение, а уже потом подобрать качественную реализацию. Проблема, после того, как ты её задетектил, будет описываться абстрактно и часто это будет паттерн, например "один читатель, много писателей". Решение тоже как правило описывается абстракциями, по другому мозг просто не умеет работать. Многие из эти абстракций будут паттернами. Конкретная реализация будет зависить от выбора.

Идея в том, что наработаные решения как правило реализуются быстрее и качественнее, нежели просто уникальный кастомный код. Соответсвенно нужно как можно точнее идентифицировать проблему и как можно точнее подбирать решение этой проблемы, после чего подобрать реализацию. Если выбрали паттерн, то всегда будет N-типовых реализаций этого паттерна и никто не обязан следовать буквально учеебнику вроде ГоФ. Это еще одна проблема — многие понимают паттерны слишком буквально и даже если задетектили проблему правильно, нашли решение, то часто выбирают ту реализацию, котоая приведена в букваре.Это снова проблема не паттерная, а принятия решения о конкретной реализации.

I>>Например в шахматах никто не орёт что не надо применять паттерны. Есть например принятый гамбит, отказанный гамбит, контргамбит и более конкретные вроде сицилианская защита, королевский гамбит, дебют ххх и тд и тд. Другой вопрос, что принятие решений основывается не на самих паттернах, а более базовых вещах, в шахматах это фигуры, комбинации и позиция.


ГВ>В шахматах с "применёнными паттернами" не приходится потом жить пользователям и разработчикам. Так что, аналогия плохая.


В шахматах у тебя нет воможности поправить своё решение, ты будешь просто давиться этим до конца партии. а в софте — есть и мне сильно кажется это сильно упрощает дело. Например ты можешь попробовать кучку вариантов или тупо рефакторить код от случая к случаю. При этом сущесвтующая разница в этом вопросе не даёт оснований принимать решения опираясь тоьлко на паттерны, книги или чьи то формулы ("паттерны не нужны").
Re[2]: Самый сложный для понимания паттерн
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.11.11 19:38
Оценка:
Здравствуйте, Mishka, Вы писали:

M>P.S. Визитор фигня, обычный дабл диспач


Ну вот ты и продемонстрировал, что паттерн посетитель не понял.
... << RSDN@Home 1.2.0 alpha 5 rev. 1537 on Windows 7 6.1.7601.65536>>
AVK Blog
Re: Самый сложный для понимания паттерн
От: alexeiz  
Дата: 20.11.11 21:23
Оценка:
Здравствуйте, Sorc17, Вы писали:

S>Может вопрос слегка глупый, просто я новичок Какой, вы считаете, самый сложный паттерн? Если бы вы самому сложному поставили 10 баллов по шкале сложности, то сколько бы вы поставили абстрактной фабрике?


Знатокам паттернов: насколько быстро вы определите паттерн в вопросе по ссылке?

https://groups.google.com/d/topic/comp.lang.c++/CdjoOi0e_Ig/discussion
Re[2]: Самый сложный для понимания паттерн
От: о_О
Дата: 20.11.11 21:54
Оценка: +1
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, Sorc17, Вы писали:


S>>Может вопрос слегка глупый, просто я новичок Какой, вы считаете, самый сложный паттерн? Если бы вы самому сложному поставили 10 баллов по шкале сложности, то сколько бы вы поставили абстрактной фабрике?


A>Знатокам паттернов: насколько быстро вы определите паттерн в вопросе по ссылке?


A>https://groups.google.com/d/topic/comp.lang.c++/CdjoOi0e_Ig/discussion


Эталонный пример говнокода
Re[3]: Самый сложный для понимания паттерн
От: alexeiz  
Дата: 21.11.11 01:28
Оценка:
Здравствуйте, о_О, Вы писали:

A>>Знатокам паттернов: насколько быстро вы определите паттерн в вопросе по ссылке?


A>>https://groups.google.com/d/topic/comp.lang.c++/CdjoOi0e_Ig/discussion


о_О>Эталонный пример говнокода


Те, паттерны здесь никак нельзя применить?
Re[4]: Самый сложный для понимания паттерн
От: о_О
Дата: 21.11.11 08:20
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, о_О, Вы писали:


A>>>Знатокам паттернов: насколько быстро вы определите паттерн в вопросе по ссылке?


A>>>https://groups.google.com/d/topic/comp.lang.c++/CdjoOi0e_Ig/discussion


о_О>>Эталонный пример говнокода


A>Те, паттерны здесь никак нельзя применить?


можно. proxy
Re[5]: Самый сложный для понимания паттерн
От: alexeiz  
Дата: 21.11.11 15:29
Оценка:
Здравствуйте, о_О, Вы писали:

о_О>Здравствуйте, alexeiz, Вы писали:


A>>Здравствуйте, о_О, Вы писали:


A>>>>Знатокам паттернов: насколько быстро вы определите паттерн в вопросе по ссылке?


A>>>>https://groups.google.com/d/topic/comp.lang.c++/CdjoOi0e_Ig/discussion


о_О>>>Эталонный пример говнокода


A>>Те, паттерны здесь никак нельзя применить?


о_О>можно. proxy


Какие еще будут варианты?
Re[6]: Самый сложный для понимания паттерн
От: о_О
Дата: 22.11.11 04:05
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Здравствуйте, о_О, Вы писали:


о_О>>Здравствуйте, alexeiz, Вы писали:


A>>>Здравствуйте, о_О, Вы писали:


A>>>>>Знатокам паттернов: насколько быстро вы определите паттерн в вопросе по ссылке?


A>>>>>https://groups.google.com/d/topic/comp.lang.c++/CdjoOi0e_Ig/discussion


о_О>>>>Эталонный пример говнокода


A>>>Те, паттерны здесь никак нельзя применить?


о_О>>можно. proxy


A>Какие еще будут варианты?


не знаток. в книгу за названиями лезть лень
Re[3]: Самый сложный для понимания паттерн
От: Mishka Норвегия  
Дата: 22.11.11 15:22
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Mishka, Вы писали:


M>>P.S. Визитор фигня, обычный дабл диспач


AVK>Ну вот ты и продемонстрировал, что паттерн посетитель не понял.


Не смеши.
Re[4]: Самый сложный для понимания паттерн
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.11.11 15:44
Оценка:
Здравствуйте, Mishka, Вы писали:

M>>>P.S. Визитор фигня, обычный дабл диспач


AVK>>Ну вот ты и продемонстрировал, что паттерн посетитель не понял.


M>Не смеши.


Да куда уж тут смешить, тут грустить надо
AVK Blog
Re[5]: Самый сложный для понимания паттерн
От: Mishka Норвегия  
Дата: 23.11.11 10:32
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, Mishka, Вы писали:


M>>>>P.S. Визитор фигня, обычный дабл диспач


AVK>>>Ну вот ты и продемонстрировал, что паттерн посетитель не понял.


M>>Не смеши.


AVK>Да куда уж тут смешить, тут грустить надо


Я тебе даже больше скажу: принципы, заложенные в основе ОО — полное надувательство и причина всех проблем в современном IT. И визитор — это сравни удалению гланд через задний проход. Корявая идея ОО = корявый паттерн чтоб его поправить. То же ведь придумали данные с методами в одном классе держать...
Re[6]: Самый сложный для понимания паттерн
От: Enomay  
Дата: 23.11.11 14:25
Оценка:
M> То же ведь придумали данные с методами в одном классе держать...

не данные, но состояние
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.