Подтвердить что ты не робот

Какие-либо предложения по крушению курса по шаблонам проектирования?

Я собираюсь дать разработчикам моей компании крутой курс по шаблонам проектирования (недавно встретив какой-то страшный код).

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

Говоря им, что это может означать, что меньше ошибок, вероятно, не ударит по дому. Мне нужны вещи, которые собираются утонуть.

Я, вероятно, проведу три-четыре сеанса по одному часу. Есть ли у вас какие-либо предложения по поводу того, что нужно коснуться/сделать?

4b9b3361

Ответ 1

Хорошие открывающие слайды для любого курса обучения, на мой взгляд, следующие:
1) Почему мы здесь? (Где нужна идентификация этого курса?)
2) Что я ожидаю узнать? 3) Кто должен пройти этот курс? (Каковы предполагаемые ученики, предпосылки и т.д.?)
4) Когда я могу применить то, что узнал Ive?
5) Ожидания вас (участие, домашнее задание, тесты, минимальные классы для участия и т.д.)

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

Я бы выполнил структуру, похожую на Элементы многоразового объектно-ориентированного программного обеспечения book:

1) Обзор диаграммы UML - Class

2) ООП - абстракция, инкапсуляция, полиморфизм, наследование
3) Сцепление и сцепление
4) Что такое шаблон дизайна? - Название шаблона, Проблема, Решение, Последствия
5) Почему шаблоны проектирования так трудно изучить? 6) Зачем использовать шаблоны дизайна?
7) Как выбрать шаблон дизайна
8) Как использовать шаблон проектирования
9) Покройте различные шаблоны дизайна GoF с примерами. Покажите примеры кода перед применением шаблона проектирования и как он выглядит, как Винс Хьюстон в своих примерах.
10) Заключение

Как уже упоминалось, шаблоны проектирования - это действительно идеи, поэтому при обучении вы должны передать идею. Если они поймут проблему, решение и последствия шаблона проектирования, то они будут намного лучше, чем пытаться заставить шаблоны в коде (и это станет кошмаром). Признание того, где и какие шаблоны (если таковые имеются) могут быть применены, является реальной целью. Примеры Huston действительно хороши для того, чтобы выдать пример кода классу и посмотреть, могут ли они идентифицировать шаблон для его улучшения. Надеюсь, это поможет.

Ответ 2

Head First Design Patterns - отличное место для начала. Он охватывает основные шаблоны проектирования.

Рефакторинг для шаблонов также может представлять интерес.

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

Ответ 3

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

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

Я лично нашел шаблон шаблона шаблона, который действительно хорошо подходит для разработки на основе OO. Он настолько близок к тому, как должно произойти ООП, что также может улучшить стиль кодирования.

Ответ 4

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

Выберите шаблоны, которые являются a) легкими и b) наиболее вероятными для использования в вашем коде. Синглтоны легко усваиваются (поскольку они не включают предметы/объекты). Еще один интересный - шаблон наблюдателя.

Ответ 5

Вы находитесь в уникальной позиции для преподавателя: вы знаете разработчиков и знаете код, с которым они работают.

Возможным подходом было бы рассмотреть некоторые из страшного кода и пойти по строкам "Как мы можем улучшить это? Как это бывает, есть шаблон проектирования, называемый Observer...."

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

Ответ 6

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

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

Другая проблема с шаблонами и проблема, которую вы будете иметь, - это они не существуют. По крайней мере, они существуют еще меньше, чем "программное обеспечение". Шаблоны - это идеи и концепции. Они не являются исполняемыми. Управляемый код может реализовать шаблон, но обратного не существует. Вы не можете просто ввести "singleton" в свой код, и вдруг существует одноэлемент. Нет языка, где добавление атрибута "посетитель" неожиданно делает весь клей для реализации шаблона посетителя. Существуют лучшие практики и примеры шаблонов на разных языках, но они не то, что вы можете вставить в библиотеку и просто позвонить.

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

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

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

Ответ 7

Посмотрите на этот сайт: http://www.dofactory.com/Patterns/Patterns.aspx Он фокусируется на многих типах структурных, структурных и поведенческих моделей и дает примеры со структурным, реальным и оптимизированным кодом .net. Надеюсь, что это поможет

Ответ 8

Вот учебник от Nettuts +: Руководство для начинающих по шаблонам проектирования

Очень легко понять. Идеально подходит для начинающих шаблонов дизайна.

В этом руководстве четко объясняется:

  • почему шаблоны проектирования важны
  • когда и почему они должны использоваться
  • предоставляет примеры в PHP для каждого шаблона

В учебнике объясняются следующие шаблоны проектирования:

  • Шаблон стратегии
  • Шаблон адаптера
  • Factory Шаблон метода
  • Рисунок декоратора
  • Шаблон Singleton