Проектирование
52 элемента
Паттерны проектирования
35 элементов
Основы проектирования и архитектуры программного обеспечения
Обычно проектирование применяется к каким-то планам, схемам, моделям или расчётам, которые описывают будущий объект, включая характеристики, функции, инженерные решения.
Архитектурные стили и их применение
Архитектурные решения, касающиеся распределения компонентов и организации их взаимодействия, определяют фундаментальные свойства системы: её масштабируемость, отказоустойчивость, сложность.
Стили внутренней организации кода
Это достигается через инверсию зависимостей — принцип, согласно которому высокоуровневые модули не должны зависеть от низкоуровневых; оба должны зависеть от абстракций.
Принципы компонентно-ориентированной архитектуры
Компонентно-ориентированная архитектура - согласованность версий общих модулей и управление зависимостями между сервисами.
Стратегии декомпозиции монолитных систем
Как резать монолит без "большого взрыва": пять вопросов перед стартом, анализ, Strangler, DDD-контексты, данные, саги и метрики успеха.
Влияние инфраструктуры на архитектурные решения
Инфраструктура — это множество решений, инкапсулированных в сервисы, каждое из которых накладывает ограничения и открывает возможности.
Классификация типов классов в объектно-ориентированном проектировании
Классификация типов классов в ООП - семантика имён, роли объектов и разделение ответственности в проекте.
Построение систем на основе классов и объектов
Построение систем на классах и объектах - модель предметной области, границы ответственности и связи между сущностями.
Доменная модель
Доменная модель - как отразить предметную область в ПО, выделить сущности и зафиксировать правила бизнес-логики.
Типы классов в DDD
Тактические строительные блоки Domain-Driven Design: Entity, Value Object, Aggregate Root, доменные сервисы, репозитории, фабрики и события — какие классы в каком слое и чем они отличаются от DTO и контроллеров.
Паттерны проектирования
В практике разработки программного обеспечения естественным образом возникают типовые задачи: как управлять жизненным циклом объекта?
Системный подход и системное мышление
Системный подход в разработке ПО — с примерами проектирования API и базы данных, чек-листом вопросов и типичными ошибками при игнорировании связей между компонентами.
Имитационное моделирование
Имитационное моделирование в IT и системном анализе: дискретно-событийные и агентные модели, очереди, нагрузка, инструменты и отличие от прототипа и численной симуляции.
Роль и практика архитектора программного обеспечения
Кто такой архитектор ПО, чем отличается от техлида, какие артефакты создаёт и какие навыки развивать — с разбором терминов и типичных ситуаций для новичка.
2 концепций архитектуры распределённых систем
Краткая напоминалка для разработчика: балансировка, кэш, CDN, очереди, pub/sub, API Gateway, circuit breaker, service discovery, шардирование, rate limiting, consistent hashing и autoscaling — с маршрутом в углублённые главы.
Алгоритмы выбора лидера в распределённых системах
Bully, Ring, Paxos, Raft и ZAB — как кластер договаривается о единственном координаторе для записи, failover и координации. Сравнение механизмов и примеры из etcd, ZooKeeper, PostgreSQL и Kafka.
System Design — карта тем и подготовка
Шесть столпов system design, порядок изучения от сетей и БД до очередей, пять инженерных рычагов, типовой продакшн-контур и каркас ответа на собеседовании.
Email-рассылка как распределённая система
Почему сервис рассылок перестаёт быть CRUD после продакшена: очереди, state machine, bounces, SPF/DKIM/DMARC, идемпотентность, webhooks ESP и throttling провайдеров.
Масштабируемость и параллелизм в системном проектировании
Параллелизм в таких системах — не просто техническая возможность выполнения нескольких вычислений одновременно, а инструмент достижения *масштабируемости*.
Практика архитектурного проектирования
Практика архитектурного проектирования: монолит и N-tier, границы модулей, Conway, контракты API, эволюция и структура репозитория.
Проектирование и архитектура — итоги
Краткие итоги раздела "Проектирование и архитектура" для разработчика, архитектора и аналитика.
Проектирование и архитектура — чек-лист
Чек-лист раздела «Проектирование и архитектура» — вопросы для самопроверки.
Проектирование и архитектура — о разделе
Как проектировать ПО осознанно: от домена и стилей развёртывания до микросервисов, ADR и документации — маршруты для разработчика, архитектора и аналитика.