IT Kniga
Интернет-магазин компьютерной литературы

JavaScript - habr.ru

RSS-материал Хабр
JavaScript – прототипно-ориентированный язык программирования
Обновлено: 32 минуты 31 секунды назад

Снимаем оковы Webpack: как мы ускорили сборку проекта в 10 раз, потратив меньше рабочего дня

Ср, 12/03/2025 - 13:28

Современная фронтенд-разработка технологически весьма сложная: множество зависимостей,  микросервисы, размеры самих проектов, плагины для настройки окружения и многое другое.  

Это касается и одного из самых ключевых этапов в разработке - сборка проекта. Множество проектов, на которых я работал, собирались (и собираются) с помощью Webpack. Это классический и проверенный временем инструмент: со своими преимуществами и недостатками.  

В какой-то момент недостатки стали перешивать:  

Читать далее
Категории: HTML, CSS, Javascript

Snake, альтернатива Slick slider на чистом JavaScript

Ср, 12/03/2025 - 11:08

Для создания современных сайтов разработчики все чаще стали пользоваться реактивными фреймворками или чистым JavaScript, отказываясь при этом от библиотеки jQuery. Однако остаются плагины, от которых не так просто отказаться. К таким относится Slick slider. Он очень удобен в использовании и сочетает в себе все необходимые для создания каруселей опции.

Читать далее
Категории: HTML, CSS, Javascript

Node.js — асинхронность по умолчанию

Ср, 12/03/2025 - 09:48

Возможно Вам доводилось слышать о том что Node.js идеален для создания веб-серверов. В этой статье я объясню, почему оно так и какие архитектурные принципы заложенные в основу серверного JavaScript, делают его таким подходящим для приложений с высокой интенсивностью ввода/вывода.

Узнать почему?
Категории: HTML, CSS, Javascript

[Перевод] Публикация пакета npm с ESM и TypeScript

Ср, 12/03/2025 - 08:05



За последние 2 года поддержка ESM в TypeScript, Node.js и браузерах сильно улучшилась. В этой статье я объясню мою современную настройку, которая является относительно простой по сравнению с тем, что нам приходилось делать раньше:


  • она предназначена для пакетов, которые могут пренебречь обратной совместимостью. Настройка хорошо работает для меня некоторое время — начиная с TS 4.7 (24.05.2022)
    • помогает то, что Node.js теперь поддерживает require(esm) — запрос библиотек ESM из модулей CommonJS
  • я использую только tsc, но упоминаю поддержку других инструментов в разделе "Компиляция TS с помощью других инструментов"

Обратная связь приветствуется: что вы делаете по-другому? Что может быть улучшено?


Пример пакета: в @rauschma/helpers используется настройка, описываемая в этой статье.

Читать дальше →
Категории: HTML, CSS, Javascript

NEST.js — уродливый монстр или мощный энтерпрайз?

Втр, 11/03/2025 - 23:00

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

NEST.js – это фреймворк для написания REST серверов под Node.js на языке TypeScript, который потом транспилируется в JavaScript. Он написан поверх библиотеки Express (или Fastify – можно выбрать) и привносит модные концепции – Inversion of Control, Dependency Injection и т. п. в мир JavaScript. Нередко описание этого инструмента сопровождается восторженным настроением. Как мне кажется, эта восторженность несколько преувеличена, сложность излишняя, а чудо-сила отсутствует. Некоторые неудобства вынудили нас отказаться от его использования после нескольких лет разработки.

Читать далее
Категории: HTML, CSS, Javascript

Разбор интервью с автором TypeScript о портировании его на Go

Втр, 11/03/2025 - 21:33

Анонсирован порт TypeScript на Go, который показывает двухкратное уменьшение использования памяти и десятикратное улучшение скорости работы!

В этой статье мы разберем в деталях часовое интервью с автором TypeScript Андерсом Хейлсбергом об этом портировании.

Чего не хватает для лучшей производительности node.js?

Читать далее
Категории: HTML, CSS, Javascript

Уехал на Чукотку, чтобы попасть во фронтенд. Вот что из этого вышло

Втр, 11/03/2025 - 07:13

Как фокус только на обучении повлиял на результат и стоит ли сейчас идти во фронтенд? Вот моя честная история пути в IT. Она похожа на восхождение на вершину без акклиматизации.

Узнай мой кейс
Категории: HTML, CSS, Javascript

Глубокое Погружение в Работу с Таймерами в React

Пнд, 10/03/2025 - 15:49

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

Читать далее
Категории: HTML, CSS, Javascript

Кастомные хуки в react

Пнд, 10/03/2025 - 04:15

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

Читать далее
Категории: HTML, CSS, Javascript

Как уменьшить боль от this в классах javascript

Вс, 09/03/2025 - 14:35

На службе была поставлена задача подготовить и передать клиенту js-библиотеку, которая состояла из несколько классов. Каких-то особых трудностей не ожидалось, поскольку библиотека использовалась в нашей конторе уже не один год и была тщательно оттестирована.

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

Но одна вещь останавливала меня — часть методов ключевого класса для обращения к другим свойствам и функциям своего класса использовала this. Кайл Симпсон удачно назвал такие методы this-aware functions. И неправильный вызов этих функций мог создать проблемы для разработчиков клиента.

Читать далее
Категории: HTML, CSS, Javascript

AbortController в JavaScript

Вс, 09/03/2025 - 14:32

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

Сегодня мы рассмотрим интересный инструмент в JS. AbortController в JS — инструмент, который позволяет отменять асинхронные операции в любой момент. Разберёмся, как он работает, где пригодится и какие подводные камни скрывает.

AbortController — это инструмент для принудительной остановки асинхронных операций в JavaScript.

Читать далее
Категории: HTML, CSS, Javascript

