Обновить
256K+

JavaScript *

Прототипно-ориентированный язык программирования

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

Языковая Модель без магии: Крошечная Language Model на чистом Node.js

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

Мы создаем крошечную языковую модель с нуля на чистом Node.js без использования TensorFlow или PyTorch, реализуя нейроны, автоград, эмбеддинги, механизм самовнимания (self-attention), полносвязную сеть (FFN), обратное распространение ошибки и SFT, одновременно наблюдая за тем, как отдельные веса и целые матрицы изменяются в процессе обучения

Это не новая GPT и не прод ML...

Новости

Фронтенд никогда не умрёт

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

Каждые пять лет я слышу одно и то же: фронтенд больше не нужен, ему остался последний год. Сначала говорили про визуальные конструкторы - Wix, Tilda, все дела. Потом, когда ИИ выстрелил, начали хоронить разработчиков под флагом «AI напишет тебе кнопку за секунду». А сейчас новая мода - фулстекеры. Приходят такие ребята и говорят: «Да зачем нам отдельный фронт, я сам и бэк, и фронт на коленке соберу, проект сэкономит, все будут счастливы».

Давай просто выдохнем и разберемся, что на самом деле происходит, без паники и хайпа.

Читать далее

2 года в Obsidian: мой workflow, архитектура заметок, плагины и синхронизация

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

Около двух лет я использую Obsidian как основное приложение для ведения заметок, планирования и написания статей. В этой статье я хочу поделиться своим полным workflow: от распределения заметок по папкам и горячих клавиш до детального Cheatsheet по хранилищу и организации метода Zettelkasten.

О чём будет статья:

Архитектура папок (где и что хранится, а также подробный Cheatsheet.md, который я составлял для себя).

Плагины, которые я использую.

Настройка Homepage и каталога книг.

Синхронизация ПК + телефон (плагин Git + Termux на телефоне, у меня репозиторий в Gitea).

Сразу уточню: Obsidian становится действительно удобным только тогда, когда человек сам собирает под себя хранилище и находить подходящий ему метод. Ниже я разбираю реализацию по частям, чтобы каждый мог изучить интересующий блок, взять полезные идеи или настроить всё аналогично у себя.

Читать далее

Ваш AI-агент не понимает код. Он просто очень уверенно угадывает — поэтому мы создали SLICER

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

AI-агенты отлично решают локальные задачи, но часто теряют связи между частями большой кодовой базы. Из-за этого изменение одной функции может незаметно сломать frontend, backend-роут, сервис, repository, background task или тест.

В статье разбирается CodeSlicer — локальный CLI, MCP-сервер и визуальный анализатор, который строит проверяемый граф влияния проекта. Он связывает функции, классы, DI-провайдеры, HTTP-endpoint’ы, frontend-компоненты и тесты, сохраняя evidence chain, provenance, confidence и причины каждой связи.

Показывается полный pipeline: inventory, extraction, semantic resolution, support packs, unknown regions, mutation testing, runtime observation и impact analysis. Отдельно разобрано, почему система не должна превращать предположение AI в подтверждённое ребро.

На размеченных Python-сценариях протестированы 21 тестовый сценарий, 29 mutation-сценариев, 20 обязательных semantic edges, 0 false positive и 0 false negative. Для TypeScript и frontend-backend bridge проверены 12 сценариев, 15 мутаций и 4 cross-language цепочки с endpoint precision 1.0.

Также рассматриваются интеграции с AI-агентами через CLI, MCP и skills, отличие CodeSlicer от обычных графов кода и дальнейшее развитие проверенного registry библиотек

Читать далее

пошКОДим: как превратить React-компонент в неуправляемый комбайн — 15 вредных советов

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

На планировании оценивают задачу: «добавить бейдж VIP на карточку клиента». Разработчик открывает CustomerCard.tsx, молчит и говорит: «Дня три». Никто не смеётся — все открывали этот файл. В нём почти семьсот строк, и он умеет всё: грузит клиента и его заказы, кэширует, валидирует форму, различает три роли, экспортирует CSV и не падает. Сцена собирательная, но файл — нет: для этой статьи я вырастил его сам, шаг за шагом, и каждый шаг сохранил.

Вопрос к такому файлу — не «почему он большой?». Вопрос — «сколько у него причин измениться и кто их считает, кроме ревьюера?»

