LINUX.ORG.RU

Паттерны.

 


3

3

Народ, откуда столько НЕНАВИСТИ к паттернам в программировании?

Пробежался тут по последним темам.

For example, in the OO world you hear a good deal about «patterns». I wonder if these patterns are not sometimes evidence of case (c), the human compiler, at work. When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough — often that I'm generating by hand the expansions of some macro that I need to write. — P. Graham

'Patterns mean «I have run out of language.»' — Rich Hickey

Ну и там хор подпевал, как обычно, и всё в таком духе. Вообще, сколько себя помню, на ЛОРе термин «паттерны проектирования» всегда был синонимом какого-то вселенского зла.

Но ведь если разобраться, то «паттерны» так или иначе присутствуют просто ВЕЗДЕ. В градостроительстве, архитектуре, механике, инженерии, электронике, транспорте, аэрокосмосе, музыке, спорте, кулинарии, литературе, поэзии, живописи, медицине, физике, математике, геологии, географии, добыче ископаемых, сельском хозяйстве, военном деле, государственном управлении, экономике, финансах, социологии, в людских взаимоотношениях, наконец! Человечество повсеместно использует стандартные подходы/сценарии/решения, проверенные годами. И к ним мы относимся совершенно нормально. Почему мы, например, услышав секвенцию II-V-I в «Лунной сонате», не говорим Бетховену: «Чувак, you've run out of harmony!» Почему, увидев четырёхстопный ямб у Пушкина, не предъявляем: «Чувак, да у тебя же a sign of trouble в стихах!»

Почему только будучи применёнными к программированию паттерны вызывают столь лютую ненависть?


Ответ на: комментарий от iZEN

Однако, массы узнали про понятие паттерна, точно так же, как и про понятие «DSL» именно от Фаулера, а не от той же банды четырех.

anonymous
()
Ответ на: комментарий от iZEN

Это все паттерны проектирования, а не «конкретные термины». Конкретными они станут на конкретном чертеже, со всеми размерами, материалами и прочими деталями реализации. Корма - это как раз полноценный паттерн проектирования, а реализаций может быть бесконечное множество.

anonymous
()
Ответ на: комментарий от anonymous

Когда ты говоришь «интерпретатор», «recursive descent parser», «абстрактная фабрика» - всем понятно, о чем речь.

Всем понятно, что тут говорит архитектор.

И так и не ясно, что же ты предлагаешь использовать вместо этого.

Просто слова, обозначающие конкретные вещи, и то, что ты с ними делаешь в данных местах. Разве это так трудно?!

iZEN ★★★★★
()
Ответ на: комментарий от anonymous

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

Ну что же ты так быстро слился: с того, что паттерны - это «почти всё», до терминов (читай - имён), которыми наделили часто встречающиеся «в архитектуре софта сущности» (

yyk ★★★★★
()
Ответ на: комментарий от anonymous

Корма - это как раз полноценный паттерн проектирования, а реализаций может быть бесконечное множество.

Например, «жопа». Или нет? :)) Что-то меня совсем запутал. «Жопа» вроде как абстрактнее не менее абстрактной «кормы».

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 1)
Ответ на: комментарий от yyk

Ну это ты тут посмел вякать, что «parsing combinator» и «recursive descent parser» паттернами не являются. А Фаулер их назвал паттернами, явно. Вот и поспорь с ним, если не ссышь. Он, кстати, нормальный чувак, не зазнается, с ним вполне можно общаться - видел я его неоднократно на конференциях. Вот и попробуй изложить свою боль в жопе классику. Осилишь составить разумные аргументы - молодец. Не осилишь - трепло ты и тупица.

anonymous
()
Ответ на: комментарий от anonymous

Это все паттерны проектирования

Ты опять натягиваешь гандон на глобус. Но, похоже, это твоё любимое занятие...

yyk ★★★★★
()
Ответ на: комментарий от yyk

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

anonymous
()
Ответ на: комментарий от yyk

Ты себе придумал какое-то свое определение паттерна, очевидно. Публика жаждет его услышать. Посмеши почтенное собрание!

anonymous
()
Ответ на: комментарий от yyk

Ну так по делу-то ты обосрался ответить, вот и огрызаешься. Итак, сопля, отвечать быстро: если «recursive descent parser» не является паттерном, то что это тогда такое? Каково определение паттерна, и как ты пришел к выводу, что «recursive descent parser» под это определение не попадает. Сможешь изложить свой бред так, чтобы это понял Мартин Фаулер? Если не сможешь, то сучка ты тупая и безмозглый пустобрех. Так доходит до ничтожества, или все еще недостаточно конкретный уровень для твоего лоботомированого межушного ганглия?

anonymous
()
Ответ на: комментарий от anonymous

сущность, у которой нет или не может быть имени

Есть разновидность сортировки «сортировка пузырьком». Не представляю, зачем её называть «паттерн пузырьковая сортировка»? Равно как и не представляю, зачем её считать паттерном - что это даёт?

yyk ★★★★★
()
Ответ на: комментарий от iZEN

