TGViewer
Лаборатория Математики и Программирования Сергея Бобровского Лаборатория Математики и Программирования Сергея Бобровского @lambda_brain · 1.41K subscribers
Post #1209 1.05K
На работе computer science, программная инженерия и software design тебе никогда не понадобятся, говорили они. Просто почитай учебник "System Design. Общие принцип прохождения интервью по проектированию ИТ-систем" (рекомендую кстати к изучению в любом случае :), и норм.

...

Таких отчётов с hard work у меня десятки =>
"просто так получилось" (с) )))
И дальше такого дерьма будет только больше.

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

...Мне кажется, у нас весь проект такой. Т.е. один большой артефакт.
...У нас в проекте долго была проблема, которая рождала множество багов. В проекте есть веб-сокет соединение. Изначально система писалась с расчетом на то, что сообщения будут приходить в определенном порядке. Т.е. синхронно, асинхронность в расчет не была взята. Это не было сделано специально, просто так получилось. И это работало, пока не был переписан бэкендовый сервис, который отправляет сообщения. Он перестал гарантировать порядок сообщений. Из-за этого началось большое количество проблем на фронте, потому что он не был готов к этому вообще. Получается, что следствием этого было возникновение багов, а причина багом не была.
...Был у нас баг, который положил всю систему многим клиентам. Для переводов у нас используется weblate - опен-сорсная библиотека для хранения и версионирования переводов. Он жил в одном инстансе. Он обслуживал все запросы от всех клиентов, потому что все переводы им у себя кэшировались. В какой-то момент, точно не помню из-за чего, этот кэш инвалидировался и все запросы стали идти на сервис. Под нагрузкой он лег, возвращал ошибки, как следствие система не грузилась. Был большой инцидент, много клиентов было затронуто.

...Видите какой уровень вложенность Depends fastapi?
Сначала в каждом сервисе, а точнее - в каждом роутере мы должны сформировать функцию для инъкции в обработчик роута/запроса, которая в свою очередь: А) Парсит Authorization хедер (Зависима на библиотеку связанную с авторизацией, тоже вызывает Depends) Б) Проверяет накостыленный RBAC (некоторые запросы могут игнорировать его, например... Внутренние! Ох уж этот распределенный монолит) С) Наконец формирует экземпляр класа в котором запакована вся CRUD логика для обработки запроса.
Это же какое-то дерьмо.
Это не просто боксинг, это мета-боксинг да еще с кучей зависимостей. Это совсем не читаемо и неудобно, ничего не понятно. Пытаясь разобраться в коде или внести новые изменения в тот же самый post на создание Entity, если мы видим этот код и "стиль" первый, второй, третий или даже четверный раз, нам надо посмотреть в "Сценарий" и еще в 2 библиотки.
Это не неудачная абстракция, это откровенное дерьмо. Пару месяцев назад я видел подход, когда в модель базы добавляли методы для обработки круда fastapi, это примерно один и тот же боксинг, но в последнем больше смысла чем в этом Сценарии.

...Старое приложение хостилось еще на iis, после одного из релизов начало падать и перезагружаться стабильно 1 раз в день.
Провозился я, будучи еще мидлом около месяца с поиском этой ошибки.
Оказалось - рекурсивное событие в коде. Нашли с помощью дампа памяти, который сняли перед падением.
Перепробовали все мелкие фиксы, добавляли памяти, увеличивали лимиты и т д.
Не хватало более широкого понимания картины, для начала стоило:
- понять, когда начала появлятся ошибка;
- пересмотреть код с последних релизов;
- сделать выводы и повторить последние два пункта;


Никакой "практический опыт" никогда не даст вам широкого видения картины в целом, потому что это отдельный (и возможно, самый сложный инженерный) скилл системного мышления.
  • ❤ 54
  • 👍 21
  • ✍ 6
  • 🤓 2
More from @lambda_brain
  1. Oct 11, 2026Современные разработчики практически больше не имеют возможности получить следующий профес…
  2. Oct 11, 2026Я такой: - вот эта фича позволит реализовывать популярный класс твоих задачек в 2,7 раза б…
  3. Oct 10, 2026Если бы вы направили всю энергию, которую тратите на беспокойство о потере работы из-за ис…
  4. Oct 10, 2026Продолжаю работу с ментатами 🤓 Буквально в сентябре потратил 2 недели впустую. Работал не…
  5. Oct 9, 2026Ладно, вот серебряная пуля всей инженерии агентов: декомпозиция. Темка, которую святые com…
  6. Oct 9, 2026Про очередной хайп, как суперинтеллект якобы решил 700 сложных математических проблем, я п…
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 →