За годы code review я много раз наблюдал рождение комбайна и ни разу — конкретный момент, когда обычный компонент становится неуправляемым. Такого момента нет: каждое отдельное изменение выглядит разумным, укладывается в дедлайн и проходит ревью. Поэтому статья устроена как хроника: один компонент, пятнадцать вредных советов, и после каждого — счёт, который выставляет машина.

Неуправляемость не измеряется строками — строки лишь симптом. Болезнь — число причин изменения, собранных в одном файле. Пока их никто не считает, комбайн растёт легально: каждый его шаг проходит code review.

Читать далее

Один поток, а всё успевает: как работает цикл событий в JavaScript

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

Promise, setTimeout и async/await часто работают совсем не в том порядке, которого ждёшь по коду, а тяжёлая синхронная функция способна заморозить весь интерфейс. Разберём модель цикла событий, которая объясняет эти эффекты и помогает понимать, где возникают блокировки, гонки запросов и лишние задержки.

Читать далее

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

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

Вайб-кодинг уронил порог входа до плинтуса: Lovable, Bolt или v0 соберут лендинг за вечер. А потом сайт неделями болтается на дне выдачи, и даже ChatGPT про него не знает. Спрашиваешь у нейронки, почему SEO хромает, — она валит на «непродающие тексты». Причина обычно глубже: для поисковых роботов ваш сайт буквально пустая страница.

Внутри: почему нейронки по умолчанию лепят SPA, как на JavaScript смотрят Google и Яндекс, почему GPTBot и ClaudeBot скачивают ваши скрипты, но никогда их не запускают, работает ли llms. txt и какая одна строчка в промпте все чинит.

Читать далее

Ленивая загрузка — не лекарство: почему ваш main.js всё равно весит 2 МБ

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

Вы разбили Angular‑приложение на ленивые модули, включили production‑сборку и всё равно получили main.js весом почти 2 МБ. Причина часто скрывается в общих модулях, тяжёлых зависимостях и импортах, которые мешают tree‑shaking.

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

Читать далее

Обзор на Astro JS: опыт боевого проекта на 500+ тысяч страниц

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

Привет! В этой статье я - Антон Резников, Fullstack разработчик и Lead проекта из evilUnion, расскажу, как мы отказались от знакомого всем Next JS, не пожалели об этом и запустили один из самых крупных наших проектов на очень перспективном фреймворке - Astro JS.

В этой статье мы посмотрим, что из себя представляет Astro, чем он выделяется среди других метафреймворков, изучим его особенности, а далее на реальном примере пройдем весь путь построения мультиязычного сайта на 500+ тыс. страниц. Поехали 🚀

Читать далее

Четыре месяца с Claude Code: что в итоге осталось лежать в .claude/

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

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

Читать далее

«Зачем Javasript-у DI контейнер?»

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

Вот именно такой вопрос был задан в первом же комментарии к статье "DI-контейнер на чистом JavaScript без TypeScript и reflect-metadata" уважаемого @alexander_kubarski. Я когда-то и сам на Хабре отвечал на этот вопрос ("Зачем нужно внедрение зависимостей в JS"), и уважаемый @Wroud тоже ("Dependency Injection в JavaScript: зачем он вам нужен"), но непонимание места и значения DI у JS-разработчиков всё равно присутствует. Попробую ответить на этот вопрос ещё раз:

Внедрение зависимостей помогает снизить стоимость верификации сложного приложения. Оно отделяет компонент от выбора конкретного окружения и позволяет проверять его относительно явных ожиданий, не поднимая каждый раз весь граф реальных зависимостей.

Именно для этого используют Inversion of Control в целом и Dependency Injection в частности - во всех языках программирования, а не только в JavaScript.

Чуть подробнее...

Как я организовал проект на Next.js

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

В этой статье я расскажу, как организовал свой проект на Next.js. На примере реального приложения рассмотрены структура проекта, организация маршрутизации, работа с данными через DAL, аутентификация, валидация, тестирование и другие подходы, которые я использовал в процессе разработки. Статья не претендует на универсальное руководство, а показывает один из возможных вариантов организации приложения.

Читать далее

Napominator Home: Полное руководство по установке, настройке и использованию

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

В прошлой статье я поспешил с публикацией и лишь в общих чертах объяснил, что такое Napominator Home. Сегодня, как и обещал, публикую подробное руководство, которое охватывает все этапы: от установки до ежедневного использования.

