Files
Alexander Abakumov 15e744da49 Initial commit: Complete Software Architecture course with 11 modules
- Added comprehensive course structure with 11 modules
- Included theoretical content, practical examples, and tasks
- Multi-language code examples (Java, Rust, Node.js, Python)
- Detailed analysis of architectural approaches and trade-offs
- Complete caching strategies documentation
- Architecture examples from real-world systems (Twitter, Netflix, Uber)
- Structured navigation and learning path
- Ready for educational use
2025-09-09 22:08:07 +03:00

106 lines
7.5 KiB
Markdown

# Модуль 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#рекомендуемый-путь-изучения)