TGViewer
artalog artalog @artalog · 4.21K subscribers
Post #219 1.51K
middleware VS decorator

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

Важнее то что наличие мидлвары всегда implicit (не явное) для интерфейса домена, а вот наличие декоратора explicit (явное), что выражается, например, в изменении входных параметров.

Мидлвара добавляется в общий сервис обработки фич и описывает (обрабатывает) общую для всех логику. Декоратор добавляется точечно к каждой фиче и настраивает ее индивидуально.

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

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

Но нет общего решения, когда выбирать не везде применимые декораторы или не всегда работающую мидлвару. Важно отталкиваться от семантики паттернов: если какая-то общая логика никак не влияет на работу фичи - это мидлвара, иначе декоратор.
  • 👍 12
  • 🤔 5
  • 👎 3
More from @artalog
  1. Oct 1, 2026Для меня главный приоритет в reatom.dev уже несколько лет - универсальность. Он должен реш…
  2. Sep 30, 2026https://t.me/synaptic_garden/1370 (уж извините за частый постинг, тем более про ИИ, но важ…
  3. Sep 30, 2026Post #2011
  4. Sep 30, 2026Очень круто! Композиты сильно упрощают работу с иммутабельными данными, точнее с их equali…
  5. Sep 29, 2026Bun там с AOT экспериментирует!
  6. Sep 25, 2026Пятничная демка! Превратила загрузку сайта в музыку. Чтобы треды можно было не только виде…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →