Reading view

Мой сайт грузился две секунды, потому что каждый CSS-файл писал в базу данных

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

Я померил: страница кабинета грузилась 2,1 секунды. При этом сервер отдавал HTML за 30 миллисекунд. Первый час я искал не там — потому что померил не ту страницу.

Всё решил один замер. Я дёрнул один и тот же CSS-файл десять раз с кукой сессии и десять раз без неё: 55 мс против 14 мс. За файл с диска. Оказалось, аутентификация делала SELECT, UPDATE и COMMIT в SQLite на каждую картинку и каждый скрипт — сорок раз за страницу, чтобы сорок раз переписать один и тот же таймстамп.

Вторым тормозом был Tailwind, который компилировал стили в браузере у каждого посетителя. Стало 0,9 секунды.

А потом я сел делать скриншоты для этой статьи и за двадцать минут нашёл ещё два бага, которые спокойно жили в проде. И чуть не уронил чат, исправляя найденное.

Код открыт

Смотреть, как я это нашёл
  •  

Необанк своими руками. Какие провайдеры нужны для запуска крипто-финтеха в 2026 году?

Не знаю, как вы, а я всегда хотел свой банк… Долгое время это было почти недостижимо: лицензия, многомиллионный капитал и годы переписки с регулятором. Но за последние пару лет многое изменилось: теперь необанк можно собрать из нескольких готовых провайдеров, не имея ни лицензии, ни миллионов. Мы прошли этот путь сами, и теперь я хочу рассказать, из каких этапов он состоит и каких провайдеров стоит выбрать.

Читать далее
  •  

Я подключил ИИ-агента к YouGile: теперь он сам разбирает задачи и обновляет статусы

ИИ-агент может не только писать код, но и сам забирать задачи из YouGile, выполнять их и обновлять статусы. Рассказываю, как я связал Codex и Claude Code с таск-трекером, почему обычный retry после timeout однажды создал дубли и зачем между LLM и API нужен отдельный детерминированный слой.

Читать далее
  •  
❌