Design Patterns

Тренинг сайт события http://scrumtrek.ru/trainings/view/49/

Добавить в календарь:
Поделиться:

Зачем нужен курс бизнесу

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

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

Зачем нужен курс специалисту

C позиции разработчика непонимание типовых приемов проектирования – паттернов, шаблонов – обязательно выльется в очень серьезные проблемы. Вы, как разработчик, будете вынуждены тратить гораздо больше сил и внимания на решение повторяющихся задач. Вы будете допускать известные ошибки, которые описаны в шаблонах и которые можно было бы легко предусмотреть. И вообще, мышление на низком уровне абстракции замедляет Вашу работу и снижает мотивацию. Не говоря уже о проблемах с общением в команде – обсуждения долгие, мучительные и бесцельные.

Работая на уровне крупных блоков – паттернов – Вы сможете гораздо проще и быстрее создавать дизайн и четко и внятно аргументировать все принятые решения по дизайну. Избавиться от типовых ошибок и повысить поддерживаемость дизайна в будущем. Активно пользоваться кодогенераторами и значительно упростить общение с коллегами.

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

Для кого

  • Младшие разработчики, желающие перейти на следующую ступень мастерства: понимать готовые решения основных задач дизайна и на равных участвовать в его обсуждении
  • Старшие разработчики, желающие проработать мелкие детали известных им шаблонов и научиться с их помощью максимально просто решать бизнес-задачи их производства
  • Тимлиды и руководители проектов, желающие повысить качество дизайна и слаженность команды в коммуникациях

Цели

Для повышения своей производительности и эффективности взаимодействия разработчики:

  • поймут два каталога типовых решений – GRASP и GoF и смогут на практике использовать их в своей разработке
  • осознают общую картину шаблонов и смогут общаться в своей команде более крупными блоками абстракции
  • поймут взаимосвязи между паттернами и смогут на практике обоснованно выбирать между ними для снижения трудоемкости своей разработки
  • осознают влияние шаблонов на метрики дизайна и смогут на практике обеспечивать необходимый уровень качества дизайна

Для повышения производительности своей команды и снижения рисков производства тимлиды и PM:

  • поймут два каталога типовых решений – GRASP и GoF и смогут унифицировать дизайн в своих проектах
  • осознают общую картину шаблонов и смогут упростить общение разработчиков в своих командах
  • осознают влияние шаблонов на метрики дизайна и смогут внедрить в своих командах соглашения по дизайну, направленные на необходимые характеристики качества

Опыт на старте

  • желателен опыт промышленной разработки от 1 года
  • обязательны знания и навыки в объеме курса «Дизайн и проектирование в Agile»

В чем отличие от других тренингов по шаблонам проектирования

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

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

1. Обзор тренинга
2. Знакомство и сбор проблем
3. Разбивка по парам и формулировка кейсов
4. История шаблонов
4.1. Потерянное звено: меппинг шаблонов на требования
5. Описание шаблона на примере Simple Factory
6. Обзор каталога GRASP
7. Практика: отображение шаблонов GRASP на атрибуты качества дизайна
8. Обзор каталога GoF
9. Creational Patterns
10. Dependency Injection
11. Lazy Initialization
12. Multiton
13. Object Pool
14. Object Cache
15. Практика: проектирование решения
16. Практика: реализация решения
17. Structural Patterns
18. Взаимосвязь шаблонов Flyweight – Cache – Pool
19. Практика: проектирование решения
20. Практика: реализация решения
21. Behavioral Patterns, часть 1
22. Практика: проектирование решения
23. Практика: реализация решения
24. Behavioral Patterns, часть 2
25. Null Object
26. Практика: проектирование решения
27. Практика: реализация решения
28. Обзор каталогов GRASP и GoF
29. Практика: проектирование части периодической системы шаблонов
30. Next Big Thing: functional programming
31. Завершение и разбор вопросов

Александр Мартюшев

Системный архитектор в компании АСКОН, сертифицированный Scrum-мастер.

Начал карьеру разработчика в 1998 году.

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

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

Лучшим способом обучения и передачи опыта считает парное программирование и регулярно применят его в повседневной работе.

Комментарии (0):

Оставлять комментарии могут только зарегистрированные пользователи

Для получения embed кода необходимо кликнуть правой
кнопкой мыши на видео и выбрать пункт меню
'Сгенерировать HTML код'

Забыли пароль? Регистрация