TGViewer
partially unsupervised partially unsupervised @partially_unsupervised · 10.4K subscribers
Post #70 2.58K
Почему в software engineering так сложно с оценками сроков? Потому что зачастую практически невозможно на глазок оценить глубины кроличьей норы, если речь идет о чем-то сложнее перекраски кнопки на лендинге.

Вот небольшой пример. Есть сервис на питоне, в котором некоторые запросы начали тормозить. Хочется найти эти запросы, для этого - добавить в логи какой-то request_id.

Но в мире асинхронного питона нельзя просто хранить какой-то id на уровне треде, т.к. тред может переключаться между запросами в процессе await, нужно использовать ContextVars. Чтобы прикрутить ContextVars, нужен Python 3.7+, нужно обновиться. В процессе обновления выясняется, что некоторая старая версия библиотеки официально не поддерживает новый питон, нужно собрать ее руками. Методом проб и ошибок находим коммит, с которого собиралась старая версия для старого питона, собираем для нового питона - результаты не сходятся, тесты падают!

Для начала нужно собрать минимальный воспроизводимый пример (в моем случае получился Dockerfile на 50 строк и примерно столько же Python-кода). Разбираем билд и видим, что библиотеке нужен с десяток shared зависимостей, для которых не всегда указаны версии. Можно найти какие-то древние логи на CI-сервере, который собирал библиотеку для старого питона, и из них достать какие-то куски информации. Их не хватает, и версии приходится перебирать бинарным поиском. Версии подобраны, они конфликтуют друг с другом, и склеить их вместе можно только странным перебором apt install ... && apt remove ... && apt install.

На все эти развлечения ушло уже три дня, и я не могу сказать, что приблизился к заветным request_id. А ведь сторонний наблюдатель с навыками эффективного менеджера вполне мог бы возмутиться: "че там делать вообще? завел переменную и клади в лог, делов-то".
More from @partially_unsupervised
  1. Sep 23, 2026Мои любимые HFT рекламодатели из Wunder Fund попросили рассказать про их новое соревновани…
  2. Sep 21, 2026Jev, про который говорят на каждом углу - это может и не революция технически, но чертовск…
  3. Sep 17, 2026Минутка рекламы. Если вы ненавидите двигать квадратики в джире так же люто, как и я, но ещ…
  4. Sep 8, 2026Не люблю комментировать релизы, но Astra (и, внезапно, gemini 3.8) вернули забытое чувство…
  5. Aug 24, 2026Мой соавтор по первой книжке не удержался и недавно заспойлерил вторую. А если шило в мешк…
  6. Aug 9, 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 →