Каковы лучшие ресурсы для шаблонов проектирования и их использования? - PullRequest
5 голосов
/ 18 сентября 2008

Когда дело доходит до использования шаблонов дизайна, я предполагаю, что есть три типа магазинов. Те, кто не будет знать шаблон, если он ударит их по лицу - они обычно предпочитают подход Ctrl-C / Ctrl-V к повторному использованию кода. Те, кто тратят часы в день на поиск своего унаследованного кода в надежде реализовать еще один замечательный шаблон - они обычно тратят больше времени на рефакторинг кода простых программ, чем когда-либо в течение сотен лет обслуживания. И, наконец, те, кто идет по среднему пути, используя шаблоны, когда они имеют смысл, и кодируя все, что на первом месте, для минимально представленного кода.

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

Спасибо.

Ответы [ 13 ]

6 голосов
/ 18 сентября 2008

Есть много разных «шаблонных» семей, но, отвечая на ваш вопрос в более широком смысле ...

Я бы порекомендовал:

  • Организационные структуры Джима Коплина
  • Группа Хиллсайд вики
  • Сайт Кевлина Хенни имеет множество отличных ссылок и статей

Не в сети (мои любимые):

Не в сети (популярно):

  • Шаблоны дизайна GoF
  • Рефакторинг Фаулера: улучшение дизайна существующего кода
4 голосов
/ 18 сентября 2008
2 голосов
/ 18 сентября 2008

Использование «шаблона» в высокой степени зависит от

  1. используемый язык
  2. целей, которые хочется достичь.

Шаблон проектирования может быть назван переоцененным в таких языках, как C ++, Java и тому подобное. Они скрывают, что негибкость вводит со всеми видами проблем печати. Вот ссылка на то, какой шаблон «выживает» в менее строгих языках: http://norvig.com/design-patterns/

Другим примером является аспектно-ориентированное программирование, в котором с большим усилием «вводятся» вещи на языке, не «предназначенном» для него.

Философия используемых инструментов также имеет большое влияние. Просто сравните, скажем, средние программы и решения на PHP или Visual Basic в Smalltalk, Common Lisp, Haskell и тому подобное.

Элементы синтаксиса также оказывают большое влияние. Вы увидите множество подобных циклов, скажем, на C, C ++ (итераторы), но если вы посмотрите на язык, который поддерживает функции более высокого порядка, вы просто найдете несколько циклов.

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

Я предлагаю прочитать упомянутую ссылку, а затем проверить реализации на «разных» языках ....

С уважением Friedrich

2 голосов
/ 18 сентября 2008

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

Мое первое и лучшее знакомство с шаблонами проектирования было Репозиторий шаблонов Портленда .

1 голос
/ 18 сентября 2008

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

В дополнение http://www.developer.com имеет несколько статей в месяц, которые касаются шаблонов проектирования и их приложений. Удачи!

1 голос
/ 18 сентября 2008

Я большой поклонник серии и прочитал многие из их книг, поэтому рекомендую Head First Design Patterns . Вы можете прочитать его онлайн на книжной полке Safari от O'Reilly, но на бумажном носителе также есть отличный плакат с рисунком.

1 голос
/ 18 сентября 2008

Все используют шаблоны все время. Они просто могут этого не знать. Даже такая простая вещь, как «перебрать список» - это шаблон.

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

Так, например, вы заметили, что то, что вы делаете, прекрасно подходит для Observer. Вы говорите своему коллеге: «Эй, это будет действительно легко сделать, если мы сделаем этот объект наблюдателем, а этот объект - его объектом».

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

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

Все это зависит от того, что ваш коллега не из тех, кто кивает и делает вид, что понимает что-то, когда они этого не делают. Вам нужно, чтобы они сказали: «Эй, ты упомянул Обозревателя, я не думаю, что знаю, что это такое».

1 голос
/ 18 сентября 2008

Мне кажется, лучший веб-ресурс, содержащий информацию о шаблонах и рефакторинге - http://sourcemaking.com

1 голос
/ 18 сентября 2008

Думаю, я бы рекомендовал Рефакторинг: улучшение дизайна существующего кода .

Refactoring: Improving the Design of Existing Code
(источник: 2020ok.com )

Множество примеров того, как реализовать разумное использование шаблонов.

0 голосов
/ 18 сентября 2008

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

Head First: шаблон дизайна

Тогда вы сможете проверить более продвинутые книги, как только получите большую картину (много практических примеров; -))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...