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

Практика

Что делать руками, по шагам и с условиями.

Стык версий приложения и базы: совместимость vs конфликтСовместимая схемаНесовместимая схема
Данные9 минут

Миграции базы без простоя: порядок, который работает

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

Цепочка запроса: прокси передаёт запрос, но бэкенд не отвечаетПроксиБэкенд не ответил
Платформа11 минут

502 и 504: кто именно не ответил и что чинить

Как диагностировать и устранять ошибки 502 и 504, чтобы восстановить работу серверной инфраструктуры

Три показателя безопасности паролей: два в норме, один за шкалой — отсутствие солиБез соли
Безопасность11 минут

Пароли пользователей: как хранить и что проверить сегодня

Как определить уязвимости в хранении паролей и быстро исправить их в своём проекте

Ответ из кеша совпадает с источником или разошёлся с нимсовпалоустарело
Frontend6 минут

Кеширование по HTTP: заголовки, которые действительно работают

Срок годности и проверка — разные механизмы, и путают их чаще всего

Потребление растёт и не выходит на полкурост без полки
Backend7 минут

Память течёт: как найти и чем мерить

Порядок действий, который доводит до причины, и порядок, который нет

Момент, местное время и намерение на будущее хранятся по-разномумомент внутри
Backend6 минут

Время в приложении: где оно ломается

Под одним словом прячутся момент, местное время и намерение на будущее. Путаница между ними двигает встречи и ломает суточные отчёты.

Срок сертификата как порог, который пересекается молчасроквремя
Безопасность6 минут

Сертификат истёк: почему это повторяется

Почему напоминание в календаре не спасает и чем его заменить

Что проверяет браузерный тест, а что остаётся человекуавтоматомруками
Инструменты6 минут

Браузерные тесты: что автоматизировать, а что оставить руками

Что проверять браузером, что оставить глазам и как пережить с этим полгода

Выражение не сокращают, а разбирают на именованные части — как кодстрокисовпало
Инструменты6 минут

Регулярное выражение, которое можно поддерживать

Выражение пишут один раз, а читают годами. Что делает его поддерживаемым и где регулярные выражения — неправильный инструмент.

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

Скрипт на shell, который не сломается

Shell по умолчанию продолжает работу после ошибки. Четыре строки в начале файла переводят скрипт из режима «молча делает не то» в режим «останавливается и говорит».

Время съедает один шаг плана выполнения, а не запрос целиком: искать надо его, а не вешать индекс наугадшаги планадорогой шаг
Данные6 минут

Медленный запрос в PostgreSQL: с чего начинать

Порядок действий, который дешевле наугад повешенного индекса: статистика, план выполнения, условие — и только потом индекс.

Кеш сборки держится до первого изменившегося шага: всё, что ниже, пересобирается зановокеш держитсяпересобирается
Платформа6 минут

Образ, который собирается минуту вместо десяти

Время сборки определяется не объёмом работы, а тем, какая её часть выполняется заново. Одна перестановка строк даёт больше, чем подбор базового образа.

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

Доступность как инженерная задача, а не как галочка

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

Сетка прогонов агента: успешными заполнена лишь часть ячеек, рядом счётчик типов отказовтипы отказов
AI/ML9 минут

Оценка качества агента до релиза

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

Линия жёстких отказов агента пробивает порог и зажигает сигнал дежурному, а мягкие отказы остаются под порогом и сигнала не даютжёсткий отказэпизоды дежурства
AI/ML8 минут

Дежурство по агенту: порядок действий

Как дежурному по агенту отличить жёсткий отказ от мягкого, не тратить время на рестарт и откат и найти причину по трассе одного эпизода

Вложенность: агент внутри плана работ, в глубине выделен; границу его ответственности проводят снаружи, а не изнутриГраница — снаружи
AI/ML9 минут

Что агент не делает: список, который пишут заранее

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

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

Контракты данных: как перестать чинить отчёты

