Обновить
178.69

JavaScript *

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

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

Suspense в Vue js: на что способен

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

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

Есть такой интересный компонент в Vue.js и называется он<Suspense>. Он устроен так, чтобы собирать зависимые async-компоненты и показывать единый индикатор загрузки вместо кучи спиннеров. Проще говоря, пока внутренняя часть (слот #default) ещё не готова из-за ожидания данных, показывается запасное содержимое из слота #fallback. Как только все асинхронные зависимости разрешатся – снимаем запасной экран и выводим основное содержимое. По сути, <Suspense> создаёт границу вокруг вложенных компонентов и контролирует их загрузку.

Читать далее

Как настроить SRI, если у нас микрофронты

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

И чтобы всё было безопасно.

Поговорим про CDN, SRI, кэш-отравления, подмены и rsbuild-плагины.

Читать далее

CSS, который все ненавидят: sin() и cos()

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

Команда JavaScript for Devs подготовила перевод статьи о том, почему тригонометрические функции стали «most hated» возможностью CSS и как их можно использовать с пользой. Мы разберёмся, что делают sin() и cos(), и посмотрим на практические примеры: от круговых раскладок до затухающих анимаций.

Читать далее

Борьба с техническими долгами: как не допустить разрастания костылей в коде

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

Привет, Хабр! (И тебе, отчаянный страдалец, зашедший сюда в перерыве между дебагом очередного if (a == b) { return true; } else { return false; }. Мы знаем, ты не виноват, так вышло).

Каждый разработчик хоть раз в жизни прилаживал к своему коду «костыль». Знакомое чувство, правда?

Читать далее

Знакомство с TypeScript: базовая типизация и ключевые возможности

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

Андерс Хейлсберг — именно этого человека принято считать создателем TypeScript. Инженер-программист, который подарил миру такие языки как: Turbo Pascal, Delphi и C#.
Основным мотивом создания TypeScript было желание решить проблемы, связанные с разработкой крупных и сложных приложений на JavaScript.

Думаю, многие кто работал с большими проектами замечал, как порой бывает сложно рефакторить или даже просто понимать структуру данных , а чаще всего вообще невозможно. Именно этими проблемами и "занимается" TypeScript. На данном этапе стоит уточнить, что TypeScript представляет собой расширенную версию JavaScript, содержащую в себе все основные возможности языка JavaScript, дополненные некоторыми расширениями.

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

Читать далее

Настройка Express 5 для продакшна в 2025 году. Часть 1

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

Эта статья поможет вам создать приложение Express 5 с поддержкой TypeScript.

Вы настроите готовый к продакшну проект с помощью различных инструментов для линтинга, тестирования и проверки типов. В случае, если вы новичок в REST API, не волнуйтесь, эта статья также включает объяснения основных концепций, которые следует знать, таких как маршрутизация (роутинг) и аутентификация.

Настоятельно рекомендую писать код вместе со мной. Мы будем использовать подход "Разработка через тестирование" (test-driven development, TDD) для создания REST API, который может стать основой вашего следующего приложения Express.

Читать далее

Бесшовный старт в Angular или как избавиться от пустоты при старте SPA приложения

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

Белый экран при загрузке SPA — типичная боль. Пользователь открывает приложение, ждёт пока загрузится приложение, а экран пуст. А если качество связи оставляет желать лучшего а размер чанков не может похвастаться оптимизацией(да это отдельная тема для обсуждений, но все же)? Я часто сталкиваюсь с этим в реальных проектах и вот наконец то появилось время и силы сделать так, чтобы у пользователя никогда не было пустоты на экране.

Читать далее

Отображение четырехмерного пространства на двухмерную плоскость

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

Так как я не сильно разбираюсь в математике и в геометрии, буду использовать подход графического 3D-программирования, потому что подход, применяющийся там, хорошо подходит и для проецирования четырёхмерных пространств. Поэтому для чтения этого материала рекомендую иметь хотя бы базовые знания о том, как работают матрицы преобразования и как с их помощью точка из трёхмерного пространства преобразуется в точку на экране. Код будем писать на JavaScript с использованием WebGL и библиотеки matrix-gl.

Читать далее

Операторы rest и spread в JavaScript

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

Если вы осваиваете JavaScript, то наверняка знаете об операторах rest и spread. Первый группирует несколько значений, второй - разгруппировывает. Но давайте посмотрим чуть глубже.

Привет, Хабр! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. В этом тексте на примерах разберемся, что означает каждый оператор и как использовать их на практике. Подробности под катом!

Читать далее

Как Shopify перевела свои крупнейшие приложения на новую архитектуру React Native

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

Команда JavaScript for Devs подготовила перевод кейса Shopify о миграции их крупнейших приложений на новую архитектуру React Native. Результат впечатляет: еженедельные релизы не остановились, стабильность сохранилась, а производительность выросла.

Читать далее

Angular и память: как не создавать утечки

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

Фронтенд-разработка в последние годы стала сложнее. Одностраничные приложения живут часами, пользователи открывают вкладки и оставляют их работать, данные приходят с серверов постоянно. В этом хаосе часто кажется, что главное — чтобы компонент рендерился, а Observable выдавал данные.

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

Для Angular‑разработчика это важно, потому что:

Читать далее

Как подружить Node с TypeScript

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

В данной статье рассказывается о личном опыте переезда с JS на TS, как у меня получилось подружить Node.JS с TypeScript без сторонних инструментов.

Читать далее

Уволить куратора курса: автоматизация сопровождения студентов с помощью n8n

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

В этой статье я показываю, как заменить рутинную работу куратора курса простым сценарием в n8n. Всё делается через Google Sheets и Telegram-бота, без строчки кода. Текст написан специально для работников образования и гуманитариев — повторить сможет каждый.

Смотреть мануал

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

Расстаемся с any в TypeScript

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

Тип any в TypeScript по своей сути является злом и небезопасной особенностью встроенной по умолчанию в систему типов языка. Данный тип дает возможность разработчику записать такое значение, которое может быть чем угодно, использоваться где угодно и как угодно вместо любого другого типа данных.

Использование any небезопасно, поскольку таким образом вы отключаете многие проверки во время компиляции вашего кода в JavaScript, что по итогу ограничивает способность TypeScript помогать вам, отказываясь тем самым от преимуществ строгой типизации.

Линтеры — это не только важнейший инструмент для поддержания качества кода на высоком уровне, но и важный помощник в борьбе с any. Пакет typescript-eslint содержит несколько таких правил, которые помогают предотвратить небезопасные практики еще до начала компиляции, связанные с типом any. Эти правила обнаруживают как прямые использования any, так и целые паттерны кода, которые незаметно его допускают. В этой публикации мы разберемся с тем, что конкретного делают эти правила, а также рассмотрим несколько полезных способов предотвратить проникновение any в наш код.

Читать далее

Без головы но с идеями: как Strapi оживляет Next.js

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

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

Меня зовут Дмитрий Гусаков, я менеджер проектов компании DD Planet. Рад поделиться с вами материалом, который, надеюсь, будет полезен всем, кто следит за эволюцией веб‑разработки и ищет современные подходы к созданию гибких и производительных проектов. Сегодня я расскажу про связку, которая уже стала стандартом для многих команд — Strapi + Next.js. Это не просто инструменты, а целая философия, где скорость, контроль и свобода творчества выходят на первый план.

Читать далее

React-монополист: как мы сами убиваем развитие фронтенда

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

Команда JavaScript for Devs подготовила перевод статьи о том, как доминирование React сдерживает развитие фронтенда. Автор утверждает: выбор React «по умолчанию» тормозит инновации, мешает развитию альтернативных фреймворков и превращает всю экосистему в монокультуру.

Читать далее

Steroids Form — как создать собственный движок форм для React

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

Это третья статья из цикла про наш фреймворк Steroids: в ней мы рассказываем о том, как пришли к созданию собственного движка форм для React. Если вы ещё не читали предыдущие материалы, рекомендуем с ними ознакомиться:

Читать далее

Чистый код на TypeScript: практические советы

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

Тема чистого кода — одна из самых обсуждаемых в сообществе разработчиков. Это не удивительно: от качества кода напрямую зависят скорость разработки, легкость поддержки и масштабирования проекта. В мире JavaScript и TypeScript, с их гибкостью и динамической природой, следование принципам чистого кода становится особенно важным.

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

Читать далее

Не просто RAG: Строим MCP-сервер на Node.js, чтобы дать LLM «архитектурное зрение»

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

Привет, Хабр! Мы живем в удивительное время. Попросить LLM написать для нас код стало так же естественно, как гуглить ошибку. Но у этой магии есть предел. Попросите модель написать quickSort, и она справится блестяще. А теперь попросите ее: «Добавь метрики Prometheus в метод processOrder в нашем проекте».

И тут магия рушится. LLM — это гениальный, но страдающий амнезией стажер. Она знает все языки мира, но не имеет ни малейшего понятия о вашем проекте. Она не знает, какой у вас логгер, как вы обрабатываете ошибки и что у вас уже есть готовый MetricsService. В лучшем случае вы получите общий, неидиоматичный код. В худшем — сломаете половину логики.

Стандартный RAG (Retrieval-Augmented Generation) — это как дать стажеру доступ к одному файлу. Полезно, но картину целиком он все равно не увидит. А что, если мы могли бы дать ему не просто файл, а полный доступ к знаниям тимлида-архитектора? Что, если бы LLM могла видеть не просто строки кода, а всю паутину связей, зависимостей и паттернов вашего проекта?

Сегодня я расскажу о проекте code-graph-rag-mcp — это не просто очередной RAG-пайплайн. Это полноценный MCP-сервер, который строит граф знаний вашего кода и дает LLM «архитектурное зрение», превращая ее из простого кодера в настоящего цифрового ассистента.

Читать далее

Как Node.js выжимает максимум из I/O в 2025 году

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

Команда JavaScript for Devs подготовила перевод статьи о том, как Node.js выжимает максимум из I/O в 2025 году. В ней подробно объясняется цикл событий, порядок фаз и то, как правильно писать код, чтобы серверы оставались отзывчивыми даже под нагрузкой.

Читать далее

Вклад авторов