# Курс "Архитектор программного обеспечения" ## Описание Этот репозиторий содержит полный курс по архитектуре программного обеспечения, разработанный на основе программы Yandex.Practicum и дополненный современными практиками и технологиями. ## 🗺️ Карта курса ```mermaid graph TD A[Модуль 1: Основы архитектуры ПО] --> B[Модуль 2: Микросервисная архитектура] B --> C[Модуль 3: Контейнеризация и оркестрация] C --> D[Модуль 4: Масштабируемость и отказоустойчивость] D --> E[Модуль 5: Мониторинг и наблюдаемость] E --> F[Модуль 6: Безопасность и соответствие требованиям] F --> G[Модуль 7: Документирование архитектуры] G --> H[Модуль 8: Облачные технологии и миграция] H --> I[Модуль 9: Управление командой и процессы] I --> J[Модуль 10: Производительность и оптимизация] J --> K[Модуль 11: Финальный проект] style A fill:#e1f5fe style B fill:#f3e5f5 style C fill:#e8f5e8 style D fill:#fff3e0 style E fill:#fce4ec style F fill:#ffebee style G fill:#e0f2f1 style H fill:#f1f8e9 style I fill:#fff8e1 style J fill:#e3f2fd style K fill:#f9fbe7 ``` ## 📚 Рекомендуемый путь изучения ### Этап 1: Основы (Модули 1-3) - **Модуль 1**: Изучите принципы архитектуры ПО, SOLID, архитектурные стили - **Модуль 2**: Погрузитесь в микросервисную архитектуру - **Модуль 3**: Освойте контейнеризацию с Docker и Kubernetes ### Этап 2: Практические навыки (Модули 4-6) - **Модуль 4**: Изучите паттерны масштабирования и отказоустойчивости - **Модуль 5**: Настройте мониторинг и логирование - **Модуль 6**: Обеспечьте безопасность системы ### Этап 3: Профессиональное развитие (Модули 7-9) - **Модуль 7**: Научитесь документировать архитектуру - **Модуль 8**: Освойте облачные технологии и миграцию - **Модуль 9**: Развивайте навыки управления командой ### Этап 4: Мастерство (Модули 10-11) - **Модуль 10**: Оптимизируйте производительность системы - **Модуль 11**: Реализуйте финальный архитектурный проект ## 🚀 Быстрая навигация ### По сложности - **Начинающий**: [Модуль 1](modules/module1/README.md), [Модуль 7](modules/module7/README.md) - **Средний**: [Модуль 2](modules/module2/README.md), [Модуль 3](modules/module3/README.md), [Модуль 4](modules/module4/README.md) - **Продвинутый**: [Модуль 5](modules/module5/README.md), [Модуль 6](modules/module6/README.md), [Модуль 8](modules/module8/README.md) - **Эксперт**: [Модуль 9](modules/module9/README.md), [Модуль 10](modules/module10/README.md), [Модуль 11](modules/module11/README.md) ### По темам - **Архитектура**: [Модуль 1](modules/module1/README.md), [Модуль 2](modules/module2/README.md) - **DevOps**: [Модуль 3](modules/module3/README.md), [Модуль 9](modules/module9/README.md) - **Облако**: [Модуль 8](modules/module8/README.md) - **Безопасность**: [Модуль 6](modules/module6/README.md) - **Производительность**: [Модуль 4](modules/module4/README.md), [Модуль 10](modules/module10/README.md) ## Структура курса Курс состоит из 11 модулей, каждый из которых содержит: - **Теоретический материал** — основы архитектуры ПО - **Практические примеры** — код на Java, Rust, Node.js и Python - **Практические задания** — для закрепления материала - **Дополнительные ресурсы** — ссылки на полезные материалы ## Модули курса 1. **Основы архитектуры ПО** — принципы, SOLID, архитектурные стили 2. **Микросервисная архитектура** — проектирование и реализация микросервисов 3. **Контейнеризация и оркестрация** — Docker, Kubernetes, Infrastructure as Code 4. **Масштабируемость и отказоустойчивость** — паттерны масштабирования 5. **Мониторинг и наблюдаемость** — Prometheus, Grafana, логирование 6. **Безопасность и соответствие требованиям** — аутентификация, шифрование, уязвимости 7. **Документирование архитектуры** — C4 Model, PlantUML, ADR 8. **Облачные технологии и миграция** — AWS, Azure, GCP, стратегии миграции 9. **Управление командой и процессы** — техническое лидерство, Agile, DevOps 10. **Производительность и оптимизация** — профилирование, оптимизация БД 11. **Финальный проект** — архитектурное проектирование и реализация ## Технологии Курс охватывает следующие технологии: - **Языки программирования**: Java, Rust, Node.js, Python - **Фреймворки**: Spring Boot, Actix Web, Fastify, FastAPI - **Базы данных**: PostgreSQL, MongoDB, Redis - **Контейнеризация**: Docker, Kubernetes - **Облачные платформы**: AWS, Azure, Google Cloud - **Мониторинг**: Prometheus, Grafana, ELK Stack ## Как использовать 1. Клонируйте репозиторий: ```bash git clone https://git.mylocaldomain.online/administrator/sa-lessons.git cd sa-lessons ``` 2. Изучайте модули последовательно, начиная с [Модуля 1](modules/module1/README.md) 3. Выполняйте практические задания в каждом модуле 4. Используйте примеры кода как справочный материал ## Структура репозитория ``` ├── modules/ # Модули курса │ ├── module1/ # Основы архитектуры ПО │ ├── module2/ # Микросервисная архитектура │ └── ... ├── README.md # Этот файл ├── .gitignore # Игнорируемые файлы └── course_plan.md # План курса ``` ## Автор Курс разработан на основе программы Yandex.Practicum "Архитектор программного обеспечения" с дополнениями и современными практиками. ## Лицензия Этот проект распространяется под лицензией MIT. См. файл [LICENSE](LICENSE) для подробностей. ## Вклад в проект Мы приветствуем вклад в развитие курса! Пожалуйста, создавайте Issues и Pull Requests для предложений по улучшению. ## 🔗 Навигация по курсу ### Все модули курса 1. [📋 Основы архитектуры ПО](modules/module1/README.md) 2. [🏗️ Микросервисная архитектура](modules/module2/README.md) 3. [🐳 Контейнеризация и оркестрация](modules/module3/README.md) 4. [📈 Масштабируемость и отказоустойчивость](modules/module4/README.md) 5. [📊 Мониторинг и наблюдаемость](modules/module5/README.md) 6. [🔒 Безопасность и соответствие требованиям](modules/module6/README.md) 7. [📝 Документирование архитектуры](modules/module7/README.md) 8. [☁️ Облачные технологии и миграция](modules/module8/README.md) 9. [👥 Управление командой и процессы](modules/module9/README.md) 10. [⚡ Производительность и оптимизация](modules/module10/README.md) 11. [🎯 Финальный проект](modules/module11/README.md) ### Полезные ссылки - [📋 План курса](course_plan.md) - [📄 Лицензия](LICENSE) - [❓ Поддержка](#поддержка) ## Поддержка Если у вас есть вопросы по курсу, создайте Issue в этом репозитории.