Чем настоящий контракт данных отличается от страницы в вики, из каких четырёх частей состоит и с какого отчёта начинать внедрение

На шкале времени жизни экрана величина — момент, когда становятся известны входные данные, — пробивает пороговую линию между сервером и клиентом: если данные изсервер/клиентвремя жизни экрана
Frontend9 минут

Где проходит граница клиент — сервер

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

Вложенные слои — поколения модных инструментов; в самой глубине выделен старый механизм, то, что осталось живым.старые механизмы
Платформа9 минут

Деплой без кластера: что осталось живым

Что кластер даёт на самом деле, почему однонодовый вариант — тупик и как выкатывать сервисы через релиз-каталоги, атомарный симлинк и systemd

Цепочка релизных шагов — окружение, пайплайн, выкатка, доступы, — последний шаг выходит за границу продуктовой работы: команды тратят время на обвязку, а не на граница продуктаобвязка
Платформа8 минут

Платформенная команда: когда её заводить

Как посчитать на ваших числах, когда платформенная команда окупается, почему стандарты и одиночный инфра-инженер не спасают, и что проверить перед стартом

Два стыка: при честном протоколе замера результат стенда совпадает с поведением продакшена, при дефолтном прогоне — расходится с нимчестный протоколдефолтный прогон
Backend9 минут

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

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

Поле разделено швом процесса: код слева проверен типами, внешние данные пересекают границу без проверкивнутри процессавнешние данные
Backend9 минут

TypeScript в рантайме: что типы не проверяют

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

Четыре индикатора статей бюджета: инфраструктура, лицензии и оплата труда в норме, а стрелка строки ИИ уходит за пределы шкалыза шкалой
AI/ML7 минут

Как объяснить совету директоров затраты на ИИ

Почему обещанная окупаемость превращает защиту бюджета в допрос и как сменить форму заявки на измеримую цену одной задачи

Два маршрута: короткий дорогой — погоня за одной цифрой точности, длинный дешёвый — набор метрик под разные режимы отказаодна цифранесколько метрик
AI/ML8 минут

Что мерить у модели кроме точности

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

Из шести алертов в канале лишь один требует действия дежурного, остальные проматываютсяпоток алертовтребует действия
Платформа9 минут

Алерты, на которые перестали смотреть

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

Четыре показателя-поля трейса: ID запроса, шаг вызова и код ошибки в норме, а тело запроса уходит за шкалу — его место в архиве, а не в трейсетело запроса
Платформа8 минут

Что писать в трассировку, а что нет

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

Два маршрута обновления зависимостей: короткий путь откладывания обходится дорого, длинный путь регулярных обновнений — дёшевоОтложить — дорогоОбновлять — дёшево
Безопасность8 минут

Политика обновления зависимостей, которую соблюдают

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

Сетка ячеек — список активов компании, заполнена лишь часть; рядом счётчик показывает большее число: столько всего о компании видно снаружи, чего нет в списке.видно снаружи
Безопасность9 минут

Что о вашей компании видно снаружи

Как бесплатно проверить, что о вашей компании видно постороннему: DNS, публичные журналы сертификатов и другие открытые источники, которые выдают забытые активы

Среди нескольких сборок поиском выделена одна — та, что содержит искомую библиотеку: так перечень отвечает на запрос вместо мёртвого файлавсе сборкиесть библиотека
Безопасность9 минут

Цепочка поставок: перечень, который кто-то читает

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

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

Git-приёмы, которые перестают быть страшными

Как на самом деле git хранит историю, почему опасные команды почти ничего не удаляют, когда работа теряется безвозвратно и как вернуть её через reflog

Шесть столбцов потерь времени в терминале: видимые потери — нажатия, опечатки, повторяемые пути — низкие, а невидимые — вспомнить команду, найти каталог, восстаЧасы — не в наборе
Инструменты9 минут

Терминал, который экономит часы, а не минуты

Почему быстрые эмуляторы и алиасы не экономят время, где теряются настоящие часы и как проверить это на своём рабочем дне

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

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

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

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