TGViewer
Маркина. Системно Маркина. Системно @markinasystem · 198 subscribers
Post #53 256
🤯 Vertical Slice Architecture vs Onion Architecture — не надо выбирать, берите оба
Спойлер: они про разное. И отлично уживаются вместе.

🧅 Луковая архитектура (Onion Architecture)
Придумал Джеффри Палермо в 2008.
Идея: код — как луковица, в центре бизнес-логика, вокруг слои: инфраструктура, API, базы данных.
Главное правило: зависимости только внутрь. Внешние слои знают про центр, центр — не знает про них.
Зачем:
✅ Бизнес‑логика не зависит от технологий
✅ Легко менять базу данных или API
✅ Всё можно протестировать изолированно
Минус: слоёв много. Для простой фичи приходится править файлы в трёх местах.

🍕 Вертикальные срезы/слайсы (Vertical Slice Architecture)
Продвинул Джимми Богард в 2018.
Идея: не делить код на слои (контроллеры, сервисы, репозитории), а группировать по фичам.
В одной папке лежит всё, что нужно для выполнения одного сценария: от запроса до SQL.
Зачем:
✅ Одну фичу может делать один разработчик — не конфликтуют
✅ Фичу легко удалить — просто стереть папку
✅ Не нужно лазить по всему проекту
Минус: если не следить, код дублируется в разных слайсах.

🔥 А теперь главное: как их соединять
Многие думают, что это взаимоисключающие подходы, но это не так
Схема «брак по расчёту»:
На верхнем уровне — вертикальные слайсы.
Делим проект по фичам: Orders, Products, Users. Каждая фича — независимая папка.
Внутри каждой фичи — луковая архитектура.
Свои слои: бизнес‑логика, инфраструктура, API. Зависимости — строго внутрь.
Что получается:
Вертикальные слайсы отвечают на вопрос: Как сгруппировать код, чтобы не мешать друг другу?
Луковая архитектура отвечает на вопрос: Как организовать зависимости, чтобы бизнес‑логика не привязывалась к базе данных?
Внутри одного слайса PlaceOrder вы можете использовать MediatR, CQRS, чёткие слои. Но соседний слайс CancelOrder об этом ничего не знает.

📦 Пример на пальцах
src/
├── Features/
│ ├── Orders/
│ │ ├── PlaceOrder/ # Вертикальный слайс
│ │ │ ├── Domain/ # Луковая архитектура внутри
│ │ │ ├── Application/
│ │ │ ├── Infrastructure/
│ │ │ └── Presentation/
│ │ └── CancelOrder/ # Другой слайс
│ └── Products/


🎓 Моё резюме
Onion защищает бизнес‑логику от внешнего мира.
Vertical Slice защищает разработчиков друг от друга.
Не выбирайте один подход. Берите лучшее от каждого. Архитектура должна работать на проект, а не проект на архитектуру.

#Инструменты #Термины
  • 👍 6
  • 🤓 4
More from @markinasystem
  1. Sep 23, 2026Доброго всем дня, с контентом пауза, изнутри познаю все "прелести" организации конференции…
  2. Sep 14, 2026🫣Мы всё пропустили, а вчера был День программиста Вчера, 13 сентября, отмечали День прогр…
  3. Sep 13, 2026Post #127
  4. Sep 13, 2026Post #126
  5. Sep 8, 2026Маркина. Системно pinned «🪡 Карта канала «Маркина. Системно» Когда я начинала этот канал,…
  6. Sep 7, 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 →