Обновить
64K+

TypeScript *

Cтрого типизированная надстройка для JavaScript

104,5
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Я написал сайт с кейсами CS2 целиком и выложил под MIT

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели1.9K

Открыл кейс — получил предмет. Между этими двумя событиями лежат HMAC, миллион тикетов и RTP, который кто-то посчитал заранее. Я написал сайт с кейсами CS2 целиком и выложил под MIT: про то, где в «provably fair» проходит граница между «проверяемым» и «выгодным», и почему 0,023% перекоса я оставил осознанно.

Читать далее

Новости

Тестируем смарт-контракты на Hardhat 3: node:test, viem и ни одного mocha

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели3.9K

Hardhat 3 выбросил mocha и chai и теперь тесты гоняет родной node:test, а с контрактом разговаривает viem. Гайды по миграции подробно рассказывают про конфиги и почти ничего не говорят про то, как теперь писать сами тесты. Я пишу свой учебный проект на новом стэк и собрал рецепт целиком: каркас теста, ассерты на события и кастомные ошибки, проверка балансов с учётом газа и пять ошибок, на которые успел наступить сам

Читать далее

JS/TS библиотека для транслитераций между 50 языками (2450 комбинаций)

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели6.2K

Обычно под термином транслитерация подразумевают написание русскоязычного текста latinskimi bukvami. Однако это лишь одна сторона транслитерации — романизация.

Существует множество библиотек, которые романизируют различные языки. Ещё меньше библиотек, которые транслитерируют в обратную сторону (то есть латиницу в нелатинскую письменность). И почти нет библиотек, которые транслитерируют между самыми разнообразными письменностями и языками — например, армянский в греческий, хинди в арабский, чешский в корейский, и так далее

Более того, существующие библиотеки часто не учитывают контекст и преобразовывают побуквенно. Результаты могут быть трудночитаемыми и нарушать всевозможные языковые правила. Например, 北海道 (Хоккайдо) становится Bei Hai Dao, بغداد (Багдад) становится bGdd, и так далее

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

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

Читать далее

ЮKassa, первый платёж в AI-продукте, купоны, анти-даблклик и запрет дублей подписки

Время на прочтение9 мин
Охват и читатели7.6K

ЮKassa создает платеж по запросу backend. Сервер передает сумму, валюту, режим capture, данные подтверждения, описание и Idempotence-Key. При confirmation.type=redirect ЮKassa возвращает адрес страницы оплаты. Frontend переводит пользователя на этот адрес.

Купон, проверка активной подписки и блокировка повторного POST работают на стороне приложения. В ЮKassa уходит уже рассчитанная сумма.

Ниже используется реализация из проекта AI-Chat, платежи в профиле пользователя, Render просыпается пару минут. Frontend написан на Next.js, платежный backend на Django REST Framework.

Читать далее

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

Уровень сложностиСредний
Время на прочтение37 мин
Охват и читатели9.5K

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

Я, Александр, автор телеграм-канала «Shulepov Code», поговорил с Александром Ломковым — фронтенд-разработчиком и автором YouTube-канала «Friendly Frontend». Обсудили рынок найма, переход из VK в Wildberries, нейросети в реальной разработке, React и его экосистему, серверный рендеринг и то, какие навыки становятся важнее самого умения писать код.  

Читать далее

Проектирование архитектуры плагинов для сторонних провайдеров баз данных в TypeScript-приложении

Уровень сложностиСложный
Время на прочтение2 мин
Охват и читатели9.7K

Я работал над архитектурой LibreDB Studio — IDE для баз данных на TypeScript, которая поддерживает несколько SQL/NoSQL баз данных.

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

Читать далее

Standard JSON Schema vs JSON Schema

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели10K

JSON Schema - стандарт для описания JSON. Standard JSON Schema - стандарт для… Нет, это не опечатка и не один и тот же стандарт дважды.

Читать далее

