Тренинг
Проектирование сложных веб-приложений

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

Имея на руках простую и прозрачную архитектуру, вы сталкиваетесь с её деградацией в течении времени развития проекта как при “тяжелых” подходах с предварительным проектированием, так и при “легких” подходах с их методом проб и ошибок в реализации идей продукта. Это требует внедрение определенных инженерных индивидуальных и командных практик, которые часто не имеют концентрированного экономического эффекта, а являются работой на перспективу – их становится тяжело “продавать”. При этом, все ваши усилия постоянно атакуются человеческим фактором – текучка в команде, поиск компромиссов с заказчиком, субъективное мнение о “правильном дизайне и коде” и т.д. А архитектор (команда архитекторов) вместо “стратега-развиватора” становится “пожарником-нагибатором” и попадает на другую сторону баррикад.

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

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

Если вам незнакома такая ситуация – тренинг вам будет неинтересен.

Тренинг состоит из теоретической (первый день) и практической (второй день и домашнее задание) частей.

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

  • достоинствах и недостатках современных практик архитектуры и дизайна, применяемых в веб-разработке;
  • анализу и обоснованию выбора шаблонов архитектуры и синтеза шаблонов;
  • документированию архитектуры и сопровождению документации;
  • предварительно спроектированой и итеративной (agile) архитектуре;
  • о роли архитектора и круге его ответственности в различных реализациях процессов разработки;
  • практиках удешевления проектирования и сопровождения архитектуры;
  • принципах и практиках командного архитектурирования;
  • эрозии архитектуры и практиках борьбы с ней;
  • построении процессов проектирования, разработки и поддержки в команде;
  • эрозии процессов разработки и практиках борьбы с ней;
  • а также о системе ценностей, практиках работы над ошибками, FDD, DDD, Agile, историях успеха и неудач и многом другом, связанным с разработкой ПО и людьми, которые этим занимаются.

В ходе практической части вы вместе со мной:

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

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

Целевая аудитория

Архитекторы

лидеры команд

аналитики

разработчики

менеджеры проектов

Стоимость
$250
за участника
Продолжительность
16 часов
2 дня
Обед включен в стоимость тренинга
При групповой регистрации скидка

Детальная программа

    • Синхронизация целей и ожиданий, обсуждение принципов взаимодействия и программы тренинга.
    • Синхронизация понятий и определений.
    • “Минута славы” каждого участника (по желанию) – собираем ваши архитектурные проблемы.
    • Микросервисная архитектура: идеология и принципы, достоинства и недостатки, сравнение с другими подходами.
    • Шаблонизация и шаблоны архитектуры.
    • Транслирование требований в архитектуру.
    • Роль архитектора, практики командного архитектурирования.
    • Предварительное и итеративное проектирование: достоинства, недостатки, риски и экономика, практики.
    • Эрозия архитектуры и практики борьбы с ней.
    • Практики и экономика работы с легаси.
    • Практические занятия:
      • проектируем концепт решения (идеи -> требования -> сценарии).
      • архитектура решения (сценарии -> слои и сервисы, модель).
      • дизайн выбранного коллективно сценария.
      • анализ ограничений, достоинства и недостатков, точек и зон эрозии.
      • синтез практик и жизненного цикла, достаточных для борьбы с эрозией.
    • Анализ применимости и успешности опробованных практик к проблемам участников тренинга, собранных в ходе “Минуты славы”.

Ответы на вопросы.

  • Литература, “домашние задания”.