На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:
1. Название темы - краткое описание кто/что против кого/чего
2. В первом сообщении - список параметров, по которым идет сравнение.
3. Старайтесь аргументировать свои высказывания. Фразы типа "Венда/Слюникс - ацтой" считаются флудом.
4. Давайте жить дружно и не доводить обсуждение до маразма и личных оскорблений.
Модераторы: Модераторы, Комодераторы
Страницы: (4) 1 [2] 3 4  все  ( Перейти к последнему сообщению )  
> ООП vs %name% , размышления о проектировании
    Цитата Астарот @
    Цитата D_KEY @
    Насколько часто копаешься в чужом коде?

    При копании в чужом коде все равно не поможет. Какой-нибудь "наблюдатель" можно реализовать сто и одним способом, и когда поймешь, что смотришь именно на него, только в профиль, тогда будет уже поздно - из глаз будут течь кровавые слезы, а уши завернутся в трубочку от мата :D

    А тебе не кажется, что одна из причин этого - отсутствие знаний о паттернах у писавшего код и, как следствие, отсутствие в документации, комментариях и коде всем понятных названий и обозначений? :)
    Сообщение отредактировано: D_KEY -
      Цитата D_KEY @
      А тебе не кажется, что одна из причин этого - отсутствие знаний о паттернах у писавшего код и, как следствие, отсутствие в документации, комментариях и коде всем понятных названий и обозначений? :)

      Так может он и написал, просто не там, где ты копаешься :-?

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

      Добавлено
      Цитата D_KEY @
      Паттерны есть вообще почти во всем :) Вопрос в том, описаны ли они так же хорошо, как для ООП. Для функциональщины вроде видел литературу, но сам не читал.

      Да ну? Вспоминай, что за зверь, потому что кроме "композиция функций", "рекурсия" и "карринг" фиг что встретишь, не говоря уже о полноценных паттернах :)
        Цитата D_KEY @
        Паттерны есть вообще почти во всем

        Есть мнение, что, если твой язык не позволяет реализовать паттерн один раз в виде библиотечной функции/класса/whatever, то это дерьмовый язык.

        Цитата JoeUser @
        1) А как быть если полной поддержки ООП в ЯП нет?

        Что значит «полная поддержка ООП»? В каком языке есть «полная поддержка ООП»?

        Цитата JoeUser @
        2) Есть ли приемы/методики проектирования не менее удобные чем объектно-ориентированное?

        Есть. Тысячи их. Например:

        Прикреплённая картинка
        Прикреплённая картинка


        Цитата JoeUser @
        3) А есть ли для них свои "паттерны проектирования", которые есть для ООП?

        Есть. Монады, например.Аппликативные функторы. CSP. Сотни их.
          Цитата korvin @
          Цитата D_KEY @
          Паттерны есть вообще почти во всем

          Есть мнение, что, если твой язык не позволяет реализовать паттерн один раз в виде библиотечной функции/класса/whatever, то это дерьмовый язык.

          Возможно оно и так, но деньги, как правило, платят за код на дерьмовых языках :D
            Цитата D_KEY @
            Возможно оно и так, но деньги, как правило, платят за код на дерьмовых языках

            Ну, это уже другой вопрос, вне этого холивара =) Впрочем, в любом случае, паттерны — это не правила, а примеры, не нужно возводить их в абсолют, а то придёт Оби-Ван Кеноби =)
              Цитата

              Есть. Тысячи их.

              Это очень плохая и манипулятивная картинка.
                Ох уж эти мне монады. Забавно, что несмотря на то, что, в отличие от хаскеля, в эликсире нет встроеного каррирования и ленивости, некоторые господа все равно тащат в эликсир эти ваши монады в виде странных библиотек делающих странные вещи. Такое впечатление, что многие любители функциональных языков давно перестали страдать от этих костылей монад и начали ими наслаждаться :)
                Сообщение отредактировано: applegame -
                  Цитата D_KEY @
                  В твоём случае устоялся один паттерн.

                  "Устоялся" это слишком громко сказано. Просто "фабрика" достаточно удобное название. А вот в случае с другими думать о том, является вот эта вот штука мостом или адаптером тупо лениво, так что для них находятся более удобные названия. Например, "враппер" - по-моему это самое универсальное слово, описывающее почти что угодно и которое все понимают :D
                    Цитата OpenGL @
                    "Устоялся" это слишком громко сказано. Просто "фабрика" достаточно удобное название.

                    Ну вот на мой взгляд в этом и заключается польза от любого паттерна. Удобное название для некоторого вида архитектурных решений, которые прошли проверку временем и в том или ином виде встречаются чуть ли не в любой программной системе.
                      Цитата applegame @
                      Ох уж эти мне монады. Забавно, что несмотря на то, что, в отличие от хаскеля, в эликсире нет встроеного каррирования и ленивости, некоторые господа все равно тащат в эликсир эти ваши монады в виде странных библиотек делающих странные вещи. Такое впечатление, что многие любители функциональных языков давно перестали страдать от этих костылей монад начали ими наслаждаться :)

                      Учитывая что монады как бы совсем не из функциональщины - да :D
                        Цитата D_KEY @
                        Ну вот на мой взгляд в этом и заключается польза от любого паттерна. Удобное название для некоторого вида архитектурных решений, которые прошли проверку временем и в том или ином виде встречаются чуть ли не в любой программной системе.

                        Ну хз. По-моему эти названия нифига неудобные потому что они не говорящие абсолютно. Вот, допустим, ты забыл, что такое "мост" или "посетитель" - вспомнишь, для чего они, зная только их название?
                          Цитата OpenGL @
                          Вот, допустим, ты забыл, что такое "мост" или "посетитель" - вспомнишь, для чего они, зная только их название?

                          Раз забыл, значит редко используешь. Значит да, лучше обсудить детали. И значит в этом конкретном случае от паттерна толку не было.
                          Но я таки видел большие монолитные системы, которые жили лет по 10 минимум и там паттернов применялось много(как правило по делу), а их знание упрощало жизнь во всех смыслах(как минимум - поддержка кода и обсуждения).

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

                          Добавлено
                          Цитата Астарот @
                          Учитывая что монады как бы совсем не из функциональщины - да :D

                          Раскрой мысль, плиз :)

                          Добавлено
                          Цитата Астарот @
                          Цитата D_KEY @
                          Паттерны есть вообще почти во всем :) Вопрос в том, описаны ли они так же хорошо, как для ООП. Для функциональщины вроде видел литературу, но сам не читал.

                          Да ну? Вспоминай, что за зверь, потому что кроме "композиция функций", "рекурсия" и "карринг" фиг что встретишь, не говоря уже о полноценных паттернах :)

                          Сходу не нашел. В процессе наткнулся на статью на хабре
                          Вот ещё что-то

                          Последняя ссылка может быть интересна автору темы :)

                          Но мне почему-то кажется, что была или книжка или прям серия статей на буржуйском. Но видимо глючит память :(
                            Цитата D_KEY @
                            Раскрой мысль, плиз :)

                            Монада - это такой хитросделанный пальцем зверек, который по сути про точки. То есть монада Try выглядит как-то так:
                            Цитата
                            Try.of(...)
                            .success(....)
                            .failure(....)

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

                            Добавлено
                            Цитата D_KEY @
                            Сходу не нашел. В процессе наткнулся на статью на хабре

                            Ее видел, там вообще статья странная. Вон та картинка в ней тоже встречается. Народ в комментариях матерится :D

                            Добавлено
                            Кстати, тут спрашивали про монады в эрланге - http://erlang.org/pipermail/erlang-questio...rch/042557.html
                              Есть такое паттерн "Цепочка обязанностей", а не монада ли это случаем? :blink:
                                Цитата Астарот @
                                Монада - это такой хитросделанный пальцем зверек, который по сути про точки. То есть монада Try выглядит как-то так
                                Монады и точки - это взаимно перпендикулярные сущности.
                                Цитата Астарот @
                                Почему монады постоянно относят к ФП для меня загадка Да и слышно про них только при слове "хаскель".
                                Потому что в императивщине монады используются достаточно редко и всегда можно обойтись и без них, а в Хаскеле, наоборот, без монад вообще невозможно жить.
                                В последнее время, монады активно применяются в C# и JS для асинхронного I/O, просто многие не знают, что это монады. Я говорю о Promise и async/await. Но это тоже костыли на самом деле.
                                Цитата JoeUser @
                                Есть такое паттерн "Цепочка обязанностей", а не монада ли это случаем?
                                Нет.
                                Сообщение отредактировано: applegame -
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (4) 1 [2] 3 4  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0647 ]   [ 18 queries used ]   [ Generated: 16.04.24, 14:29 GMT ]