Луковичная архитектура: канон и где от него осознанно отступать

Луковичную (onion) архитектуру обычно продают аргументом «легко поменять БД или фреймворк». Только базу в проде меняют раз в пятилетку, а чаще вообще не меняют — ради этого городить слои не выгодно. Реальная ценность в другом, и она ежедневная: глядя на правку, ты заранее видишь её радиус. Поменял формат ответа одной ручки — изменение осталось в одном handler'е, соседние ручки и cron не задеты. Тронул бизнес-правило в сервисе — и сразу понятно, что эффект расходится на всё, что выше. Понадобилось параллельно писать ещё в одно хранилище — горячий кэш, поисковый индекс, аналитическую базу рядом с основной — это добавляется в одном репозитории, и весь код, который через него пишет, начинает писать в оба места разом. Ничего не переписываешь и, главное, негде забыть: точка подключения одна, а не разбросана по всем местам, где идёт запись.

https://habr.com/ru/articles/1051970/

#чистая_архитектура #onion_architecture #луковичная_архитектура #гексагональная_архитектура #DDD #инверсия_зависимостей #dependency_injection #рефакторинг #проектирование #кодовые_агенты

Луковичная архитектура: канон и где от него осознанно отступать

⚠️  Ахтунг:  тут пробегал ИИ. 📝  Примечание:  есть отступления от канона — они в тексте помечены и объяснены. Идея на пальцах Код укладывается слоями, как лук. Внутренние слои...

Хабр

Модульная архитектура против хаоса: как ограничить контексты в большом монолите

При большом масштабе компании требования к стабильности и скорости разработки становятся критичными. Долгое время бэкенд платформы Flowwow оставался монолитным, и в какой-то момент это начало серьезно тормозить развитие продукта. В этой статье я расскажу, как мы пришли к модернизации, как поменяли архитектуру и что получилось в итоге.

https://habr.com/ru/companies/flowwow/articles/1048736/

#архитектура #модульный_монолит #рефакторинг #onion_architecture #yii #контексты #микросервисы #статический_анализатор_кода #управление_зависимостями #процессы_разработки

Модульная архитектура против хаоса: как ограничить контексты в большом монолите

Привет, Хабр! Меня зовут Иван Русин, я старший разработчик группы модернизации платформы Flowwow. Именно к нашей команде приходят, когда надо перенести часть функционала со старого бэкенд-проекта в...

Хабр

Rails 미들웨어의 이해: 브라우저와 컨트롤러 사이의 블랙박스 해소하기

Rails 미들웨어는 HTTP 요청과 응답이 컨트롤러에 도달하기 전후에 거치는 '양파 껍질' 구조의 레이어로, 애플리케이션의 핵심적인 요청 처리 메커니즘입니다.

🔗 원문 보기

Rails 미들웨어의 이해: 브라우저와 컨트롤러 사이의 블랙박스 해소하기

Rails 미들웨어는 HTTP 요청과 응답이 컨트롤러에 도달하기 전후에 거치는 '양파 껍질' 구조의 레이어로, 애플리케이션의 핵심적인 요청 처리 메커니즘입니다.

Ruby-News

[Перевод] Оверинжиниринг в луковичной и гексагональной архитектурах

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

https://habr.com/ru/companies/spring_aio/articles/917172/

#overengineering #onion_architecture #hexagonal_architecture #clean_architecture #interface #strict_layers #code_smell #rest_api #mock #dto

Оверинжиниринг в луковичной и гексагональной архитектурах

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

Хабр

Как эксперимент помог распутать спагетти-код: применяем DDD-Lite на микросервисах

Ситуация, знакомая многим: разрабатываем сервис, пилим в нём фичи, развиваем продукт… но постепенно всё выходит из под контроля. Кодовая база разрастается, зависимости становятся сложнее. Команда разработчиков тратит больше времени на распутывание существующих проблем, чем на создание новой функциональности. Хорошая новость: распутать спагетти-код можно по-разному, и иногда срабатывают не самые очевидные способы. В нашем случае помогла комбинация действий: не просто выделение части кода в отдельные микросервисы, но и параллельная реализация архитектурного подхода DDD Lite (в связке с принципами чистой архитектуры). О том, как в рамках кейса мы избавились от спагетти-зависимостей, поделили сервис на чёткие слои, упростили поддержку и масштабирование кода, — рассказываем под катом. Плюс делимся рекомендациями: кому и при каких сценариях связка «DDD Lite + микросервисы» может пригодиться.

https://habr.com/ru/companies/sravni/articles/896894/

#nestjs #DDDlite #domain_driven_design #луковая_архитектура #typescript #onion_architecture #проектирование_архитектуры #микросервисы

Как эксперимент помог распутать спагетти-код: применяем DDD-Lite на микросервисах

Ситуация, знакомая многим: разрабатываем сервис, пилим в нём фичи, развиваем продукт… но постепенно всё выходит из под контроля. Кодовая база разрастается, зависимости становятся сложнее. Команда...

Хабр