RWC. Реактивные веб-компоненты

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели7K

Год назад я выложил RWC — реактивные веб-компоненты на сигналах, без JSX и шаблонного компилятора. Статью прочитали восемь тысяч человек, тридцать оставили комментарии, после чего я переписал ядро. Рассказываю, что изменилось в 3.0, и отвечаю на главные претензии из комментариев: зачем это всё, если есть Lit, и правда ли Web Components так плохи, как о них говорят.

Читать далее

Как я почти перестал писать код: оркестрация ИИ-агентов и методология SAMO

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.7K

За последние два года я поймал себя на странной вещи: я почти перестал писать код руками. При этом программного обеспечения создаю, кажется, больше, чем раньше.

Теперь значительную часть работы делают Codex, Claude Code, Gemini и другие ИИ-агенты, а моя работа всё больше похожа на проектирование среды, в которой они могут безопасно работать.

Я попробовал пойти дальше и перестроить под ИИ саму архитектуру кодовой базы: ограничить пространство решений, превратить файловую систему почти в систему типов и запустить несколько агентов параллельно.

Расскажу, что из этого получилось, зачем появилась SAMO и почему главный вопрос AI-разработки, возможно, уже не «насколько хорошо ИИ пишет код», а «какую систему мы должны построить вокруг него».

Читать далее

Хорош хардкодить кривые MCP: превращаем любой скрипт в инструмент LLM за 2 секунды

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели8.1K

Давайте будем честны: текущее состояние вызова функций (Function Calling) у LLM и экосистемы MCP (Model Context Protocol) вызывает изжогу. Чтобы дать агенту дернуть локальный скрипт, разработчику предлагают сжечь 50k токенов на схемы ещё до начала диалога и завернуть всё в жирный Docker ради трёх строк кода.

Рассказываю, как работает 🛠️ toolhub - self-hosted движок на Bun, который превращает любой скрипт в навык агента за пару секунд, с иерархической файловой навигацией вместо плоских JSON-схем, федеративностью и поддержкой stateless+stateful MCP.

Читать далее

Мы сделали свой UI Kit: 6 компонентов превратились в 30+, а одна ошибка сломала разметку во всех проектах

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели5.3K

Мы сделали свой UI Kit: 6 компонентов превратились в 30+, а одна ошибка сломала разметку во всех проектах

С чего всё начиналось

Когда в проекте начинает появляться всё больше одинаковых элементов интерфейса, рано или поздно возникает вопрос: зачем каждый раз создавать один и тот же Button, Input или Select?

Мы рассматривали готовые решения, в том числе Ant Design и Material UI, но они не закрывали наши требования. Нам требовался больший контроль над внешним видом и поведением компонентов, возможность детально адаптировать их под наши задачи и учитывать требования проекта к безопасности.

Читать далее

i18n в Next.js без SEO-дублей, locale в маршрутах, metadata и hreflang

Время на прочтение11 мин
Охват и читатели6.8K

Перевод интерфейса меняет текст, но сам по себе не создаёт отдельную языковую страницу. Один адрес /search/music может показать английский или русский интерфейс в зависимости от client state, cookie или настроек браузера. URL при этом остаётся тем же.

Для поисковой индексации языковые версии удобнее разделить адресами:

Читать далее

Обновления GigaIDE за август 2026

Время на прочтение4 мин
Охват и читатели10K

Как обычно в начале следующего месяца мы рассказываем о том, что изменилось в GigaIDE за прошедший месяц. Соответствующий обзор за июль доступен здесь. Ниже обзор инкремента Pro-функционала GigaIDE за август, который уже доступен на нашем маркетплейсе.

Читать далее

Ближайшие события

Делимся состоянием приложения через URL

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.3K

В моём проекте пользователям нужно было делиться состоянием приложения через URL, не отправляя данные на сервер. Я описал, с какими ограничениями столкнулся, как выбирал решение для сжатия данных, и какие нюансы стоит учесть.

