Дисклеймер: статья написана лично мной и затем отредактирована с помощью нейросети — для исправления ошибок и улучшения стиля.

В процессе поиска работы я изучил множество вакансий, и в подавляющем большинстве среди обязательных требований значились знание паттернов проектирования, принципов SOLID и прочих «столпов» правильной архитектуры.

На собеседованиях меня нередко просили не просто рассказать о SOLID, а буквально расшифровать каждую букву и объяснить её смысл.

Всё это формирует у кандидата вполне логичное ожидание: раз требования такие высокие, значит и кодовая база у работодателя должна быть аккуратной, продуманной и соответствующей этим принципам. Однако в реальности это часто оказывается иллюзией.

На практике обычно встречаются две крайности.

Первая — полностью хаотичная архитектура, где каждый писал «как чувствовал», без единых договорённостей и понимания общей картины.

Вторая — не менее болезненная: кодовая база, перегруженная паттернами и абстракциями ради самих паттернов. Когда простая задача — например, прокинуть новое поле из пункта А в пункт Б — превращается в квест с правками десятка DTO, мапперов, интерфейсов и сервисов. А затем ещё приходится тратить час, чтобы понять, в каком именно месте ты забыл внести изменение и почему данные так и не добрались до нужной точки.

Ирония в том, что и в первом, и во втором случае страдает одно и то же — здравый смысл.

Со временем начинаешь задаваться вопросом: а существует ли она вообще вне презентаций и докладов на конференциях?

Идеальная «чистая архитектура» часто выглядит как красивая концепция, но в реальной жизни почти недостижима. Причина проста — бизнесу, по большому счёту, безразлично, насколько элегантно устроен код под капотом. Ему важно, чтобы конкретная фича была реализована в срок и приносила результат.

Бизнес редко готов ждать, пока команда доведёт архитектуру до абстрактного идеала или аккуратно встроит новую функциональность в заранее продуманную схему, если эта схема внезапно начинает трещать под требованиями рынка.

В итоге разработка почти всегда становится компромиссом между «как правильно» и «как успеть».
И вот в этом балансе, как ни странно, и проявляется настоящая инженерия — не в следовании догмам, а в умении принимать взвешенные решения в условиях ограничений.


А вам доводилось видеть ту самую легендарную «чистую архитектуру»?

