# Модуль 1: Основы архитектуры программного обеспечения ## Навигация - [🏠 Главная страница курса](../../README.md) - [📋 Практические задания](sections/08-practical-tasks.md) - [🏗️ Примеры архитектур](sections/09-architecture-examples.md) ## Содержание модуля 1. [Роль и обязанности Solution Architect](sections/01-role-and-responsibilities.md) - Кто такой Solution Architect, его роль и обязанности в команде 2. [Введение в архитектуру ПО](sections/02-introduction-to-software-architecture.md) - Основы архитектуры программного обеспечения 3. [Доменная модель и Domain-Driven Design](sections/03-domain-driven-design.md) - Принципы DDD и доменное моделирование 4. [Принципы проектирования](sections/04-design-principles.md) - SOLID принципы и принципы проектирования 5. [Архитектурные стили и паттерны](sections/05-architectural-styles-patterns.md) - Монолит, микросервисы, event-driven, CQRS, hexagonal 6. [Качественные атрибуты](sections/06-quality-attributes.md) - Производительность, масштабируемость, надежность 7. [Роль архитектора в команде](sections/07-architect-role-in-team.md) - Взаимодействие с различными ролями в команде 8. [Практические задания](sections/08-practical-tasks.md) - Задания для закрепления материала 9. [Примеры архитектур известных систем](sections/09-architecture-examples.md) - Анализ архитектур Twitter, Netflix, Uber ## Время изучения - **Общая длительность**: 2 недели - **Время на раздел**: 2-3 часа - **Практические задания**: 4-6 часов - **Итого**: 20-30 часов ## Описание модуля Этот модуль закладывает фундаментальные основы для понимания роли Solution Architect и принципов архитектуры программного обеспечения. Студенты изучат: - Кто такой Solution Architect и чем он занимается - Основы архитектуры ПО и архитектурные решения - Domain-Driven Design и доменное моделирование - SOLID принципы и принципы проектирования - Различные архитектурные стили и паттерны (монолит, микросервисы, event-driven, CQRS, hexagonal) - Качественные атрибуты системы - Роль архитектора в команде разработки - Анализ архитектур известных систем (Twitter, Netflix, Uber) ## Ключевые компетенции После изучения модуля студенты будут знать: - ✅ Роль и обязанности Solution Architect - ✅ Основы архитектуры программного обеспечения - ✅ Принципы Domain-Driven Design и доменное моделирование - ✅ SOLID принципы и принципы проектирования - ✅ Различные архитектурные стили (монолит, микросервисы, event-driven, CQRS, hexagonal) - ✅ Качественные атрибуты системы - ✅ Роль архитектора в команде и взаимодействие с различными ролями - ✅ Анализ архитектур известных систем и их паттернов ## Практические задания 1. **Анализ архитектуры известных систем** — анализ архитектуры Twitter, Netflix, Uber и определение архитектурных стилей, компонентов и качественных атрибутов 2. **Применение SOLID принципов** — рефакторинг кода с применением SOLID принципов 3. **Trade-off анализ** — рассмотрение конкретного случая выбора между качественными атрибутами и обоснование решения ## Предварительные требования - Опыт программирования (2+ года) - Понимание основ объектно-ориентированного программирования - Базовые знания о базах данных - Опыт работы в команде разработки ## Дополнительные ресурсы - [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) - Robert C. Martin - [Domain-Driven Design](https://martinfowler.com/bliki/DomainDrivenDesign.html) - Martin Fowler - [Microservices](https://martinfowler.com/articles/microservices.html) - Martin Fowler - [SOLID Principles](https://en.wikipedia.org/wiki/SOLID) - Wikipedia - [Architecture Patterns](https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/) - O'Reilly ## Результаты обучения После завершения модуля студенты смогут: - Понимать роль и обязанности Solution Architect - Применять принципы Domain-Driven Design - Выбирать подходящие архитектурные стили для проектов - Анализировать качественные атрибуты системы - Применять SOLID принципы в проектировании - Анализировать архитектуры известных систем ## Оценка Модуль оценивается по следующим критериям: - **Теоретические знания** (40%) — понимание концепций и принципов - **Практические навыки** (40%) — применение знаний на практике - **Аналитические способности** (20%) — анализ и обоснование решений ## Следующие модули После изучения основ архитектуры ПО, студенты переходят к: - [Модуль 2: Микросервисная архитектура](../module2/README.md) - Детали проектирования и реализации микросервисных систем - [Модуль 3: Контейнеризация и оркестрация](../module3/README.md) - Docker, Kubernetes, Infrastructure as Code - [Модуль 4: Масштабируемость и отказоустойчивость](../module4/README.md) - Паттерны масштабирования и отказоустойчивости ## Быстрая навигация - [🏠 Главная страница курса](../../README.md) - [📚 Все модули](../../README.md#модули-курса) - [🛣️ Рекомендуемый путь изучения](../../README.md#рекомендуемый-путь-изучения)