HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-19
1 <p>Когда вы пишете код, наверняка хотите, чтобы система, над которой вы работаете, была не просто "рабочей", а надёжной, гибкой и готовой к росту. Вы интуитивно чувствуете, что архитектура - это ключ, но сталкиваетесь с огромным количеством противоречивых мнений.</p>
1 <p>Когда вы пишете код, наверняка хотите, чтобы система, над которой вы работаете, была не просто "рабочей", а надёжной, гибкой и готовой к росту. Вы интуитивно чувствуете, что архитектура - это ключ, но сталкиваетесь с огромным количеством противоречивых мнений.</p>
2 <p>Этот хаос приводит к дорогим ошибкам: монолиты, превратившиеся в Big Ball of Mud, проекты, которые невозможно масштабировать, и команды, увязшие в техническом долге.</p>
2 <p>Этот хаос приводит к дорогим ошибкам: монолиты, превратившиеся в Big Ball of Mud, проекты, которые невозможно масштабировать, и команды, увязшие в техническом долге.</p>
3 <p>Давайте разберём популярные мифы и как обстоят дела на самом деле.</p>
3 <p>Давайте разберём популярные мифы и как обстоят дела на самом деле.</p>
4 <p><strong>Миф №1: "настоящая" архитектура - это микросервисы</strong></p>
4 <p><strong>Миф №1: "настоящая" архитектура - это микросервисы</strong></p>
5 <p>В чём заблуждение?</p>
5 <p>В чём заблуждение?</p>
6 <p>Многие разработчики и даже компании считают, что современный и "правильный" проект обязан быть на микросервисах. Монолит воспринимается как нечто устаревшее и постыдное. Команды бросаются резать систему на сервисы, даже не имея чётких для этого предпосылок.</p>
6 <p>Многие разработчики и даже компании считают, что современный и "правильный" проект обязан быть на микросервисах. Монолит воспринимается как нечто устаревшее и постыдное. Команды бросаются резать систему на сервисы, даже не имея чётких для этого предпосылок.</p>
7 <p>Почему это опасно?</p>
7 <p>Почему это опасно?</p>
8 <p>Преждевременное внедрение микросервисов - прямой путь к катастрофе. Вместо одного предсказуемого монолита вы получаете распределённый монолит - хаотичную систему, где сервисы тесно связаны, но при этом добавляются сетевые задержки, проблемы с консистентностью данных и экспоненциальный рост сложности в отладке и развёртывании. Поиск одной ошибки превращается в детективное расследование по логам 15 сервисов.</p>
8 <p>Преждевременное внедрение микросервисов - прямой путь к катастрофе. Вместо одного предсказуемого монолита вы получаете распределённый монолит - хаотичную систему, где сервисы тесно связаны, но при этом добавляются сетевые задержки, проблемы с консистентностью данных и экспоненциальный рост сложности в отладке и развёртывании. Поиск одной ошибки превращается в детективное расследование по логам 15 сервисов.</p>
9 <p>Как на самом деле?</p>
9 <p>Как на самом деле?</p>
10 <p>Микросервисы - это не цель, а инструмент для решения конкретных проблем:</p>
10 <p>Микросервисы - это не цель, а инструмент для решения конкретных проблем:</p>
11 <ol><li>Организационная масштабируемость: когда над продуктом работает множество независимых команд.</li>
11 <ol><li>Организационная масштабируемость: когда над продуктом работает множество независимых команд.</li>
12 <li>Технологическая гетерогенность: когда для разных частей системы нужны разные стеки технологий.</li>
12 <li>Технологическая гетерогенность: когда для разных частей системы нужны разные стеки технологий.</li>
13 <li>Изолированное развёртывание: когда критически важно обновлять части системы независимо друг от друга.</li>
13 <li>Изолированное развёртывание: когда критически важно обновлять части системы независимо друг от друга.</li>
14 </ol><p>Золотое правило: начинайте с хорошо структурированного монолита. Выделите логические модули с чёткими границами. Когда (и если) какой-то из модулей потребует отдельного масштабирования или независимого цикла разработки, вы сможете отпилить его в микросервис с минимальными усилиями.</p>
14 </ol><p>Золотое правило: начинайте с хорошо структурированного монолита. Выделите логические модули с чёткими границами. Когда (и если) какой-то из модулей потребует отдельного масштабирования или независимого цикла разработки, вы сможете отпилить его в микросервис с минимальными усилиями.</p>
15 <p><strong>Миф №2: архитектура - это то, что мы делаем в самом начале</strong></p>
15 <p><strong>Миф №2: архитектура - это то, что мы делаем в самом начале</strong></p>
16 <p>В чём заблуждение?</p>
16 <p>В чём заблуждение?</p>
17 <p>Этот миф родом из "водопадной" модели разработки. Архитектор в "башне из слоновой кости" рисует всеобъемлющие UML-диаграммы, создает толстый талмуд документации и передает его команде для реализации. После этого его работа якобы закончена.</p>
17 <p>Этот миф родом из "водопадной" модели разработки. Архитектор в "башне из слоновой кости" рисует всеобъемлющие UML-диаграммы, создает толстый талмуд документации и передает его команде для реализации. После этого его работа якобы закончена.</p>
18 <p>Почему это опасно?</p>
18 <p>Почему это опасно?</p>
19 <p>Такой подход (Big Design Upfront) почти никогда не работает. Требования меняются, бизнес-цели уточняются, а первоначальные предположения оказываются неверными. В итоге команда либо игнорирует мёртвую документацию, либо тратит месяцы на переделку системы, которая уже не соответствует реальности. Это прямой путь к срыву сроков и демотивации.</p>
19 <p>Такой подход (Big Design Upfront) почти никогда не работает. Требования меняются, бизнес-цели уточняются, а первоначальные предположения оказываются неверными. В итоге команда либо игнорирует мёртвую документацию, либо тратит месяцы на переделку системы, которая уже не соответствует реальности. Это прямой путь к срыву сроков и демотивации.</p>
20 <p>Как на самом деле?</p>
20 <p>Как на самом деле?</p>
21 <p>Архитектура - это непрерывный процесс, а не однократное событие. Современный подход - это эволюционная архитектура. Мы принимаем важные, труднообратимые решения в начале, но оставляем пространство для изменений. Архитектор - это играющий тренер, а не чертёжник. Он работает вместе с командой, проверяет гипотезы через прототипы и постоянно адаптирует архитектуру под новые знания о продукте и домене.</p>
21 <p>Архитектура - это непрерывный процесс, а не однократное событие. Современный подход - это эволюционная архитектура. Мы принимаем важные, труднообратимые решения в начале, но оставляем пространство для изменений. Архитектор - это играющий тренер, а не чертёжник. Он работает вместе с командой, проверяет гипотезы через прототипы и постоянно адаптирует архитектуру под новые знания о продукте и домене.</p>
22 <p><strong>Миф №3: в Agile нет времени на архитектуру</strong></p>
22 <p><strong>Миф №3: в Agile нет времени на архитектуру</strong></p>
23 <p>В чём заблуждение?</p>
23 <p>В чём заблуждение?</p>
24 <p>Многие agile-команды, увлекаясь двухнедельными спринтами и быстрой поставкой фич, полностью игнорируют архитектурные вопросы. Любые разговоры об инфраструктуре или рефакторинге откладываются на потом под предлогом "мы же гибкие".</p>
24 <p>Многие agile-команды, увлекаясь двухнедельными спринтами и быстрой поставкой фич, полностью игнорируют архитектурные вопросы. Любые разговоры об инфраструктуре или рефакторинге откладываются на потом под предлогом "мы же гибкие".</p>
25 <p>Почему это опасно?</p>
25 <p>Почему это опасно?</p>
26 <p>Agile - это про гибкость, а не про хаос. Без продуманной архитектурной основы система быстро деградирует. Каждый новый спринт добавляет сложности, технический долг растет как снежный ком, и в итоге скорость разработки падает до нуля. Команда тратит всё время на борьбу с багами и костылями, а не на создание ценности для бизнеса. "Гибкость" превращается в паралич.</p>
26 <p>Agile - это про гибкость, а не про хаос. Без продуманной архитектурной основы система быстро деградирует. Каждый новый спринт добавляет сложности, технический долг растет как снежный ком, и в итоге скорость разработки падает до нуля. Команда тратит всё время на борьбу с багами и костылями, а не на создание ценности для бизнеса. "Гибкость" превращается в паралич.</p>
27 <p>Как на самом деле?</p>
27 <p>Как на самом деле?</p>
28 <p>Agile и архитектура - не враги, а союзники. Задача в том, чтобы найти баланс между быстрой поставкой ценности и поддержанием технического здоровья системы. Для этого существуют специальные практики:</p>
28 <p>Agile и архитектура - не враги, а союзники. Задача в том, чтобы найти баланс между быстрой поставкой ценности и поддержанием технического здоровья системы. Для этого существуют специальные практики:</p>
29 <ul><li>Архитектурное русло (Architectural Runway): команда целенаправленно выделяет часть времени в спринтах на создание и развитие технической базы (компонентов, API, инфраструктуры), которая потребуется для будущих фич.</li>
29 <ul><li>Архитектурное русло (Architectural Runway): команда целенаправленно выделяет часть времени в спринтах на создание и развитие технической базы (компонентов, API, инфраструктуры), которая потребуется для будущих фич.</li>
30 <li>Архитектурные истории (Enabler Stories): задачи по рефакторингу, исследованию новых технологий или погашению техдолга оформляются как полноценные задачи в бэклоге и получают свой приоритет.</li>
30 <li>Архитектурные истории (Enabler Stories): задачи по рефакторингу, исследованию новых технологий или погашению техдолга оформляются как полноценные задачи в бэклоге и получают свой приоритет.</li>
31 </ul><p><strong>Миф №4: хорошая архитектура - это использование самых новых технологий</strong></p>
31 </ul><p><strong>Миф №4: хорошая архитектура - это использование самых новых технологий</strong></p>
32 <p>В чем заблуждение?</p>
32 <p>В чем заблуждение?</p>
33 <p>"Мы будем использовать Kubernetes, Istio, gRPC и последнюю версию фреймворка X, потому что это круто и современно". Такой подход, известный как Resume-Driven Development (RDD), ставит технологию впереди решаемой проблемы.</p>
33 <p>"Мы будем использовать Kubernetes, Istio, gRPC и последнюю версию фреймворка X, потому что это круто и современно". Такой подход, известный как Resume-Driven Development (RDD), ставит технологию впереди решаемой проблемы.</p>
34 <p>Почему это опасно?</p>
34 <p>Почему это опасно?</p>
35 <p>Новые, хайповые технологии часто незрелы, имеют мало документации и небольшое комьюнити. Команда тратит бесценное время на изучение их особенностей и борьбу с "детскими болезнями" вместо того, чтобы решать бизнес-задачу. Сложность системы искусственно завышается, а реальной выгоды это не приносит.</p>
35 <p>Новые, хайповые технологии часто незрелы, имеют мало документации и небольшое комьюнити. Команда тратит бесценное время на изучение их особенностей и борьбу с "детскими болезнями" вместо того, чтобы решать бизнес-задачу. Сложность системы искусственно завышается, а реальной выгоды это не приносит.</p>
36 <p>Как на самом деле?</p>
36 <p>Как на самом деле?</p>
37 <p>Выбор технологии - это следствие архитектурных требований, а не их причина. Сначала определите нефункциональные требования: какая нужна производительность, надёжность, масштабируемость? Каковы ограничения по бюджету и экспертизе команды? И только потом подбирайте самый скучный и проверенный инструмент, который справится с задачей. Лучшая технология - та, которую ваша команда знает и которая решает проблему с минимальными издержками.</p>
37 <p>Выбор технологии - это следствие архитектурных требований, а не их причина. Сначала определите нефункциональные требования: какая нужна производительность, надёжность, масштабируемость? Каковы ограничения по бюджету и экспертизе команды? И только потом подбирайте самый скучный и проверенный инструмент, который справится с задачей. Лучшая технология - та, которую ваша команда знает и которая решает проблему с минимальными издержками.</p>
38 <p><strong>Миф №5: архитектор - это самый старший программист, который больше не пишет код</strong></p>
38 <p><strong>Миф №5: архитектор - это самый старший программист, который больше не пишет код</strong></p>
39 <p>В чем заблуждение?</p>
39 <p>В чем заблуждение?</p>
40 <p>Распространённое мнение, что архитектор - это почётная должность для ветерана, который теперь только рисует диаграммы и указывает другим, что делать. Он витает в облаках абстракций и давно не прикасался к коду.</p>
40 <p>Распространённое мнение, что архитектор - это почётная должность для ветерана, который теперь только рисует диаграммы и указывает другим, что делать. Он витает в облаках абстракций и давно не прикасался к коду.</p>
41 <p>Почему это опасно?</p>
41 <p>Почему это опасно?</p>
42 <p>Архитектор, оторванный от кода и реальных проблем команды, принимает нежизнеспособные решения. Его красивые схемы могут быть неэффективными или вовсе нереализуемыми на практике. Это порождает конфликт между теоретиком-архитектором и практиками-разработчиками, что убивает любую инициативу и замедляет проект.</p>
42 <p>Архитектор, оторванный от кода и реальных проблем команды, принимает нежизнеспособные решения. Его красивые схемы могут быть неэффективными или вовсе нереализуемыми на практике. Это порождает конфликт между теоретиком-архитектором и практиками-разработчиками, что убивает любую инициативу и замедляет проект.</p>
43 <p>Как на самом деле?</p>
43 <p>Как на самом деле?</p>
44 <p>Эффективный архитектор - это технический лидер, который остается "играющим тренером". Он может не писать код каждый день, но он обязан:</p>
44 <p>Эффективный архитектор - это технический лидер, который остается "играющим тренером". Он может не писать код каждый день, но он обязан:</p>
45 <ul><li>Регулярно участвовать в код-ревью</li>
45 <ul><li>Регулярно участвовать в код-ревью</li>
46 <li>Помогать в решении самых сложных технических проблем</li>
46 <li>Помогать в решении самых сложных технических проблем</li>
47 <li>Создавать прототипы и proof-of-concept для проверки архитектурных гипотез</li>
47 <li>Создавать прототипы и proof-of-concept для проверки архитектурных гипотез</li>
48 <li>Быть наставником для других разработчиков, объясняя почему и как устроена система.</li>
48 <li>Быть наставником для других разработчиков, объясняя почему и как устроена система.</li>
49 </ul><p>Стать эффективным архитектором и научиться создавать поддерживаемые системы и организовывать код можно на курсе Слёрма<a>"Архитектура приложений: от идеи до архитектурного решения".</a>Вы научитесь смотреть на систему, как архитектор, рефакторить код, проектировать ПО, учитывая изменчивость ИТ-систем, строить UML-диаграммы и много чему ещё. Новый поток стартует 6 октября. Подробная программа и тарифы -<a>по ссылке.</a></p>
49 </ul><p>Стать эффективным архитектором и научиться создавать поддерживаемые системы и организовывать код можно на курсе Слёрма<a>"Архитектура приложений: от идеи до архитектурного решения".</a>Вы научитесь смотреть на систему, как архитектор, рефакторить код, проектировать ПО, учитывая изменчивость ИТ-систем, строить UML-диаграммы и много чему ещё. Новый поток стартует 6 октября. Подробная программа и тарифы -<a>по ссылке.</a></p>