Разворачиваем микрофронты на Next.js

Сб, 08/03/2025 - 20:23

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

Читать далее
Категории: HTML, CSS, Javascript

Пишем простое расширение для браузера

Сб, 08/03/2025 - 07:33

Всем привет! В этом туториале я хотел бы описать создание расширения для браузера на основе Chromium (Google Chrome, Brave, Яндекс Браузер и др.).

Расширения для браузеров создаются с использованием веб-технологий: HTML, CSS и JavaScript/TypeScript и все. Можно конечно еще использовать либы React, JQuery или фрейворки Vue например, но можно обойтись Vanilla JS.

Читать далее
Категории: HTML, CSS, Javascript

Где найти ментора в IT и как не наткнуться на «псевдонаставника»?

Пт, 07/03/2025 - 14:23

Когда я сам переучивался на разработчика, я быстро понял: можно годами смотреть курсы, читать книги и учиться на собственных ошибках — а можно взять ментора и пройти этот путь в разы быстрее. Менторинг — это то, что помогает не просто получать знания, а применять их в реальной работе. 

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

Читать далее
Категории: HTML, CSS, Javascript

N-API: аддоны для Node.js

Чт, 06/03/2025 - 19:02

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

В этой статье рассмотрим то, как создаются нативные аддоны для Node.js на C++ с использованием N-API.

До появленияN‑API написание аддонов шло напрямую через V8 API, что влекло за собой жёсткую привязку к конкретной версии движка. Каждый апдейт Node.js требовал пересборки и правки кучи низкоуровневого кода. N‑API решает эту проблему, предоставляя стабильный ABI. Это позволяет писать универсальные, долговечные и, главное, поддерживаемые модули, не боясь, что обновление Node.js подбросит вам сюрприз в виде «segmentation fault».

Читать далее
Категории: HTML, CSS, Javascript

Нейросети в разработке: мощный инструмент или слепая вера?

Чт, 06/03/2025 - 17:15

Привет, коллеги! Сегодня хочу поделиться осторожным оптимизмом по поводу нейросетей в программировании. Нейросети не только ускоряют процесс разработки, но и помогают находить ошибки, улучшать качество кода, писать хорошо оптимизированный код самостоятельно и изучать новые технологии. Да, они революционны, но слепое доверие к их «интеллекту» может стоить вам часов дебаггинга. Почему 80% восторженных статей пишутся по маркетинговым шаблонам, и как отделить реальные возможности от рекламной шелухи — давайте разбираться.

Читать далее
Категории: HTML, CSS, Javascript

Webpack, Vite или Rspack: что это за зоопарк или чем собирать микрофронтенды в 2025?

Чт, 06/03/2025 - 10:16

Привет! Разбираясь с микрофронтендами в монорепозитории для проекте с Vue3 пришёл к выводу, что так много уделяется внимания гибкости в построении архитектуры и бизнес-задачам, что все боятся заниматься улучшением "условий труда" связанных со сборкой приложения! Решил что эта задачка как раз мне подходит и представляю вашему вниманию небольшую статью которая возможно поможет вам сделать выбор или подтолкнет попробовать новые инструменты сборки фронтенда! Для справки - микрофронтенды у нас на Module Federation, Nx для управления монорепозиторием, общаемся мы через GraphQL, тестируем с Jest и конечно куда без TypeScript. Проект активно развивается, и с ростом его масштабов столкнулись с вопросом: какой сборщик лучше всего справится с нашими задачами? Webpack уже давно с нами, но его медлительность заставляет искать альтернативы. Vite обещает молниеносную разработку, а Rspack — производительность без сложной миграции. Давайте разберёмся, что подойдёт именно нам — и, возможно, вам.

Читать далее
Категории: HTML, CSS, Javascript

Он вам не SSR. Nuxt — больше, чем Server-Side Render фреймворк

Чт, 06/03/2025 - 05:40

Привет, Хабр! Я - Frontend Developer в МТС Диджитал. Все чаще и чаще я натыкаюсь на сообщения и комментарии пользователей в различных социальных сетях про Server-Side Rendering.

Обычно эти жалобы о том, кто-то недоволен зависимостью Next.js от Node.js-сервера. Кто-то сталкивается с ограничениями динамического роутинга при статической генерации. Исходя из этого некоторые люди писали в комментариях что-то вроде: "Вы же не ожидали, что SSR-фреймворк решит все проблемы разом?"

Большинство моих коллег с других компаний в принципе не понимают зачем я беру Nuxt почти во все свои проекты и задают вопросы. На первый взгляд это вполне логично. Какой смысл брать SSR фреймворк, если ты выключаешь в нем SSR. На примере Nuxt, SSR можно выключить одним булевым флагом в конфиге:

Читать далее
Категории: HTML, CSS, Javascript

Как создать мини-приложение в Telegram

Ср, 05/03/2025 - 07:05

С каждым днем в Telegram появляется всё больше и больше мини-приложений, или mini apps, которые так или иначе влияют на развитие этой среды. Кто-то реализует в Mini App простые игры, кто-то удобные инструменты для той или иной задачи, а кто-то решения для бизнеса.

В этой статье мы рассмотрим, как создать свое Mini-App-приложение с frontend- и backend-частью, а также запустим его на сервере.

Читать далее
Категории: HTML, CSS, Javascript

Инструменты для анализа производительности сайта

Ср, 05/03/2025 - 05:15

В этой статье речь пойдет об инструментах, с помощью которых можно проанализировать качество спроектированного front-end разработчиком сайта. В качестве наглядного материала используется проект, реализованный на базе Next.js 14-й версии с app router.

Читать далее
Категории: HTML, CSS, Javascript

Большая распродажа компьютерной литературы

Полный список здесь