Обзор курса
Free PreviewЭтот курс разделён на пять логических модулей, каждый из которых посвящён отдельному этапу архитектурного мышления во фронтенде.
🎓 Первый модуль - Foundations (Основы)
Стартовый модуль с которого мы начнем свой путь. В нём мы разбираем самые фундаментальные вопросы:
- Что такое архитектура программного обеспечения?
- Что такое архитектура фронтенда и чем она отличается от общей архитектуры ПО?
На первый взгляд эти вопросы кажутся простыми, но на деле - крайне сложны. Универсальных определений не существует: архитектура - понятие контекстное. Поэтому в этом модуле мы уточним, что именно мы подразумеваем под архитектурой в рамках данного курса. Это поможет сформировать общее понимание и подготовить почву для следующих модулей.
Также мы обсудим разницу между архитектурой и дизайном. Эти термины нередко используются как синонимы, и отчасти это справедливо - они действительно пересекаются. Но различия между ними важны, и мы подробно разберём, в чём они заключаются и почему это имеет значение на практике.
Наконец, мы рассмотрим роль фронтенд-архитектора. Официального определения этой профессии нет, и описания могут сильно различаться. Однако мы выделим наиболее распространённые ожидания и зоны ответственности специалиста, который выполняет архитектурные функции в команде фронтенда.
🧭 Второй модуль - Understanding (Понимание)
Во втором модуле мы познакомимся с учебным проектом - вымышленным веб-приложением, которое будем использовать в течение курса. На его примере мы изучим, как визуализировать архитектуру с помощью высокоуровневых диаграмм, и обсудим ключевые архитектурные понятия, важные на ранних этапах любого проекта.
Речь пойдёт о таких концепциях, как:
- архитектурные драйверы,
- архитектурные требования,
- архитектурные решения.
Эти понятия помогают глубже понять проблему, которую предстоит решать. Ведь архитектор - это не просто человек, который ищет техническое решение. Его задача - убедиться, что команда решает правильную проблему. Поэтому модуль Understanding посвящён именно осмыслению и анализу задачи, прежде чем переходить к её реализации.
🧩 Третий модуль - Designing (Проектирование)
Здесь мы начнём непосредственное проектирование системы - разбиение приложения на части и определение структуры будущей архитектуры. Мы изучим техники и подходы, применимые на разных стадиях - как при старте нового проекта, так и при рефакторинге существующего.
В модуле рассматриваются:
- проектирование предметной области (Domain Modeling),
- декомпозиция приложения на модули,
- основные диаграммы проектирования - например, диаграммы последовательностей и классов,
- создание Design Doc - документа, описывающего архитектуру и основные решения.
Этот модуль объединяет теорию и практику проектирования, формируя основу архитектурной документации.
⚙️ Четвёртый модуль - Implementing (Реализация)
В этом модуле мы, наконец, переходим к практической части и начинаем писать код. Мы рассмотрим, как перевести архитектуру в структуру проекта и поддерживать её в кодовой базе.
Ключевые темы модуля:
- организация файлов и папок в соответствии с архитектурой;
- декомпозиция модулей на компоненты и управление иерархией;
- внедрение ограничений и guardrails (защитных ограничителей), защищающих архитектурные принципы при росте проекта.
На этом этапе будут и практические упражнения: мы реализуем отдельные модули, чтобы на практике почувствовать, как архитектурные решения воплощаются в коде.
🚀 Пятый модуль - Wrapping Up (Завершение)
Заключительный модуль подводит итоги курса. Здесь я поделюсь дополнительными материалами для тех, кто хочет погрузиться глубже - в продвинутые архитектурные техники и практики.
Мы обсудим пути дальнейшего развития в профессии фронтенд-архитектора, рекомендации по литературе и инструментам. Это станет отправной точкой для самостоятельного изучения и практики.
💬 Итог
Этот курс - базовый. Он не охватывает всё возможное, но создаёт прочную основу, на которой можно строить более сложные знания и решения.
Мы пройдём через широкий круг тем - от принципов архитектуры до практической реализации и документирования. Курс подойдёт как новичкам, которые хотят структурировать знания, так и разработчикам, стремящимся перейти на следующий уровень - к архитектурному мышлению.