Читать далее

Cordis: плагинная архитектура как новый слой композиции JS/TS-приложений

Уровень сложностиСредний
Время на прочтение24 мин
Охват и читатели8.4K

Что изменится, если плагин станет не дополнением, а основной единицей архитектуры приложения? На примере Cordis и DeepSeek Harness разберём, как среда композиции управляет зависимостями, эффектами и жизненным циклом компонентов.

Сравним три способа доставки клиентских плагинов: виртуальные модули в общем графе сборки, Module Federation и собственную модульную систему DSH. Сопоставим Cordis с микросервисами и Kubernetes, обсудим его ограничения и роль в разработке, которую ведут независимые команды и AI-агенты. Затронем также метатеорию, лежащую в основе Cordis, и спекулятивную архитектуру, в которой сама композиция приложения становится предметом эксперимента.

Статья будет полезна архитекторам, техлидам и JS/TS-разработчикам, которые проектируют модульные продукты, плагинные платформы или системы с динамически подключаемыми AI-компонентами.

Читать далее

withComponentInputBinding: уменьшаем связанность, инвертируем зависимости

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели9.3K

В Angular проектах часто можно увидеть использование routed-компонентов, выполняющих оркестрирующую роль для своего роута. Они инжектят ActivatedRoute, достают из него параметры и по ним выполняют инициализацию с помощью доменных сервисов. Это кажется естественным и такой компонент принято считать smart container, «умным».

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

В статье рассказываю, как с помощью фичи withComponentInputBinding и резолверов можно инвертировать зависимости для routed-компонентов и уменьшить их связанность.

Читать далее

Пиротерапия от выгорания, или как я стал вайбкодером

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели91K

Привет, Хабр!

Представляю твоему вниманию AcroTab — приложение, которое должно быть у каждого уважающего себя гитариста (у меня, например, есть).

кг/ам tl;dr: https://acrotab.org

Читать далее

Vanilla Disintegrate — современные и эффектные анимации для веба

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели11K

Какие обычно бывают анимации в вебе? Появление, исчезновение, небольшой сдвиг, масштабирование. Они не обязательно плохие: чаще всего интерфейсу действительно не нужно ничего сложнее. Иногда лучшее решение — вообще не добавлять анимацию. Так интерфейс остаётся быстрым, понятным и не отвлекает от основной задачи. Но иногда хочется сделать один небольшой момент запоминающимся. Не длинную заставку и не тяжёлый спецэффект на весь экран, а короткую реакцию на действие пользователя. Меньше секунды — и удаление карточки, появление элемента или отмена действия уже ощущаются совсем иначе.

Читать далее

Как мы внедрили Knip в Angular-проект: от настройки до CI/CD

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.4K

Привет! Я Незар, фронтенд-разработчик в Т-Банке. Наш Angular-проект достаточно крупный, и со временем в нем накопился неиспользуемый код. Это замедляет разработку, усложняет рефакторинг и вводит в заблуждение новых членов команды. А ручная очистка такого «мертвого» кода требует огромных трудозатрат и быстро перестает быть эффективной.

Поэтому мы решили автоматизировать этот процесс с помощью Knip — статического анализатора для TypeScript. В статье я расскажу, как мы его настроили, интегрировали в pre‑commit и CI/CD и какие результаты получили.

Читать далее

Разработчики больше не нужны для релиза. Нужны JSON Schema и Monaco

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели10K

У нас было около сотни репозиториев-форков одного виджета — по одному на клиента, каждый на своей версии ядра, со своим CI и своим Nginx. Подключение клиента занимало две недели и разработчика. Сейчас — больше 800 брендингов на одной сборке, и новый клиент — это строка в базе. Рассказываю, как TypeScript-тип стал контрактом, JSON Schema — его исполняемой формой, а Monaco Editor — админкой для продажников. С кодом, цифрами из прода и рецептом на неделю.

Читать далее
1
23 ...