
Первая страница на HTML и CSS: пошаговая инструкция
За полчаса вы соберёте страницу с шапкой, карточками и адаптивной сеткой — в текстовом редакторе и браузере, без сборщиков и фреймворков. Всё копируется и открывается локально.

За полчаса вы соберёте страницу с шапкой, карточками и адаптивной сеткой — в текстовом редакторе и браузере, без сборщиков и фреймворков. Всё копируется и открывается локально.
Миграция ощущается как замедление: билд дольше, разработчики жалуются на ошибки типов. Разбираем, что реально измерить до и после перехода и как отделить пользу от накладных расходов.

После включения strict в tsconfig сборка прошла зелёной, а в продакшене платёжный виджет начал падать с TypeError. Разбираем, где типы соврали и почему компилятор пропустил ошибку.

Проект перевели с JavaScript на TypeScript, но половина файлов до сих пор пестрит any, а сборка молчит про реальные баги. Разбираем, что искать на ревью и какие места миграции ломаются первыми.

Код, который проходит ревью по типам, падает в проде на объёме: Promise.all кладёт память, any прячет невалидные данные, JSON.parse без валидации роняет обработчик. Разбираем формулировки замечаний, которые ловят это до релиза.

Что реально стоит писать в комментариях к пулл-реквесту на TypeScript: не про табы и точки с запятой, а про any, приведения типов и утечки типовой безопасности через границы модулей.

Минификация урезала бандл на 15%, а Time to Interactive не сдвинулся. Разбираем, что в размере бандла реально бьёт по скорости, а что — оптимизация ради строчки в отчёте.

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

Горячий цикл на Node.js внезапно замедляется в разы после релиза, а профиль показывает время в интерпретаторе вместо JIT. Разбираем, как V8 деоптимизирует функции и что рушит скрытые классы первым.

Один процесс Node упирается в одно ядро и деградирует раньше, чем кончается CPU. Разбираем, что ломается первым при масштабировании через cluster и worker_threads и как это увидеть в метриках.

Один процесс Node.js использует одно ядро. Разбираем, когда спасает cluster, когда worker_threads, а когда ни то ни другое — и чем платите за каждый вариант.

Процесс Node растёт до 1,5 ГБ за сутки, потом падает с heap out of memory. Разбираем, как снять heap snapshot, найти удерживаемые объекты и закрыть типовые источники утечек.