Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.220.137.164] |
|
Страницы: (4) 1 [2] 3 4 все ( Перейти к последнему сообщению ) |
Сообщ.
#16
,
|
|
|
Цитата Астарот @ При копании в чужом коде все равно не поможет. Какой-нибудь "наблюдатель" можно реализовать сто и одним способом, и когда поймешь, что смотришь именно на него, только в профиль, тогда будет уже поздно - из глаз будут течь кровавые слезы, а уши завернутся в трубочку от мата А тебе не кажется, что одна из причин этого - отсутствие знаний о паттернах у писавшего код и, как следствие, отсутствие в документации, комментариях и коде всем понятных названий и обозначений? |
Сообщ.
#17
,
|
|
|
Цитата D_KEY @ А тебе не кажется, что одна из причин этого - отсутствие знаний о паттернах у писавшего код и, как следствие, отсутствие в документации, комментариях и коде всем понятных названий и обозначений? Так может он и написал, просто не там, где ты копаешься Добавлено Вообще, если понимать "наблюдатель", как что-то вроде "издатель-подписчик", а этот паб-саб понимать еще шире, то получится, что в какой-то мере аспектно-ориентированный подход в целом реализует этот самый паттрен Добавлено Цитата D_KEY @ Паттерны есть вообще почти во всем Вопрос в том, описаны ли они так же хорошо, как для ООП. Для функциональщины вроде видел литературу, но сам не читал. Да ну? Вспоминай, что за зверь, потому что кроме "композиция функций", "рекурсия" и "карринг" фиг что встретишь, не говоря уже о полноценных паттернах |
Сообщ.
#18
,
|
|
|
Есть мнение, что, если твой язык не позволяет реализовать паттерн один раз в виде библиотечной функции/класса/whatever, то это дерьмовый язык. Что значит «полная поддержка ООП»? В каком языке есть «полная поддержка ООП»? Цитата JoeUser @ 2) Есть ли приемы/методики проектирования не менее удобные чем объектно-ориентированное? Есть. Тысячи их. Например: Прикреплённая картинка
Есть. Монады, например.Аппликативные функторы. CSP. Сотни их. |
Сообщ.
#19
,
|
|
|
Цитата korvin @ Есть мнение, что, если твой язык не позволяет реализовать паттерн один раз в виде библиотечной функции/класса/whatever, то это дерьмовый язык. Возможно оно и так, но деньги, как правило, платят за код на дерьмовых языках |
Сообщ.
#20
,
|
|
|
Цитата D_KEY @ Возможно оно и так, но деньги, как правило, платят за код на дерьмовых языках Ну, это уже другой вопрос, вне этого холивара =) Впрочем, в любом случае, паттерны — это не правила, а примеры, не нужно возводить их в абсолют, а то придёт Оби-Ван Кеноби =) |
Сообщ.
#21
,
|
|
|
Цитата Есть. Тысячи их. Это очень плохая и манипулятивная картинка. |
Сообщ.
#22
,
|
|
|
Ох уж эти мне монады. Забавно, что несмотря на то, что, в отличие от хаскеля, в эликсире нет встроеного каррирования и ленивости, некоторые господа все равно тащат в эликсир эти ваши монады в виде странных библиотек делающих странные вещи. Такое впечатление, что многие любители функциональных языков давно перестали страдать от этих
|
Сообщ.
#23
,
|
|
|
"Устоялся" это слишком громко сказано. Просто "фабрика" достаточно удобное название. А вот в случае с другими думать о том, является вот эта вот штука мостом или адаптером тупо лениво, так что для них находятся более удобные названия. Например, "враппер" - по-моему это самое универсальное слово, описывающее почти что угодно и которое все понимают |
Сообщ.
#24
,
|
|
|
Цитата OpenGL @ "Устоялся" это слишком громко сказано. Просто "фабрика" достаточно удобное название. Ну вот на мой взгляд в этом и заключается польза от любого паттерна. Удобное название для некоторого вида архитектурных решений, которые прошли проверку временем и в том или ином виде встречаются чуть ли не в любой программной системе. |
Сообщ.
#25
,
|
|
|
Цитата applegame @ Ох уж эти мне монады. Забавно, что несмотря на то, что, в отличие от хаскеля, в эликсире нет встроеного каррирования и ленивости, некоторые господа все равно тащат в эликсир эти ваши монады в виде странных библиотек делающих странные вещи. Такое впечатление, что многие любители функциональных языков давно перестали страдать от этих Учитывая что монады как бы совсем не из функциональщины - да |
Сообщ.
#26
,
|
|
|
Цитата D_KEY @ Ну вот на мой взгляд в этом и заключается польза от любого паттерна. Удобное название для некоторого вида архитектурных решений, которые прошли проверку временем и в том или ином виде встречаются чуть ли не в любой программной системе. Ну хз. По-моему эти названия нифига неудобные потому что они не говорящие абсолютно. Вот, допустим, ты забыл, что такое "мост" или "посетитель" - вспомнишь, для чего они, зная только их название? |
Сообщ.
#27
,
|
|
|
Цитата OpenGL @ Вот, допустим, ты забыл, что такое "мост" или "посетитель" - вспомнишь, для чего они, зная только их название? Раз забыл, значит редко используешь. Значит да, лучше обсудить детали. И значит в этом конкретном случае от паттерна толку не было. Но я таки видел большие монолитные системы, которые жили лет по 10 минимум и там паттернов применялось много(как правило по делу), а их знание упрощало жизнь во всех смыслах(как минимум - поддержка кода и обсуждения). Другое дело, что мне не нравятся монолитные системы и последние тенденции в разработке вроде как тоже от этого отходят. А там и кода меньше и сложности. Добавлено Цитата Астарот @ Учитывая что монады как бы совсем не из функциональщины - да Раскрой мысль, плиз Добавлено Цитата Астарот @ Цитата D_KEY @ Паттерны есть вообще почти во всем Вопрос в том, описаны ли они так же хорошо, как для ООП. Для функциональщины вроде видел литературу, но сам не читал. Да ну? Вспоминай, что за зверь, потому что кроме "композиция функций", "рекурсия" и "карринг" фиг что встретишь, не говоря уже о полноценных паттернах Сходу не нашел. В процессе наткнулся на статью на хабре Вот ещё что-то Последняя ссылка может быть интересна автору темы Но мне почему-то кажется, что была или книжка или прям серия статей на буржуйском. Но видимо глючит память |
Сообщ.
#28
,
|
|
|
Цитата D_KEY @ Раскрой мысль, плиз Монада - это такой хитросделанный пальцем зверек, который по сути про точки. То есть монада Try выглядит как-то так: Цитата Try.of(...) .success(....) .failure(....) А функциональщина она как раз про бесточечную нотацию, кажется. Почему монады постоянно относят к ФП для меня загадка Да и слышно про них только при слове "хаскель". Добавлено Цитата D_KEY @ Сходу не нашел. В процессе наткнулся на статью на хабре Ее видел, там вообще статья странная. Вон та картинка в ней тоже встречается. Народ в комментариях матерится Добавлено Кстати, тут спрашивали про монады в эрланге - http://erlang.org/pipermail/erlang-questio...rch/042557.html |
Сообщ.
#29
,
|
|
|
Есть такое паттерн "Цепочка обязанностей", а не монада ли это случаем?
|
Сообщ.
#30
,
|
|
|
Цитата Астарот @ Монады и точки - это взаимно перпендикулярные сущности.Монада - это такой хитросделанный пальцем зверек, который по сути про точки. То есть монада Try выглядит как-то так Цитата Астарот @ Потому что в императивщине монады используются достаточно редко и всегда можно обойтись и без них, а в Хаскеле, наоборот, без монад вообще невозможно жить.Почему монады постоянно относят к ФП для меня загадка Да и слышно про них только при слове "хаскель". В последнее время, монады активно применяются в C# и JS для асинхронного I/O, просто многие не знают, что это монады. Я говорю о Promise и async/await. Но это тоже костыли на самом деле. Цитата JoeUser @ Нет. Есть такое паттерн "Цепочка обязанностей", а не монада ли это случаем? |