TGViewer
S0ER S0ER @softwareengineervlog · 10.4K subscribers
Post #1769 6.71K
По поводу того как архитектура мешает делать неправильные вещи

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

Например, если у вас в приложении изолирован слой работы с БД, то обратиться к БД напрямую можно только переписав слой работы с БД, а это обычно сильно сложнее, чем использовать готовые инструменты (архитектура сопротивляется прямым обращениями). Но если слой с БД не изолирован, то вы можете делать любые прямые запросы, по сути размазывая логику работы с данными по всему приложению (архитектура не работает).

Изоляция, грануляция, проведение границ, разделение ответственности - основные архитектурные инструменты на уровне системы и приложения.

Типы, принципы и паттерны - это инструменты архитектуры на уровне кода.
  • 👍 67
  • 🔥 2
More from @softwareengineervlog
  1. Sep 3, 2026Google выпустила Gemini 3.8 Flash — новая быстрая модель уже обходит гигантов в кодинге. П…
  2. Sep 3, 2026Сейчас использую DeesSeek v4 Flash, на готовой кодовой базе решать стандартные таски из тр…
  3. Aug 6, 2026Полезное: разраб сделал интерактивный мануал, который по шагам показывает, что происходит…
  4. Aug 5, 2026Ты ненастоящий программист! Это происходит снова и снова, и каждый раз одинаково. Я начал…
  5. Jul 27, 2026Внимание, скам! Появился бот который выдает себя за бота моего канала. Я НИЧЕГО ЧЕРЕЗ БОТО…
  6. Jul 25, 2026У Сбера есть интересный whitepaper где он описывает технологию разработки продукта с помощ…
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 →