Ну я ж говорю - лобная доля повреждена, к абстрактному мышлению у пациента способности нет вообще.

Жопа может быть кормой только если находится сзади (против направления движения) плавучего средства, способного к дефекации.

anonymous
()
Ответ на: комментарий от yyk

Не представляю, зачем её называть «паттерн пузырьковая сортировка»?

Затем, что она является паттерном. Может быть много разных конкретных реализаций одного и того же паттерна «сортировка пузырьком». Так же, паттерн «сортировка пузырьком» - частный случай более общего паттерна «сортировка».

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

anonymous
()
Ответ на: комментарий от anonymous

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

Только после того, как ты дашь своё определение «паттерна проектирования», касающееся архитектуры ПО, которое «покроет» и «разные ветви эволюционного дерева», и кораблестроение.

И не надо скатываться на все шаблоны - они здесь совершенно ни при чём.

yyk ★★★★★
()
Ответ на: комментарий от iZEN

«Пузырьковая сортировка» — это алгоритм, а не паттерн, господин архитектор.

А любой алгоритм является паттерном. Сюрприз!

Да, тяжело говорить с интеллектуально неполноценными, которые вообще не способны к абстрактному мылшению...

anonymous
()
Ответ на: комментарий от yyk

Ты убог. Тебя поимели, а ты и не заметил. Следи за руками, лошара: употребляется два термина, один общий, а другой более частный. Общий термин: «паттерн». Частный термин: «паттерн проектирования».

anonymous
()
Ответ на: комментарий от yyk

Не представляю, зачем её называть «паттерн пузырьковая сортировка»?

Видимо, по аналогии с физическим процессом брожения: большие пузыри поднимаются наверх быстрее маленьких. ;) Ай да архитекторы, ай да сукины дети! Заметили аналогию! В каталог её!

iZEN ★★★★★
()
Последнее исправление: iZEN (всего исправлений: 2)
Ответ на: комментарий от anonymous

recursive descent parser - алгоритм (с именем). Зачем обзывать его шаблоном? :/ Вот не пойму, зачем мешать кучу разных понятий в одно - что это даёт? +100500 к ЧСВ?

И срёшься ты так-же плохо: после того, кого нельзя упоминать на ночь глядя, твой поток дерьма вызывает только недоумение - а стоило ли так стараться и столько писать?

yyk ★★★★★
()
Ответ на: комментарий от anonymous

А любой алгоритм является паттерном. Сюрприз!

всё, приплыли. Ок, любая сущность любой степени абстракции - шаблон. Т.е. лбой шаблон лбого шаблона в любом шаблоне - шаблон. Вот и поговорили.

yyk ★★★★★
()
Ответ на: комментарий от yyk

У него с идентификацией проблемы, не видишь что ли?

iZEN ★★★★★
()
Ответ на: комментарий от yyk

всё, приплыли. Ок, любая сущность любой степени абстракции - шаблон. Т.е. лбой шаблон лбого шаблона в любом шаблоне - шаблон. Вот и поговорили.

Давно пора запилить паттерно-ориентированное программирование (хотя, видимо, анонимус сейчас скажет, что это любое программирование вообще, но бренд-то нужен!). Исчисление паттернов, правда «пи-исчесление» уже занято для процессов, но можно выкрутиться.

Заодно и сокращение: ПОПА — Паттерно-Ориентированное Программирование и Анализ.

korvin_ ★★★★★
()
Последнее исправление: korvin_ (всего исправлений: 2)
Ответ на: комментарий от yyk

Любой влгорим - шаблон. Не любой шаблон - алгоритм. Но тебе, лоботомированому, таксономию не понять, увы.

anonymous
()
Ответ на: комментарий от anonymous

А при чем тут вообще ООП? Паттерны есть везде, в том числе и в ОО-дизайне.

И паттерны есть везде, и Иисус есть везде, ты только таблеточку прими.

anonymous
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

Никаких паттернов нет, есть только Иисус, который является к нам в разных формах. Деревья это Иисус, небо это Иисус, даже ЛОР - Иисус!

anonymous
()
Ответ на: комментарий от BYHYRT

А можно пример SomethingShitAbstractFabricFabricFabric в студию7

<@joosa> how do you say float in java? just 1.5f?
<@Gliptic> FloatFactoryFactory.getInstance(FloatFactoryFactory.defaultInstanceDescriptionString).getFactory(Locale.getLocale("en-US")).createBuilder().setString("1.5").getResult()
DELIRIUM ☆☆☆☆☆
()
Ответ на: комментарий от yyk

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

Прочитал этот поток фекалий и понтов, достойный малолетнего хама. Решил немного поинтересоваться, что это за такой пятизвездный малолетка у нас тут завелся. И тут ВНЕЗАПНО...

Чувак, тебе действительно 45 лет? не прикидываешься?

anonymous
()
Ответ на: =) от Deleted

Не парься, это же хипстеры.

Сначалая прочитал вот так.

Ну, так тоже можно :) Их объединяет одно: желание выделиться из толпы за счет внешних признаков, когда не получается выделиться за счет своих качеств и достижений.

