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

Практика

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

Элемент пересекает порог прокрутки и фиксируется (position: sticky)Порог прилипанияПрокрутка страницы
Frontend10 минут

position: sticky не работает — где искать причину

Как диагностировать прилипание элемента при прокрутке и устранить ошибки в разметке или стилях

Схема фильтрации: из нескольких портов на сервере подключение принимает только один нужныйПорты на сервереПравильный порт
Платформа10 минут

Connection refused и timed out: что говорит текст ошибки

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

Схема фильтрации: из нескольких соединений в пуле выбирается одно рабочееПул соединенийРабочее соединение
Данные9 минут

Пул соединений: то их слишком много, то ни одного

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

Из нескольких CSS-правил применяется только одно, остальные отфильтрованы каскадомПравила CSSПрименено
Frontend9 минут

Стиль не применяется: кто победил в каскаде

Как диагностировать и исправлять проблемы с неприменяемыми стилями в CSS пошагово и без ошибок

Вложенный элемент с z-index 9999 оказывается ниже из-за контекста предка с z-index 19999 внутри 1
Frontend10 минут

z-index растёт, а элемент всё равно внизу

Как работают контексты наложения и почему z-index иногда игнорирует даже огромные числа

Три датчика дискового пространства: блоки в норме, записи о файлах зашкаливаютЗаписи о файлах
Платформа11 минут

Место на диске кончилось, а удалять нечего

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

Схема разделения: слева логи сервиса, справа зона запрета доступа, элементы пересекают границуЛоги сервисаДоступ запрещён
Платформа10 минут

Логи на сервере: почему в них «ничего нет»

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

Сравнение одномерной и двумерной раскладки: Flexbox и Grid как разделённые части одного поляFlexbox (одна ось)Grid (две оси)
Frontend9 минут

Flexbox или Grid: как выбрать раскладку

Как выбрать между Flexbox и Grid для разных элементов интерфейса и эффективно совмещать их в одном макете

Схема фильтрации: из нескольких ключей SSH выбирает единственный подходящий для авторизацииДоступные ключиПодходящий ключ
Безопасность8 минут

SSH отклоняет ключ: где искать причину

Как правильно настроить права на файлы и каталоги, чтобы SSH-сервер не игнорировал ключи

Три ключевые метрики Core Web Vitals: две в норме, одна выходит за пределы допустимогоЗадержка реакции
Frontend7 минут

Core Web Vitals: что действительно двигает оценку

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

Цепочка настройки HTTPS: от привязки домена до выпуска сертификата через проверкуПроверка доменаВыпуск сертификата
Платформа8 минут

HTTPS с нуля: сертификат, перенаправление, проверка

Как настроить HTTPS без ошибок и обеспечить безопасное соединение для всех пользователей сайта

Разделение подходов: проектирование от экранов и от структуры данныхЭкраны интерфейсаСтруктура данных
Backend8 минут

REST API: что решить до первого маршрута

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

Схема стыка: тесты на баги окупаются, тесты на утилиты — нетТест на багТест на утилиту
Backend8 минут

С каких тестов начинать, если их нет совсем

Как превратить баги в тесты и защититься от их повторного появления

Схема фильтрации: из нескольких общих ответов выбран один точныйОбщие ответыТочный ответ
AI/ML12 минут

Ответ модели плохой: что менять в запросе

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

Фильтрация: из случайных сбоев выделяется один чёткий багСлучайные сбоиЧёткий баг
Инструменты7 минут

Отладка: как искать причину, а не симптом

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

Сравнение путей пагинации: медленный и быстрый вариантыДолгое смещениеБыстрый курсор
Данные9 минут

Постраничная выдача: смещение против курсора

Как избежать проблем с пагинацией и ускорить запросы к большим наборам данных

Два подхода к инциденту: скрытие ошибок и их анализПоиск виноватогоРабочий постмортем
Платформа7 минут

Разбор инцидента: как написать так, чтобы его прочитали

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

Сравнение автоинкремента и UUID: разделённое поле с пересекающими границу элементамиАвтоинкрементUUID
Данные10 минут

UUID или автоинкремент: чем платят за каждый

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

Две части валидации: клиентская для удобства, серверная для безопасности, пересекающие границу системыУдобствоБезопасность
Frontend8 минут

Валидация форм: на клиенте, на сервере или везде

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

Три показателя веса страницы: HTML, CSS, JS в норме, изображения превышают допустимый весИзображения
Frontend8 минут

Картинки на сайте: форматы, размеры и ленивая загрузка

Как уменьшить вес изображений на сайте и ускорить загрузку страниц без потери качества

Четыре ключевых ресурса сервера: один из показателей зашкаливаетНехватка ресурса
Платформа8 минут

Сервер тормозит: команды первой минуты

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

Совпадение индекса с запросом и его отсутствиеИндекс подходитИндекс не подходит
Данные8 минут

Индексы в базе: какие ставить и когда они не спасают

Как индексы ускоряют запросы и почему иногда не работают несмотря на все усилия

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

Резервные копии: проверяем восстановление, а не наличие

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

Сигнал мониторинга пробивает порог сбоя до появления жалоб клиентовПорог сбояЖалобы клиентов
Платформа9 минут

Мониторинг с нуля: что включить в первую неделю

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

Схема разделенного поля: слева заголовки безопасности добавлены, справа сайт не работает из-за неправильной настройкиЗаголовки добавленыСайт сломался
Безопасность12 минут

Заголовки безопасности: какие ставить и что они ломают

Что ломается при неправильной настройке заголовков безопасности и как этого избежать

Разделение незавершённого кода и срочного исправления в продакшенеМусор в devФикс в master
Инструменты8 минут

Срочный фикс в master, когда в dev лежит несделанное

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

Стык версий приложения и базы: совместимость 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 закрыть