TGViewer
StringConcat - разработка без боли и сожалений StringConcat - разработка без боли и сожалений @stringconcat · 3.72K subscribers
Post #397 1.88K
Как сделать систему непригодной к использованию и назвать это гибкостью

Еще разок про универсальщину. Попался прямо таки каноничный пример как делать не нужно.

Итак, есть вендор. В их системе весомая часть действий — это документ (так исторически сложилось).
Не важно, что происходит: создаём заявку, выполняем операцию, меняем состояние — всегда создаётся документ.

Для всех документов используется универсальный интерфейс:
мы указываем тип документа и передаём набор полей, который якобы его описывает.

Примерно вот так:

POST /documents
{
"type": "X",
"field1": "...",
"field2": "...",
"field3": "а может и не нужно"
}


Звучит гибко, но на практике это превращается в проблему:
- есть одна универсальная дата-модель, где все поля опциональные;
- невозможно понять, какие поля нужно заполнять и как именно;
- одно и то же поле может означать совершенно разные вещи в разных типах документов;
- без нормальной документации (а её, как правило, нет) пользоваться этим почти невозможно.

Ну и вишенка на торте — у документа может быть свой набор состояний или действий. Как результат — целый кабинет аналитиков и разработчиков пытается расшифровать что происходит и как с этим жить.

Вывод простой: даже если внутри системы всё построено на документах — не делайте универсальные интерфейсы. Типизированные контракты и явные модели почти всегда выигрывают у гибкости ради гибкости.
  • 👍 31
  • 😁 9
  • ❤ 1
More from @stringconcat
  1. Sep 26, 2026Вы не заметили, но в интернетах разразился скандал вселенского масштаба. Вопрос вот в чём:…
  2. Sep 21, 2026А сегодня снова не совсем обычный пост (пока я занят написанием духоты). Знаю, что у многи…
  3. Sep 18, 2026Сегодня необычный выпуск — подкаст с нашим старым бро Константином Могилевкиным. Константи…
  4. Sep 15, 2026Я частенько в своих постах упоминаю ключевую характеристику для сотрудника — автономность.…
  5. Sep 8, 2026Продолжаем обзор микросервисных изделий. На этот раз подписчики прислали мне архитектуру,…
  6. Sep 4, 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 →