Одни это решают покупкой броской одежды, модных очков и айфона, другие — лиспом.

anonymous
()
Ответ на: комментарий от fat_angel

Спокойно. Мем профорсен (а значит уныл) данным анонимусом.

Если тебе бомбануло, значит, уже не уныл ;)

// captcha: uzad pli (!!!)

anonymous
()
Ответ на: комментарий от DELIRIUM

Сам пошутил, сам посмеялся. Молодец.

anonymous
()
Ответ на: комментарий от korvin_

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

anonymous
()

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

Deleted
()
Ответ на: комментарий от mamba_namba_karamba

Ты так говоришь, как будто в искусстве и науке не бывает паттернов. В музее давно был? На концерт давно ходил?

anonymous
()
Ответ на: комментарий от anonymous

Когда в искусстве видишь паттерны оно становится скучным. По крайней мере у меня так. Видеть нужно оригинальность во всем - тогда мир вокруг станет ярче и интереснее. Я так считаю.

mamba_namba_karamba
()
Ответ на: комментарий от mamba_namba_karamba

Когда в искусстве видишь паттерны оно становится скучным. По крайней мере у меня так.

То есть тебе скучна музыка барокко, классицизм, романтизм, джаз, блюз, рок, эстрада, электроника? Или ты просто не слышишь там паттернов?

anonymous
()
Ответ на: комментарий от anonymous

Именно поэтому я стараюсь минимально классифицировать объекты культуры. Когда все разложено по полочкам объект становится рутинным. Иногда лучше чувствовать и наслаждаться.

mamba_namba_karamba
()
Ответ на: комментарий от anonymous

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

О да, ты раскрыл меня полностью.

korvin_ ★★★★★
()

For example, in the OO world you hear a good deal about «patterns». I wonder if these patterns are not sometimes evidence of case (c), the human compiler, at work. When I see patterns in my programs, I consider it a sign of trouble. The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough — often that I'm generating by hand the expansions of some macro that I need to write. — P. Graham

Почему только будучи применёнными к программированию паттерны вызывают столь лютую ненависть?

Грэм здесь явно выражает неодобрение не к шаблонам проектирования как таковым, а к недостаточно выразительным языкам, не способным описать нужную абстракцию. «the human compiler, at work» --- что может быть отстойнее и гаже?

ugoday ★★★★★
()

Не договорились ещё?

Похоже, тут так и не поняли, о чём говорили цитируемые. Ключевое слово «in my programs». Их не должно быть *в исходниках*, а не в методологии разработки, дизайна, или чего бы там ни было ещё. Почему - объясняли, исходники - редкое место, где работа по их генерации принципиально устранима. Какое должно быть отношение к венику у владельца пылесоса-робота?

DonkeyHot ★★★★★
()
Ответ на: комментарий от iZEN

И? Построение шюточек тоже ограничено конструкциями, которые позволяет языковая практика, общая для круга людей, а не для «конкретного разговора»: «*бнулся, *банулся есть, а *бнУлся извините нет» (с) - иначе хохму никто не поймет, а «шютника» сочтут просто идиотом, который не владеет языком и... юмор у него странный.

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от iZEN

Ну и да.

остроумие на фронте.

iZEN

Тебе-то откуда о нем знать? :)

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

Кроме того, в реальном мире, прежде чем ты чего-то начнешь быдлокодить, тебе придется свою идею обосновать и объяснить твоему архитектору или PM-у, а после того, как ты набыдлокодишь, ты будешь это же объяснять тому, кто будет твой быдлокод-review делать. И для разговора со всеми этими гражданами и гражданками тебе все равно придется выучить общую для всех терминологию. Даже если ты дислексик, и со словами не дружишь. Или выучишь, или вон из профессии. Все еще не дошло?

твой <s>говно</s>мир сужен до размеров галеры... вернее весла и <s>параши</s> курилки куда ты бегаешь :)

«мир» он намного шире Борщ чем ты думаешь, и в нём рулят DSL (в виде всяких матлабов, математик, автокадов, R, графвизов et cetera) :) а твой «педальный привод» нужен как простое прикрытие попила бабла заказчика и акционеров твоей галеры :)

anonymous
()
Ответ на: комментарий от yyk

Но что ещё тебе остаётся?

Ссылка на авторитеты же.

Это, кстати, тоже паттерн (поведенческий), широко применяемый в срачах недалекими анонимусами.

anonymous
()
Ответ на: комментарий от KennyMinigun

Человеку свойственно не любить то, что он не знает/не умеет.

Говно жрать, например. Да, тут я ниосилятор, не тебе чета.

anonymous
()
Ответ на: комментарий от anonymous

«мир» он намного шире Борщ чем ты думаешь, и в нём рулят DSL

Дээсэл-хуесэл, какая разница? Что бы ни рулило, а разговаривать об этом с коллегами в реальном мире ты все равно обязан. А как только появляется необходимость в коммуникации, появляются и термины, то есть, паттерны.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.