Category : javascript

javascript
Промпт не удержал медицинскую границу. Как мы добавили LLM-тренеру страж на регулярках

В 1trAIner ИИ-тренер отвечает спортсменам в чате, пишет планы и разбирает тренировки. Сервис информационный: диагнозов не ставит. В системном промпте с самого начала было правило «при боли и травме — к врачу». Мы считали вопрос закрытым, пока не начали проверять ответы на трёх языках.Ниже — как мы нашли дефект, почему промпт его не лечит и что сделали кодом. С цифрами, в том числе неудобными.Как нашлиМы переводили продукт на английский и китайский. Для приёмки завели тестовые аккаунты и прогнал…

  • четверг, 17 сентября 2026 г. в 00:00:06
javascript
Почему баги кроссбраузерности до сих пор никуда не исчезли

Выкатили новую фичу, а потом бэкендер со своим Firefox пишет, что у него что-то не работает? Или пользователь с Safari жалуется на неудобства? Ничего страшного: поищем причину в интернете, починим баг и продолжим использовать для разработки Chrome </sarcasm>.В этой статье рассмотрим, почему проблемы кроссбраузерности никуда не пропали в 2026 году, и попробуем понять, как заранее определять появление ошибок.СтатистикаУже продолжительное время Chrome лидирует среди всего многообразия браузе…

  • среда, 16 сентября 2026 г. в 00:00:08
javascript
Тестируем смарт-контракты на Hardhat 3: node:test, viem и ни одного mocha

Hardhat в третьей версии решили не мелочиться, взяли и сменили весь тестовый стек. Вместо привычной связки mocha + chai + ethers теперь такой родной node:test и viem. Апгрейд-гайды в основном рассказывают, как мигрировать конфиг, а вот как теперь писать тесты - материала заметно меньше. Я не так давно, буквально несколько дней назад, писал свой учебный проект на Hardhat 3 и собрал рецепт целиком. От init до ассертов на балансы. Всё из этой статьи ты сможешь повторить за вечерТестировать будем м…

  • среда, 16 сентября 2026 г. в 00:00:06
javascript
Марио про джуна: платформер на 40 КБ без файлов графики и бот, который проверяет каждый уровень пер…

Всем привет! Я фронтендер и по вечерам делаю пет-проект Workaem, агрегатор IT-вакансий. Как-то захотелось сделать рядом с ним что-нибудь несерьезное, и за выходные получилась аркада в духе Марио, только про карьеру в IT. Назвал я ее «Путь джуна». Вместо грибов тут офферы, вместо черепах легаси, а в замках вместо дракона сидят собеседования, от тестового задания до финального.Потом я еще пару вечеров ее доделывал, и по дороге всплыло много такого, с чем я как фронтендер раньше не сталкивался. Фи…

  • среда, 16 сентября 2026 г. в 00:00:06
javascript
Standard JSON Schema vs JSON Schema

Чёрт, как же я люблю стандарты! Живёшь и радуешься: наконец-то почти во всё можно воткнуть USB-C… Ладно, статья не про USB-C, а про то, что в 2026 году JSON Schema наконец обзавелась “Стандартом”!Простите, теперь серьезно. JSON Schema и сам по себе стандарт, причём старый, и даже не один: первое предложение в 2007-м, draft-04, draft-07, draft-2020-12, openapi-3.0, и они не заканчиваются.Описывать JSON с помощью JSON - что может быть лучше? Вот что такое JSON Schema:{ "type": "obje…

  • вторник, 15 сентября 2026 г. в 00:00:13
javascript
Проектирование архитектуры плагинов для сторонних провайдеров баз данных в TypeScript-приложении

Я работал над архитектурой LibreDB Studio — IDE для баз данных на TypeScript, которая поддерживает несколько SQL/NoSQL баз данных.Работая над слоем провайдеров, я пришёл к довольно строгой архитектуре провайдеров, чтобы сделать добавление новых баз данных безопаснее и сократить объём основного кода, который нужно менять.Я написал об этой архитектуре здесь:https://libredb.org/blog/building-universal-database-provider-typescript/Текущий процесс добавления провайдера задокументирован здесь:https:/…

  • вторник, 15 сентября 2026 г. в 00:00:12
javascript
Уведомления для Slack в Allure 3

Уведомления о результатах прогонов — важный элемент удобства при работе с тестами. Вместо того чтобы каждые пять минут проверять, закончился прогон или нет, вы просто получаете сообщение в Slack. Меньше отвлекающих факторов, больше времени в состоянии потока.В Allure Report такие уведомления были реализованы в версии 3.0 с помощью плагина для уведомлений в Slack. В этом руководстве я покажу, как настроить канал в Slack так, чтобы каждый запуск Allure Report отправлял туда сводку по результатам.…

  • вторник, 15 сентября 2026 г. в 00:00:10
javascript
React в 2026 году: вайб-кодинг, Next.js, рынок и фронтенд после прихода ИИ — интервью с Александром…

React давно перестал быть просто библиотекой для отрисовки интерфейсов. Вокруг него выросла огромная экосистема, а сама работа фронтенд-разработчика меняется под влиянием ИИ быстрее, чем успевают обновляться привычные roadmap. Нужно ли сегодня глубоко знать JavaScript, стоит ли учить Next.js «по умолчанию», чем React выигрывает у Angular, что не так с вайб-кодингом и останется ли вообще ручное написание кода через пять лет?Я, Александр, автор телеграм-канала «Shulepov Code», поговорил с Алексан…

  • вторник, 15 сентября 2026 г. в 00:00:09
javascript
JS/TS библиотека для транслитераций между 50 языками (2450 комбинаций)

Когда транслитерация свернула не туда (взято отсюда)В чём проблема?Обычно под термином транслитерация подразумевают написание русскоязычного текста latinskimi bukvami. Однако это лишь одна сторона транслитерации — романизация (или латинизация), которая преобразовывает любую нелатинскую письменность в латиницу, например:китайский / японский / корейский / хинди / арабский / греческий / русский > латиница / английскийСуществует множество библиотек, которые романизируют различные языки. Ещё мень…

  • вторник, 15 сентября 2026 г. в 00:00:07