Почему унитаз на кухне — это плохая архитектура
Слово «архитектура» в ИТ слишком часто звучит пафосно. Кажется, что это бесконечные диаграммы, которые рисуют бородатые сеньоры на созвонах. Но на самом деле архитектура — это просто правила проведения границ.
🤷♂️ Код можно писать как угодно. Можно вообще запихнуть всё в один файл на десять тысяч строк, и проект даже будет запускаться. Архитектура нужна не для того, чтобы код «просто работал». Это твоя страховка на будущее. Когда через месяц бизнес придет с новой фичей, тебе не придется тратить кучу нервов и денег, боясь сломать старый функционал.
Простейшая аналогия — планировка квартиры.
В нормальном жилье есть спальня и есть кухня. Технически ты можешь поставить унитаз прямо посреди кухни — вода там подведена, канализация рядом, всё будет функционировать.
И я даже видел такое в реальности: ванна и туалет прямо в зоне готовки. Это и есть пример хреновой архитектуры. Пользоваться этим сложно, поддерживать гигиену — тоже, а любой ремонт превращается в ад. В архитектуре кода все так же: когда логика перемешана с отображением, ты сидишь в «туалете на кухне».
Главный признак плохой архитектуры — это когда ты меняешь что-то в одном месте, а проект внезапно ломается в совершенно другом. Хорошая архитектура не гарантирует отсутствие багов, но она их локализует.
Как понять, какую архитектуру применять?
В нашей индустрии нет ГОСТов и золотых стандартов. Увы. И под каждую задачу, под каждый бизнес-запрос решение будет разным. На практике всё это грубо делится на блоки ответственности:
— UI: только отображение, кнопки и картинки.
— Бизнес-логика: «мозги» приложения, правила игры.
— Оркестрация (контроллеры): диспетчеры, которые решают, какую функцию вызвать в ответ на запрос.
— Persistence Layer: подкапотка для работы с базой данных.
— Транспортный уровень: те самые API и ручки, через которые общаются бэк и фронт.
— Инфраструктура и очереди: асинхронные задачи, которые крутятся на фоне, пока юзер листает сайт.
💡 Если максимально упростить, то архитектура — это просто ответ на вопрос: «В какой папке и в каком файле мне написать вот это условие?».
Идеальной архитектуры не существует. Есть паттерны, которые можно миксовать. Тот же SOLID, про который все так любят спрашивать на собесах, в чистом виде в продакшене встречается редко. Обычно в коде соблюдают одну-две буквы из аббревиатуры, а на остальное забивают, если это мешает быстро выкатить фичу.
Если что-то всё ещё звучит запутанно — пиши вопросы в комментах, я обязательно отвечу. А если всё разложилось по полочкам — ставь 🔥, так я пойму, что пост был полезен
10МДК
Post #37
96

- 👍 3
- 🔥 1