В этой статье вы узнаете, как установить систему, настроить её компоненты и пользоваться всеми функциями.

Читать далее

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

Что нового в WebStorm 2026.2

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

Несмотря на то, что WebStorm уже несколько лет официально недоступен в России, он по-прежнему остаётся одним из главных инструментов для веб-разработчиков. Недавно вышла новая версия WebStorm 2026.2.

В релиз вошли поддержка TypeScript 7, нативная интеграция с GitHub Copilot, менеджер скиллов для ИИ-агентов и обновления для React, Vue, Svelte, Angular и других популярных технологий. Разработчики также улучшили отладку, работу с Node.js и Git, производительность и стабильность IDE.

В статье разберём основные изменения WebStorm 2026.2, а также расскажем, какие возможности для веб-разработки уже доступны в OpenIDE и чего ожидать от её предстоящего перехода на платформу 2026.2.

Читать далее

N тел в браузере: PWA‑бенчмарк на Rust, WebAssembly и Three.js

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

В статье расскажу о PWA‑бенчмарке, который основан на задаче N тел. Физический движок написан на Rust/WebAssembly, визуализация через Three.js, и результаты запусков сохраняются в Supabase. Тут присутствует разбор архитектуры, сравнение алгоритмов расчета — прямой и Barnes‑Hut, а также тут расписаны проблемы, связанные с измерением производительности в браузере.

Читать далее

page.waitForTimeout — это всего лишь warning. Почему зелёный линт не спасает Playwright-тесты

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

Тест кликает с force: true, ждёт waitForTimeout(3000) и не делает ни одной проверки — а CI с подключённым eslint-plugin-playwright зелёный: все три греха в recommended — warning. Я выписал из исходников плагина, где error, а где warn. Под катом — конфиг, который это чинит. Ну и десять правил ревью, до которых линту не дотянуться в принципе.

Читать далее

История корутин: появление, развитие, спад и возрождение

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

Привет, Хабр! Меня зовут Дмитрий Попов, я Android‑разработчик в ПСБ. В какой‑то момент мне захотелось разобраться — что такое корутина и откуда они вообще взялись. Погрузившись в различные статьи и видео, я узнал много нового, рассказал коллегам внутри команды, а теперь решил рассказать и вам. Все, что важно знать о корутинах, по моему скромному мнению, — в этой статье!

Читать далее

Вышел Nuxt 4.5

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

Nuxt 4.5 это действительно крупный релиз. В нём обновили сразу три ключевых компонента системы сборки: Vite 8, Rspack 2 и совершенно новый пайплайн на базе Rsbuild для сборщика Rspack.

Также появились экспериментальный режим потокового SSR, стабильная система кодов ошибок, несколько новых composables и соглашений, а ещё множество внутренних улучшений, которые приближают нас к Nuxt 5.

Читать далее

FFmpeg в браузере: как мы сделали медиа-конвертер, который ни разу не обращается к серверу

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

Конвертация медиа. Люди решают эту задачу десятки раз в неделю. Видео с дрона нужно перевести в MP4 для мессенджера, HEIC с айфона в JPEG для сайта, аудиозапись интервью обрезать и сжать. Обычно это выглядит так: человек открывает один из сотен онлайн-конвертеров, загружает туда полугигабайтный файл, ждёт, пока он доползёт до сервера, потом ждёт очереди, потом скачивает обратно. Параллельно его файлы лежат на чужом сервере, о чём мало кто задумывается (а зря, если речь про корпоративный договор или личное видео).

Мы решили проверить, можно ли полностью убрать из этой схемы сервер. Чтобы конвертация происходила целиком в браузере, на устройстве пользователя. Без загрузок, без очередей, без серверных затрат. Так появился BrowsersKit: набор инструментов (медиа-конвертер, PDF, математика, Python-песочница), работающих на клиенте. Дальше расскажу, как это устроено внутри, какие грабли нас поджидали и как мы с ними справились.

Читать далее

Эмиграция в США после 30: от подработок на складе до Apple, своей школы и разработки с ИИ

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

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

Я, Александр, автор телеграм-канала «Shulepov Code», поговорил с Виктором Богуцким — разработчиком, который переехал в США в 2016 году, прошёл путь от физической работы и десятков отказов до позиции в Apple и eBay, а сейчас основателем школы программирования PASV.   

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

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