Комментарии (21)


  1. Gromilo
    03.03.2026 06:43

    В защиту чистой архитектуры и любой другой.

    Да, есть проблемы. Бывают, забивают, бывает, следуют слишком фанатично, игнорируя здравый смысл.

    Но архитектура, которую все знают — полезна. Она даёт начальную точку от которой можно начинать обсуждение. Она даёт ориентир, для тех, кто только погружается в проект. Готовая архитектура — общий язык, для тех кто хочет рассказать или понять как оно тут всё устроено.

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


  1. wl2776
    03.03.2026 06:43

    После заголовка можно дальше не читать, там трюизмы типа "масло масляное, а вода водяная"


    1. OlegZH
      03.03.2026 06:43

      А могли бы привести примеры из своей практики?


      1. wl2776
        03.03.2026 06:43

        Примеры чего?


        1. OlegZH
          03.03.2026 06:43

          Вот, Вы написали код. Приходит некто, и код приходится дописывать/переписывать...


          1. wl2776
            03.03.2026 06:43

            Да, так бывает. И что?

            Я не понимаю, что от меня требуется. Каких примеров Вы хотите?

            К тому же, львиная доля моего кода написана в рамках NDA, и я не смогу рассказать подробностей.


            1. OlegZH
              03.03.2026 06:43

              Всегда есть возможность пустить в дело метафоры и аллегории.

              P.S. Кстати. Это пресловутое NDA... Что это NDA защищает? Какой в этом смысл?


              1. wl2776
                03.03.2026 06:43

                Повторюсь, я не понимаю, что Вы от меня хотите.

                Если рассказать, как я планировал архитектуру решения, а потом исправлял чужой говнокод из-за новых требований, то это будет эквивалентно написанию за автора нормальной статьи. Не хочу. Чтобы это была нормальная статья, а не набор баек в стиле "а вот у нас в деревне случай был...", надо много чего вспоминать, анализировать, обобщать, аналогии и метафоры придумывать. Короче, работать за бесплатно. Увольте. К тому же, уже есть немало книг по теме, если Вы действительно интересуетесь вопросом, поищите, почитайте.


  1. OlegZH
    03.03.2026 06:43

    И вот в этом балансе, как ни странно, и проявляется настоящая инженерия — не в следовании догмам, а в умении принимать взвешенные решения в условиях ограничений.

    В том то и дело, что решения только выглядят взвешенными (работает же!). Но за это приходится расплачиваться позже, да и сама расплата растягивается на годы.

    Если же говорить про само программирование, то, когда приходит требование реализовать новую "фичу", всегда возникает три следующих вопроса:

    1. Можно ли было предусмотреть необходимость этой "фичи" в самом начале реализации проекта?

    2. Можно ли было в самом начале реализации проекта сделать некую обобщённую библиотеку, чтобы с лёгкостью подключать новые "фичи"?

    3. Можно ли было в самом начале реализации проекта дать клиенту генератор "фич", то есть — такое приложение, где клиент сам мог бы нарисовать нужный ему интерфейс?

    Сейчас, конечно, имеется ИИ. Который. как говорят, заменит программистов. И он постоянно улучшается. Но и тут не ясно, что у него "под капотом" и какого качества код на выходе. Хотя, вопросы остаются те же самые.


  1. kostjaden
    03.03.2026 06:43

    Сроки ставят мечтатели. И вообще, кто на еом стоял. Работодатеои ищут терпил, которые за них будкт грязную рабтту за копецки делать, или они хотят развивать бизнес, привлекая свежую крлвь и ижеи. Тогда они нп о том мобеседуют, нужно ввбрасывать нафиг этих хантеров, от рих только вред (из-за некомпетентности в сфере оуенки квалификации, картонки нередко вреда больше приносят, или они дипломированные психиатры?))


  1. Dhwtj
    03.03.2026 06:43

    Автор:

    Что бы сказать? Может, ничего не сказать, тогда бить не будут?

    Будут! Обязательно будут! За потраченное время на чтение.


    1. OlegZH
      03.03.2026 06:43

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


      1. Dhwtj
        03.03.2026 06:43

        Да я всю жизнь хочу переделать лет так с 11


        1. OlegZH
          03.03.2026 06:43

          Вот видите, сколько у Вас (само)аналитической работы. Дерзайте! :-)


  1. OlegZH
    03.03.2026 06:43

    А, вообще, хотелось бы промоделировать ситуацию.

    Вот у нас есть некий программный код. Или, как говорят матёрые разработчики, кодовая база. Приходит клиент и говорит, что ему нужно что-то новое? С точки зрения мифической чистой архитектуры, тут ситуация такая — оно из двух: либо программный код изначально должен быть построен так, чтобы допускать минимальные добавления/исправления в существующей базе при поступлении новых требований (идеальный вариант — это создание нового компонента, который подключается к приложению штатными средствами), либо такой ситуации не должно быть в природе, ибо все такие привходящие требования вполне можно выявить и зафиксировать на бумаге ещё на этапе проектирования системы (ну, неужели, нельзя было догадаться, что такую "фичу" придётся делать!).


    1. holgw
      03.03.2026 06:43

      С точки зрения мифической чистой архитектуры, тут ситуация такая — оно из двух: либо программный код изначально должен быть построен так, чтобы допускать минимальные добавления/исправления в существующей базе при поступлении новых требований (идеальный вариант — это создание нового компонента, который подключается к приложению штатными средствами), либо такой ситуации не должно быть в природе

      Сорян, но создается впечатление, что вы взяли какие-то внешние признаки Clean Code, добавили в них фанатизма и догматичности, и теперь боретесь с этим чудовищем, утверждая что это и есть Clean Code.


  1. CrazyElf
    03.03.2026 06:43

    Я вам больше скажу. Азбука и арифметика, которые вы проходили в школе - бесполезные вещи. Когда вы пишете код, за вас всё-равно IDE все описки поправит. Да и не на русском же языке код то. А на созвонах вас и так поймут, без правильно расставленных запятых и прочей грамматики. Ну и арифметику давно никто в уме не считает, есть же компьютеры. Так что я считаю, давно пора выкинуть всё это из обучения, да и школу саму отменить. Всё-равно даже те, кто этому всему учились, делают периодически ошибки, а значит ничего это не работает и не нужно вообще.


  1. apevzner
    03.03.2026 06:43

    При чём здесь вообще бизнес?

    Не в силах человеческих для достаточно сложного проекта создать идеальную архитектуру, не написав ни строчки кода, а потом в коде эту архитектуру реализовать.

    Как бы вы не старались, в процессе реализации вылезут нюансы, которые вы изначально не учли и в принципе не могли учесть, потому, что у вас не было достаточного понимания предметной области, не было достаточного опыта разработки именно этого проекта (даже если был опыт разработки похожих проектов) и т.п.

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

    Это просто факт, к которому надо быть готовым. И, в частности, не рвать на себе волосы, когда выяснится, что изначальная архитектура, которая казалась такой удачной, тоже нуждается в доработке.


  1. mazdai19
    03.03.2026 06:43

    Что то я надеялся после заголовка на какую то более информативную статью


  1. shadowphoenix
    03.03.2026 06:43


    С чистой архитектурой должен быть чистый код. А вот тут проблемы. Чистоту вводят и контролируют разные люди.

    Одно дело нарисовать три картинки с кубиками и совсем другое - отрефачить 1к файлов в "микро" сервисе.


  1. alteest2
    03.03.2026 06:43

    Ну про SOLID если и спрашивают, то у джунов, что как бы намекает об авторе