- 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
106 lines
7.5 KiB
Markdown
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#рекомендуемый-путь-изучения)
|