Дизайн, основанный на предметной области: от теории к коду - Руководство для практиков

Когда я впервые столкнулся с Domain-Driven Design (DDD), у меня возникло ощущение, будто я Алиса, которая преследует Белого Кролика в кроличьей норе. «Нацеливайтесь на ядро бизнеса! Убиквитарный язык! Стратегические слои проектирования!» — кричали книги. Но как эти концепции воплощаются в реальный код? Вы здесь, потому что пролистали бесчисленные учебники и всё ещё задаётесь вопросом, с чего начать. Давайте разберёмся с этой терминологией, используя практичный подход, ориентированный на код. Трёхногий стул реализации DDD Прежде чем мы погрузимся в код, давайте визуализируем основу....

3 августа 2025 14:00 · 4 минуты · 693 слова · Maxim Zhirnov

Аргументы против того, чтобы всегда использовать архитектуру, управляемую событиями

Когда я впервые столкнулся с архитектурами, управляемыми событиями (EDA), у меня возникло ощущение, что я обнаружил секретный ингредиент для создания масштабируемых и элегантных систем. «Независимые компоненты, реагирующие на события? Гениально!» — подумал я. Но после того как я увидел, как команды тонут в сложных потоках событий и борются с асинхронными призраками, я понял, что одежда императора оказалась пустой — иногда клей бывает крепче помады. Ловушка сложности: когда гибкость становится удушающим фикусом Давайте начнём с безобидно названного проектирования системы с минимально связанными компонентами....

1 августа 2025 06:01 · 4 минуты · 1 слово · Maxim Zhirnov

Ошибочность 'быстрого провала': когда черепаха бежит наперегонки с кодом зайца

Когда Agile-движение обещало превратить разработку программного обеспечения в высокоскоростную гонку, оно упустило одну важную деталь: даже Рикки Бобби делал пит-стопы. Мантра «Fail Fast, Fail Often» стала священной коровой в технологических кругах, но этот «Хакерский ход Мэри» часто приводит к совершенно противоположному тому, чего мы хотим — стабильным системам и осмысленным итерациям. Философия Fail Fast не является изначально неправильной, но вред от неё заключается в том, что её воспринимают как универсальную истину, а не как стратегию, зависящую от контекста....

25 июля 2025 06:01 · 5 минут · 1 слово · Maxim Zhirnov
Почему вам следует время от времени писать немасштабируемые приложения

Почему вам следует время от времени писать немасштабируемые приложения

Преодоление одержимости масштабируемостью Начнём с кощунственной мысли: иногда написание заведомо немасштабируемого кода — это профессиональный выбор. Я знаю, знаю — это как предложить шеф-повару иногда недожаривать курицу. Но выслушайте меня, прежде чем хвататься за вилы. Нужен был прототип ещё вчера? Внутренний инструмент, которым пользуются три человека? Экспериментальная функция с вероятностью внедрения 5%? Жертвовать масштабируемостью здесь — не лень, а стратегическая сортировка. Думайте о долге по масштабируемости как о финансовом долге: иногда небольшой, намеренный заём позволяет вам воспользоваться возможностью....

8 июля 2025 06:00 · 3 минуты · 602 слова · Maxim Zhirnov
Аргументы в пользу того, чтобы ваша кодовая база оставалась беспорядочной: когда в ней легче ориентироваться

Аргументы в пользу того, чтобы ваша кодовая база оставалась беспорядочной: когда в ней легче ориентироваться

Мы все слышали проповеди о безупречных кодовых базах. «Чистый код — это поддерживаемый код!» — хором повторяют они. «Место для всего и всё на своём месте!» — поучают они. Но что, если я скажу вам, что ваша кодовая база может быть здоровее с долей хаоса? Давайте разберёмся, почему иногда контролируемый беспорядок превосходит архитектурную аскетичность. Кодовый «Тетрис»: когда организация не срабатывает Рассмотрим этот фрагмент управления памятью на C++ из проекта симуляции физики:...

16 июня 2025 06:00 · 3 минуты · 594 слова · Maxim Zhirnov