паттерны 2.0 (решение типовых задач программиста)

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

    Similar posts

    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 42

    • UFO just landed and posted this here
        +6
        Идея хороша, но, увы, не нова. А искать следует так: design patterns, architecture patterns.
          0
          Ага, я тоже, ища очередной пример красивой реализации какой простой вещи, периодически думаю подобный сервис сотворить. Но до текущего момента успокаивался, найдя очередной сайт сниппетов. Зачастую не столь удобный, как того хотелось бы.
          Возможно, так-таки займусь. Реализация тогда будет на python/django, ибо просто и удобно. Да hightlight.js Сагалаевский для раскраски кода. Ну а хороший хостинг для всего этого уже есть, и даже не один ;o)

          Единственная проблема — как таки обеспечить пополнение базы именно, что лучшими реализациями всего на свете.
            0
            можно объединить усилия - мне кажется можно еще и интеграцию с svn сделать
              0
              svn, trac они как бы сами собой разумеются для любого проекта.
              Но вот выше и ниже говорят, что всё это уже есть. Надо будет для начала изучить все предложенные ссылки.
            0
            Ваш благородный порыв понятен. Но есть каталоги шаблонов в Интернете. И пусть Гугл покарает меня, если я не прав :)
            Другое дело, что нет предела совершенству. И если вы сделаете проект, который бы собрал большое количество паттернов, то все бы вам сказали огромное спасибо!
            Мне кажется, что для реализации идеи потребуется wiki + продуманная структура
              +1
              хочется сделать именно каталог удачных архитектурных решений с кусочками кода
              стартовым содержимым может стать код открытых проектов и фрэймворков с грамотными комментариями
              • UFO just landed and posted this here
                  0
                  я имею ввиду кусочную реализацию - посколько разные языки предоставляют разные выразительные средства, что может сильно повлиять на реализацию и даже на концептуальную часть шаблона
                  • UFO just landed and posted this here
                      0
                      :) как closure в UML зарисовать?
                +1
                И получится еще один клон, какого-нибудь http://sourcemaking.com/
                  0
                  Он не какой нибудь, а лучший ;)
                  +1
                  Gang of Four и их Design Patterns - классика.
                  Это и Web 3.0 переживёт :)
                    0
                    долог путь к освоению паттернов - их надо почувствовать - и лучше всего на актуальном примере - в книгах большинство примеров искуственные или из отдаленных областей на нетом языке - идея как раз хорошо проилюстрировать паттерны на разных языках и в разных задачах - чтоб каждый нашел вход для себя
                    0
                    Не очень веб2.0но, но все же...
                    http://martinfowler.com/eaaCatalog/index…
                    Регулярно пользуюсь
                      +3
                      В википедии все паттерны с примерами на конкретных языках.
                        0
                        смотрел читал - не очень удовлетворительно особенно на руском - подобный ресурс как раз бы мог пополнить википедию (можно было бы даже определения с лучшими примерами хранить в википедии)
                        0
                        а ещё к этому разработку через тестирование... а то интересно и загадочно (пока что) одновременно
                          +2
                          Если говорить о паттернах проектирования web-проектов, то вот инструмент над которым я работал http://www.amazedev.com/holygrail/

                          Cистема прототипирования HolyGrail представляет собой организованный в программе Dreamweaver, процесс создания интерактивного HTML-прототипа c помощью заранее подготовленных сниппетов (паттернов проектирования). Кроме того, проектирующий менеджер не остаётся наедине с белым полем
                          открытого окна программы. Он получает типичный проект (связанные html
                          страницы с использованием шаблонов), usability guidlines (появиться немножко позже), поддержку от использующих эту же систему (коммьюнити в ЖЖ http://community.livejournal.com/ru_holy…).
                          Проектирующий менеджер оперирует паттернами проектирования, программист использует готовой "чистый" код который можно вставить сразу в проект.

                          Сейчас по адресу http://www.amazedev.com/files/holygrail_… для скачки доступна альфа версия.

                          Приглашаю принять активное участие всех желающих.
                          Презентация проекта IT-сообществу(в том числе и посредством Хабрахабра) будет в ближайшее время.
                            0
                            По-моему это уже есть в Википедии (ru, en). Дополните статьи своими знаниями и примерами.
                              0
                              На мой взгляд, конкретную реализацию паттернов на конкретном языке делать не стоит. В том и состоит гибкость паттернов, что их можно применить для той или иной задачи, то есть подход к решению в целом, без деталей. Зачастую и в языках программирования не находится нужных средств для точной реализации какого-либо паттерна, но это в принципе и не нужно.
                              Иначе получается примерно как просмотр фильма и затем чтение книги, по которой снят фильм. Все герои во время чтения будут представляться теми же актёрами, что и в фильме. Если же сначала читать, то и герои могут предстать совершенно другими.
                              Так что в книге Design Patterns самый корректный подход к реализации паттернов. Там не приводятся полные исходники для сложных паттернов, которые откомпилил, запустил и посмотрел. Хотя для Singleton вполне возможна конкретная реализация, но и к ней могут быть вопросы.
                              В итоге, сама идея такого сайта довольно неплохая, особенно если ориентироваться на новичков в работе с паттернами. То есть давать подробные описания паттернов, но не саму их "чистую" реализацию, иначе её будут тупо копировать. А вот рассматривать конкретные примеры программ, в которых используется несколько паттернов будет замечательно для начинающих осваивать сей предмет.
                              Удачи!
                                0
                                а никто не говорил про конкретную. А применение на типовых задачах было бы интересно.

                                Тут дело в другом. Это не несколько выходных.
                                Если у кого-то и правда есть больше свободного времени чем выходные + понимание того, что скорее всего придется делать все самому (сообщество не начнет просто так наполнять каталог), то вперед.
                                  0
                                  Наверно, nicola предлагает сделать что-то подобное http://phppatterns.com/
                                  Но как видно, даже для одного языка забросили...
                                    0
                                    Ничуть не правда, уважаемый!
                                    Рекомендую обратить внимание на http://agiledev.ru/ и http://limb-project.com/
                                      0
                                      первый это форум и вики (в которых кстати низкая активность). второе сайт фреймворка.
                                      а что не правда то?
                                  0
                                  Предлагаю ознакомиться с материалами, опубликованными на
                                  1. http://agiledev.ru/
                                  2. http://agilerussia.ru/
                                  3. http://www.agileukraine.org/
                                  4. http://jug.org.ua/wiki/pages/viewpage.action?pageId=542
                                  5. http://www.citforum.ru/SE/project/pattern/
                                  6. http://ooad.asf.ru/

                                  7. http://www.ooad.org/

                                  C удовольствием приму участие в онлайн-проекте, похожем на созданную в свое время "группу изучения паттернов" Джошуа Кириевски :)
                                    0
                                    Большое спасибо за подборку
                                    0
                                    Есил я не ошибаюсь все это уже двести лет как написано.

                                    Напр. Гради Буч. Объектно-ориентированный анализ и проектирование. с примерами приложений на С++. ВТОРОЕ ИЗДАНИЕ. Rational Санта-Клара, Калифорния. А также Мартин Фаулер, а также в Rational Rose встроен паттерно-делатель, но это для тех, кто понимает, что он делает.

                                    А вообще паттерны — это зло. Это из той же оперы, что для любой задачи золотой ключик можно подобрать и ничего не делать.

                                    Хотя.. :)
                                      0
                                      Обратную сторону медали под названием "Паттерны проектирования" рассмотрел Джошуа Кириевски в книге "Рефакторинг с использованием шаблонов" (русское изд. Вильямс, 2006)
                                        0
                                        > А вообще паттерны — это зло.

                                        Вы программист-неформал? :)
                                          0
                                          Эээ... Я даж задумался.
                                          0
                                          я бы не сказал что паттерны - зло, немного по другому - паттерны это не "серебряная пуля", как многие полагают
                                            0
                                            паттерны важны в первую очередь как обучающие программиста правильно мыслить и находить удачные решения
                                            0
                                            Я думаю автор говорит не о патернах программирования или архитектуры и т.д., а скорее о наборе стагдартных решений (starter kits).

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

                                              Ну и не стоит забывать, что притянутые за уши решения не есть тру=)
                                                0
                                                я имел ввиду накопить множество примеров удачного применения шаблонов в типовых задачах (с частичной иллюстрацией кодом)- поскольку как говорил Гамма паттерны начинаешь ценить почувствовав боль от плохого дизайна и потом облегчение при выборе верного решения
                                                  0
                                                  постараюсь в скором времени изложить предложение более детально - основная идея - это движение не от общего к частному, а от знакомого наболевшего частного к общему. И наверно это должен быть каталог задач и их удачных решений (с иллюстрациями кодом) и аналитическими комментариями - так сказать школа архитекторов :)
                                                    0
                                                    Отличная идея.
                                                    Русских проектов, аналогичных sourcemaking.com мне не удалось найти.
                                                    Статей на эту тему предостаточно, удобный справочник с примерами и разъяснениями - то что нужно для воспитания молодых программистов в России!
                                                    Респект и уважение, если поднимешь такой проект.
                                                      0
                                                      Проект имел бы преимущество перед всеми выше представленными, если в нем будут представлены шаблоны в общем виде (использовать тот же UML) с подробными описанием. Потом на основе объектов, участвующих в паттерне, давать пользователю задать собственные типы данных и язык, собственно. Получислось бы что-то вроде Lazy Patterns Using. Т.е. программист пришел на сайт, выбрал нужный паттерн, задал типы, и получил готовый код. Дальше вставляешь в собственный проект и доводишь работу кода до ума.
                                                        –1
                                                        мда
                                                        мда
                                                        мда
                                                        мда