На дне открытых дверей ИТМО кратко рассказал про свой курс по проектированию микросервисной архитектуры (https://microservices.itmo.ru/)
Кратко, конечно, получилось условно — потому что курс я веду уже который год, и каждый год он немного мутирует 🙂
Начиналось всё с 7 теоретических лекций, из которых приходилось что-то выкидывать, чтобы заменять на новое, более полезное.. И сейчас их уже 10, и я всё чаще думаю, что нужна минимум 11-я. При этом убирать уже совсем нечего: всё случайное и устаревшее постепенно отвалилось, осталась база (которую, на мой взгляд, нельзя просто «загуглить и прочитать в паре статей») и уникальный мейнстрим, о котором стараюсь рассказывать и на конференциях.
Почему курс сейчас кажется мне ещё актуальнее, чем несколько лет назад?
Потому что с приходом ИИ код всё сильнее уходит в сторону генерации агентами. Простые решения всё чаще будут не писаться руками, а собираться, уточняться и проверяться. И тогда на первый план выходит не синтаксис, не фреймворк и даже не конкретная технология, а умение видеть систему целиком: связи, границы, потоки данных, ответственность компонентов, точки роста и будущих возможных проблем.
То есть ровно то, чем и должна заниматься ИТ-архитектура.
В курсе есть теория, воркшопы и практика.
На воркшопах я открываю чистый лист и мы вместе со слушателями проектируем систему с нуля. Я задаю вопросы, жду версии, предлагаю свою, бывает мы даже спорим.. и постепенно начинаю рисовать те самые абстрактные квадратики и стрелочки, которые потом почему-то определяют будущее продукта 🙂
А практика устроена ещё интереснее: студенты курса делятся на группы по 2-4 человека, затем каждая группа выбирает один проект и ведёт его весь курс. На занятиях приносит очередную итерацию архитектуры, мы вместе её разбираем, обсуждаем, допроектируем, иногда критикуем, иногда находим удачные решения.
И главное — в разбор архитектуры конкретного проекта вникают все слушатели курса, а не только студенты группы.
На мой взгляд, одна из самых больших проблем в профессии архитектора — нехватка насмотренности. Когда ты несколько лет работаешь с одной большой системой, ты начинаешь очень хорошо понимать именно её. Но редко видишь десятки других доменных областей, решений, ошибок, компромиссов и способов думать.
А тут за один семестр слушатели курса могут посмотреть много разных архитектур, несколько раз пройти путь от идеи до схемы, а в конце — защитить своё решение и послушать защиты других. Услышать множество ответов на многочисленные «почему именно так?».
Для меня это тоже каждый раз мощная практика. За одно занятие приходится быстро вникать в разные проекты, переключать контекст, разбирать решения и объяснять, что в них работает, а где система начинает ехать не туда. Иногда немного страшно, что я не справлюсь, но когда получается — именно это меня и заряжает 😅
В общем, курс полностью мой, авторский и очень практический. Всё, о чём я рассказываю, выросло из моего опыта, опыта Бындюсофт, реальных проектов, докладов, исследований и постоянных попыток понять: как проектировать сложные системы так, чтобы они не превращались в хаос.
И чем дальше развивается ИИ, тем сильнее я убеждаюсь: распределённые системы никуда не денутся.
Либо у вас микросервисы, либо много монолитов, но связанных друг с другом.
Но в любом случае — это система. И её надо уметь проектировать 🧠
Полное видео дня открытых дверей:
🟥 СМОТРЕТЬ
🟦 CМОТРЕТЬ
Post #407
1.29K