Webrium
Подписаться
Материалы/Разбор

Разбор

Как устроено и почему ломается именно так.

Схема совпадения заголовков CORS: разрешённый и заблокированный запросЗапрос разрешёнЗапрос заблокирован
Frontend9 минут

CORS: почему браузер блокирует запрос и что менять на сервере

Как браузер проверяет безопасность запросов и почему сервер должен правильно настраивать CORS

Фильтрация логов: из множества событий выделяется критичный сигнал для анализа сбоевВсе событияКритичный сигнал
Платформа7 минут

Уровни логирования: что писать, а что выключить

Как правильно выбирать уровни логирования и что писать в логах, чтобы быстро находить причины сбоев

Описание инструментов как контракт: стык сходится или расходитсясходитсяразошлось
AI/ML7 минут

Протокол вместо фреймворка: что изменилось в сборке агентов

Где проходит граница между вашим кодом и чужими системами и что протокол не решает

Контракт существует, только если записан отдельно от кода обеих сторонполе вне схемы
Данные6 минут

JSON как контракт: где он подводит

Формат, который читается без описания, обычно и передают без описания. Что записать отдельно от кода, чтобы обмен пережил расхождение версий.

Одна строка слева даёт столько строк результата, сколько нашлось пар справастрок на входе
Данные6 минут

Соединения таблиц: почему строк больше, чем ожидали

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

Вычисление переезжает внутрь процессав процессе
Данные6 минут

Слой трансформаций: движок в процессе против конвейера

Почему вычисление переезжает внутрь процесса и где эта схема ломается

Прокси как граница: часть данных пересекает её и теряетсяснаруживнутри
Платформа6 минут

Обратный прокси: что он решает и что ломает

Что он действительно снимает с приложения и что ломает молча

Независимые ожидания, запущенные вместе, занимают время самого медленногоожидания вместе
Backend6 минут

Асинхронность: что она ускоряет, а что нет

Асинхронность не ускоряет вычисления — она позволяет не простаивать в ожидании. Как понять, поможет ли она, до того как переписывать код.

Реестры пакетов: одно растёт, соседнее в той же нише сдуваетсярастётсдувается
Инструменты7 минут

Что растёт и что сдувается в экосистемах

Наш замер реестров: что команды сейчас кладут в сборки, а что перестали

Часть заданных вопросов остаётся без единого ответабез ответа
Инструменты6 минут

Где чаще всего остаются без ответа

Наш замер: без ответа остаётся то, что нельзя воспроизвести у себя

Две угрозы по разные стороны: одна закрывается хранилищем, другая — серверомчужой скриптчужой сайт
Безопасность6 минут

Токен в браузере: где его хранить

Вопрос о месте хранения решается моделью угрозы, а не удобством. Две популярные ответа защищают от разных вещей, и одно хранилище не даёт обоих свойств.

Конфликт — это пересечение двух намерений, а не поломка кодаслилось самоконфликт
Инструменты6 минут

Конфликт слияния: почему он ваш и что с ним делать

Конфликт означает не «код сломан», а «два намерения пересеклись». Почему выбор стороны — это потеря, и как разрешать, ничего не теряя.

Состояние бывает четырёх видов, и библиотека нужна только одному из нихвиды состояниянужна библиотека
Frontend6 минут

Состояние в React: когда нужна библиотека, а когда нет

Состояние бывает четырёх видов, и библиотека нужна только для одного. Как понять, для какого именно, и когда решение вообще пора принимать.

За порогом срока жизни системы цена содержания перевешивает скорость первой версиисрок жизницена содержания
Backend6 минут

Java никуда не делась: где она осталась и почему

Решение о языке принимает не мода, а тот, кто платит за содержание системы десять лет. Что стоит считать, прежде чем спорить о синтаксисе.

Из трёх причин медленной работы за шкалу выходит ожидание, а не вычислениеожидание
Backend6 минут

Python тормозит: что действительно ускоряет

Под «медленно» прячутся три разные ситуации, и лечатся они по-разному. Как понять, в какой вы, прежде чем переписывать код на другом языке.

Между массовыми темами и новыми инструментами разрыв по числу публичных ответов в четыре порядкамассовые темыдлинный хвост
Инструменты6 минут

Новые инструменты живут без вопросов

У инструмента, о котором все говорят, может не быть ни одного публичного ответа о себе. Разрыв между массовыми и новыми темами — в четыре порядка.

Поток публичных вопросов держался ровно, а затем пробил порог вниз и не восстановилсяпоток вопросовпо годам
Инструменты6 минут

Куда делись вопросы разработчиков

Публичный архив ответов по программированию перестал пополняться: по пяти крупнейшим темам поток вопросов упал в двадцать раз. Что это меняет в оценке задач.

Два стыка: CSS встроен в конвейер рендеринга и совпадает с кадром, JS-наблюдатель стоит снаружи и разошёлся — опаздывает на кадрCSS в конвейереJS опаздывает
Frontend9 минут

Что современный CSS убрал из вашего JS

Почему JavaScript-наблюдатели за внешним видом опаздывают на кадр, какие механизмы CSS решают эти задачи внутри конвейера рендеринга и где скрипты остаются обязательными

Вложенные слои: снаружи отказ модели выглядит как один — «отвечает неверно», — но в глубине скрыты два разных отказа: у модели нет знания или она не воспользоваДва разных отказа
AI/ML8 минут

