Изучите фундаментальные принципы проектирования и архитектуры ПО, чтобы писать поддерживаемый, гибкий и тестируемый код, который развивается вместе с проектом, а не превращается в хаос. Этот курс поможет понять, как опытные инженеры принимают архитектурные решения, строят доменные модели и используют SOLID на практике.
О чем этот курс
Курс создан для разработчиков, стремящихся вывести свои навыки проектирования на профессиональный уровень. Вы освоите современные подходы к созданию масштабируемых, понятных и долговечных программных систем, которые выдерживают рост требований и команд.
Чему вы научитесь
Чистый код: принципы, подходы и практики
Вы разберетесь, что делает код действительно удобным для чтения и сопровождения. Вместе с автором вы научитесь применять принципы «человеко-ориентированного» проектирования, писать полезные комментарии, поддерживать единообразие стиля и имен, структурировать модули и проводить осознанный рефакторинг.
- Создание «удобного для мозга» кода
- Эффективные практики именования
- Стратегии тестирования и покрытия кода
- Правильная обработка ошибок
- Инструменты и приемы для рефакторинга
ООП и моделирование предметной области
Вы узнаете, как применять объектно-ориентированное программирование для создания выразительных моделей, отражающих правила реального бизнеса, и перестанете «прятать» логику в контроллерах и ORM.
- Создание богатых доменных моделей
- Инкапсуляция сложных правил
- Разделение бизнес-логики и инфраструктурных слоев
- Правильное использование ORM и фреймворков без зависимости от них
Глубокие принципы проектирования
Применение SOLID и других фундаментальных подходов
Вы научитесь определять признаки плохого дизайна и предотвращать их, используя проверенные временем архитектурные принципы. Курс объясняет, как рефакторить код поэтапно и уверенно, улучшая его структуру без риска «сломать всё».
- Локализация изменений
- Грамотное распределение ответственности
- Снижение связанности и увеличение модульности
- Шаблоны рефакторинга и улучшения архитектуры
Архитектурное мышление
Строительство устойчивой архитектуры, готовой к изменениям
Вы научитесь проектировать систему так, чтобы изменения в одной области не приводили к сбоям в другой. Используя закон Конвея, вы поймете, как определять границы, формировать компоненты и поддерживать чистую модульную структуру.
- Правильное выделение компонентных границ
- Управление зависимостями между модулями
- Поддержка гибкости и тестируемости решений
- Предотвращение дорогостоящих архитектурных переделок
Domain-Driven Design на практике
Как строить сложные приложения, выходящие за рамки обычного CRUD
Вы изучите основы архитектуры, основанной на предметной области, и научитесь разбирать сложные домены, выделять контексты, создавать выразительные модели и применять стратегические и тактические паттерны DDD.
Практическое приложение: разработка проекта Forum
На финальном этапе курса вы создадите полноценное приложение Forum, используя техники DDD, модульность и архитектурную декомпозицию. Вы увидите, как компании переходят от монолитов к микросервисам и что нужно учитывать в реальной разработке.
Этот курс — ваш путь к профессиональному уровню проектирования и созданию устойчивых, качественных программных систем.
Thanks for your efforts, Andrew.
There are several chapters have been added.
https://wiki.solidbook.io/June-1st,-2022-update-0f57511ace5a4075bb4e53ce8629ed0f/