Перейти к содержанию

Статьи

Почему не стоит проверять email сложными регулярными выражениями
04 ноября, 2025
Когда проверка email через regex избыточна и как правильно убедиться, что введённый адрес верный.
Сводка по переносу и обрезанию текста
14 октября, 2025
Краткое руководство по CSS-свойствам для переноса и обрезания текста: overflow-wrap, text-wrap, word-break, white-space и text-overflow.
Типизация as const
25 сентября, 2025
Строгая типизация и неизменяемость объектов в TypeScript: как с помощью as const и satisfies проверять правильность полей и фиксировать значения литералов.
Модульность и видимость экспортов
26 августа, 2025
Экспорты из модулей видны глобально, перегружают автодополнение в IDE и мешают инкапсуляции кода — разбор проблемы и возможные обходные пути.
Запуск TypeScript напрямую в Node.js
21 августа, 2025
Как запускать TypeScript-файлы напрямую, без промежуточной транспиляции, используя современные версии Node.js.
Telegram Mini Apps: быстрый старт
19 августа, 2025
Как быстро создать Telegram Mini App — простая регистрация бота через BotFather и ссылка на ваш сайт.
Отслеживание метрик и зависимостей JS-проектов в GitHub
05 августа, 2025
Веб-сервис для отслеживания метрик и зависимостей GitHub-репозиториев: звёзды, форки, issues, зависимости. Быстрая настройка, локальное хранение, никакого развёртывания — простой и наглядный дашборд для ваших пет-проектов.
ESLint плагины: pinia
31 июля, 2025
Плагин для ESLint, который помогает следить за стилем и архитектурой сторов Pinia. Поддерживает рекомендованные правила, проверку структуры и нейминг.
ESLint плагины: markdownlint
29 июля, 2025
Плагин для ESLint, который проверяет Markdown-файлы по правилам markdownlint. Удобен при работе с документацией, README и статьями. Поддерживает конфигурацию, свои правила и autofix.
ESLint плагины: compat
24 июля, 2025
ESLint-плагин, который проверяет совместимость вашего кода с целевыми браузерами. Простое подключение, поддержка polyfill'ов, настройка через browserslist.
Автоматические size-метки для Merge Request в GitLab CI
22 июля, 2025
Как автоматически выставлять метки size/M и size/XL в Merge Request в GitLab CI на основе количества изменений.
Почему можно (и нужно) отказаться от Prettier
17 июля, 2025
Отказ от Prettier — почему популярный форматтер кода теряет актуальность и как ESLint стал удобной и гибкой альтернативой.
Как я написал свой Stylelint-плагин
15 июля, 2025
Как создать собственный Stylelint-плагин: от базового API до поддержки autofix. Обрабатываем CSS-токены и избавляемся от ручной замены значений с помощью PostCSS.
Vue, TypeScript и импортированные типы: что может пойти не так?
10 июля, 2025
Почему Vue-компоненты в defineProps работают некорректно с импортированными типами? Как работает компиляция props, и почему помогает локальное объявление типов.
Альтернатива Postman и Insomnia
08 июля, 2025
Postman и Insomnia стали перегруженными и обросли платными функциями. Новая альтернатива — Yaak. Лёгкий REST-клиент с базовым набором функций.
Скачиваем приложение с RuStore без регистрации
03 июля, 2025
Скачать APK из RuStore без регистрации через официальный API: как получить информацию о приложении и скачать APK с RuStore.
Поиск влитых git-веток и связанных задач
01 июля, 2025
Как находить влитые git-ветки и проверять связанные задачи в трекере. Упрощает очистку репозитория после релизов и помогает не потерять важное.
Добавление иконки перед ссылкой
27 июня, 2025
Как с помощью CSS автоматически добавлять иконки к ссылкам на внешние ресурсы — без JavaScript и с учётом безопасности.
Быстрая очистка node_modules
25 июня, 2025
Как с помощью npkill находить и удалять папки node_modules одним нажатием — освобождая гигабайты дискового пространства за пару минут.
Типизированные customEvents
23 июня, 2025
Как реализовать типизированный CustomEvent-сервис на Vue с автодополнением, строгими типами и поддержкой useEventListener из VueUse.
Spellcheck для любого текста
20 июня, 2025
Как настроить проверку орфографии в коде с помощью cspell — поддержка русского и английского, словари, маски и интеграция в проект.
Очистка node_modules от устаревших полифилов
18 июня, 2025
Как найти и удалить устаревшие полифилы из node_modules с помощью nolyfill, чтобы ускорить установку, сборку и запуск JavaScript-проекта.
Pinia: запрет неявной мутации state
16 июня, 2025
Как запретить неявную мутацию состояния в Pinia с помощью TypeScript, чтобы изменения были явными и контролируемыми, улучшая стабильность приложения.
Агрегатор информации по доменным зонам
13 июня, 2025
Удобный агрегатор tld-list собирает цены, условия и возможности WHOIS privacy по доменным зонам, чтобы легко выбрать лучший регистратор и тариф.
Pinia: стоит ли использовать setup store
11 июня, 2025
Разбираемся, стоит ли использовать setup store в Pinia: плюсы, ограничения и почему option store пока остаётся надёжным выбором для большинства проектов.
Переход с CommonJS на ESM
09 июня, 2025
Почему стоит перейти с CommonJS на ESM, какие преимущества даёт новый формат модулей и когда миграция может вызвать проблемы.
Аннотации над текстом с тегом ruby
06 июня, 2025
Как добавить надстрочные пояснения к словам с помощью тега <ruby>. Применяется как для японского, китайского, так и любых других языков.
Типизация querySelector
04 июня, 2025
Улучшенная типизация querySelector и querySelectorAll с typed-query-selector для точного вывода типов элементов на основе CSS-селекторов в TypeScript.
Улучшение дефолтного поведения TypeScript
02 июня, 2025
Утилита ts-reset улучшает стандартную типизацию TypeScript, делая API строже и безопаснее без изменения существующего корректного кода.
Автообновление npm зависимостей
28 мая, 2025
Удобный способ автоматического обновления npm-зависимостей с помощью npm-check-updates: больше контроля, фильтры и интерактивность для простого поддержания актуальности проекта.