Дообучение или поиск по документам: как выбрать

Почему дообучение и поиск по документам лечат разные отказы, и как понять, какой именно мешает вашей модели

Цепочка из пяти шагов агентного цикла; последний шаг, внутри которого тянется ожидание, пересекает пунктирную границу бюджета времени — лимит шагов времени не обюджет временишаг с ожиданием
AI/ML9 минут

Бюджет времени в многошаговом агенте

Почему лимит шагов и таймаут страхуют агентный цикл от разных отказов и как выбирать бюджеты, которые ограничивают именно то, что вы думаете

Шесть растущих столбцов: при том же коде контекст запроса агента увеличивается с каждым шагом истории, в продакшене уходя далеко за уровень показаКонтекст растёт
AI/ML8 минут

Агенты в продакшене: что отказывает на второй неделе

Сбои многошаговых агентов почти никогда не начинаются с модели. Они выводятся из арифметики шагов — и поэтому предсказуемы до запуска.

Вложенные слои лейкхауса: дешёвое объектное хранилище, внутри него открытые файлы, а в глубине выделена таблица с транзакциями — складские гарантии без второй кТаблица из файлов
Данные8 минут

Lakehouse без хайпа: что реально поменялось

Разбираем, чем плоха связка озера и склада, почему внешние таблицы не спасают, как лейкхаус даёт транзакции поверх открытых файлов и во что это обходится

Поле, разделённое швом: слева данные как есть, справа — как их ожидают; элементы пересекают границу, показывая расхождение между реальной схемой и ожиданиямиданные как естькак их ожидают
Данные9 минут

Схема поехала: пять способов узнать об этом первым

Почему дрейф схемы первым замечает потребитель, почему процессные договорённости и красные джобы его пропускают и как устроены пять автоматических проверок на пути данных

Поле разделено швом «use client»: элементы-пропсы пересекают границу между сервером и клиентом и становятся сетевым контрактомсерверклиент
Frontend8 минут

Серверные компоненты: год в продакшене

Вы узнаете, как серверные компоненты пересылают дерево по проводам, почему проп через границу становится частью сетевого контракта и какие поломки модели предсказуемы заранее

Шесть ровных по высоте столбцов — скорость WebAssembly — идут выше пунктирной линии плана с самого первого столбца: коду не нужен разогревСкорость со старта
Frontend10 минут

WebAssembly: где он уже окупается

Откуда у WebAssembly берётся скорость, какой ценой она достаётся и почему переписать самую тяжёлую функцию — не решение, а тупик

Стык инструкции с реальностью: у golden path шаги и система совпадают, у документации текст разошёлся с жизньюшаги зашиты в кодтекст разошёлся
Платформа8 минут

Golden path вместо документации

Почему документация гниёт, почему её нельзя спасти процессами и ревью, и как golden path делает стандартные операции исполняемыми

Фильтр выбора: из нескольких языков для микросервисов проходит один — Go, ставший дефолтом платформыЯзыки для сервисовGo — дефолт
Backend9 минут

Почему Go стал платформенным дефолтом

Почему горутины, планировщик и статическая линковка делают Go дефолтом для микросервисных платформ — и где те же свойства начинают вредить

Сетка сервисов: закрашены лишь три ячейки — случаи, где Rust окупается; рядом счётчик сэкономленных машинЭкономия машин
Backend6 минут

Rust в сервисах: где окупается, а где нет

Спор давно идёт не о скорости. Решающими оказываются два фактора, и ни один из них не технический.

Шесть столбцов растут ступеньками от первой попытки к шестой: каждая повторная попытка оплачивается полностью, и счёт за один и тот же вызов вырастает кратноПлатим за попытки
AI/ML9 минут

Повторы, которые удваивают счёт

Разбираемся, почему счёт за API языковых моделей растёт при неизменном продукте, как повторные попытки превращаются в умножение затрат и что чинить на самом деле

Поле, разделённое швом: элементы OpenTelemetry пересекают границу между тем, что уже стало стандартом, и тем, что остаётся удобным клеемСтало стандартомУдобный клей
Платформа9 минут

OpenTelemetry: что стало стандартом, а что ещё нет

Разберёмся, какие слои OpenTelemetry действительно стали стандартами, а какие остаются удобным клеем, и почему граница проходит именно между ними

Сетка из пятнадцати ячеек изображает ленту лога: девять заняты событиями, а рядом отдельный счётчик показывает лишь четыре причины решений — лента отвечает «гдепричины решений
Платформа9 минут

Трассировка шагов вместо логов

Как заменить ленту логов на дерево шагов, чтобы видеть не только где упало, но и почему агент решил именно так

Цепочка шагов конвейера CI: чужой код входит, исполняется с ключами, и последний шаг — публикация — штатно выводит секрет за границу доверияграница довериясекрет наружу
Безопасность9 минут

Секреты в CI: пять типовых утечек

Разберём, почему хранение секретов в хранилище и маскирование логов не спасают от утечки, и покажем пять мест, где конвейер CI теряет ключи

Письмо по вторникам

Один разбор недели и короткий список того, что изменилось. Без дайджестов на сорок ссылок.

Начните вводить — материалы появятся здесь.

выбрать · Enter открыть · Esc закрыть