Обновить
224.44

JavaScript *

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

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

Книга: «Head First. Изучаем программирование на JavaScript. 2-е изд.»

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

Привет, Хаброжители!

Новое, полностью переработанное издание легендарной книги проведет вас по всему пути изучения JavaScript, начиная с фундаментальных понятий и заканчивая самыми актуальными современными возможностями. Вы погрузитесь в тонкости типов JavaScript и его функций, научитесь разбираться в классах, объектах и замыканиях, приобретете практический опыт работы с DOM (Document Object Model) в браузере и откроете для себя неожиданные возможности JavaScript. Вас ждет не просто чтение — вы будете играть, решать головоломки, размышлять над загадками и взаимодействовать с JS так, как никогда не пробовали ранее. А еще вы будете писать реальный код (и много!) и сразу приступите к построению собственных приложений.

Вы готовы сделать шаг вперед в веб-программировании и перейти от верстки в HTML и CSS к созданию полноценных динамических страниц? Тогда пришло время познакомиться с самым «горячим» языком програм- мирования — JavaScript! Особенностью этого издания является уникальный способ подачи материала, выделяющий серию «Head First» издательства O'Reilly в ряду множества скучных книг, посвященных программированию.

Читать далее

Новости

Что нового в WebStorm 2025.3

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

Команда JavaScript for Devs подготовила перевод статьи о нововведениях WebStorm 2025.3. В обновлении — новая тема интерфейса Islands, серьёзные улучшения для монорепозиториев, поддержка удалённой отладки и интеграция умных ИИ-агентов прямо в IDE.

Читать далее

React vs Vue: Что выбрать в 2026?

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

Привет, Хабр! Меня зовут Карлен, я Lead Fullstack разработчик в ITFB Group. В этой статье хочу поделиться своим мнением о том, как выбрать библиотеку или фреймворк для вашего следующего проекта. 

Этот выбор напоминает мне подбор гардероба для важного мероприятия: ошибешься — и проект ждут дополнительные проблемы, угадаешь — и ты на вершине успеха! Чтобы не попасть в просак с выбором, давайте детально разберем ключевые различия между React и Vue и определим, на что стоит обратить внимание.

Читать далее

Создаем UI-Kit на React: пошаговое руководство по настройке

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

Привет, Хабр. Я Сергей Осипов, архитектор дизайн‑системы в T2. Вместе с моим коллегой, Данилом — экспертом группы разработки — мы подготовили материал, в котором подробно разберем процесс настройки UI‑Kit на React — от установки зависимостей до сборки готового пакета. Ниже в статье вы прочитаете о полном цикле разработки: сборке, тестировании, линтинге и документации.

Интересно? Переходите под кат!

Прогресс разработки TypeScript 7: что уже работает и чего ждать

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

Команда JavaScript for Devs подготовила перевод большого апдейта от команды TypeScript. Разработчики рассказали, как идёт переписывание компилятора на нативный код, что уже работает в превью TypeScript 7, какие ограничения остаются и почему версия 6.0 станет последним релизом на JavaScript. Новый TypeScript обещает серьёзный рывок в скорости и стабильности — самое время понять, что нас ждёт.

Читать далее

Создаем шахматы с «туманом войны» на JavaScript: от идеи до работающего прототипа

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

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

И тут я вспомнил о своей идее сделать сайт для консольной реализации шахмат на Python. Это была сухая игра, написанная на Pygame для двоих программистов, но не для людей, так как её нельзя было запустить на других устройствах. И у меня родилась идея: а что, если превратить этот скелет игры в веб-приложение на JS?

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

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

Читать далее

Эволюция Telegram-бота: От скрипта на коленке до асинхронной системы управления кластером (v1.13)

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

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

В этой статье я расскажу, как проект VPS Manager перерос статус «скрипта для себя» и превратился в полноценную асинхронную платформу с Web-админкой, поддержкой Docker-кластера и базой данных SQLite. Встречайте версию 1.13.0.

Читать далее

Создание браузерного расширения с native messaging на C#

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

Привет, Хабр. Меня зовут Алексей, я бэкенд-разработчик C#. Хочу рассказать о том как я узнал что такое native messaging в браузерах и какие задачи можно с его помощью решать. В одном проекте я разрабатывал десктопную утилиту, которая должна была уметь обмениваться сообщениями с веб-страницами в браузере, чтобы в том числе управлять их содержимым и как угодно взаимодействовать с ними. Расскажу о том, как удалось решить такую задачу и покажу результат работы небольшого приложения с таким взаимодействием.

Читать далее

Как работают современные браузеры. Часть 1

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

Веб-разработчики нередко воспринимают браузер как «черный ящик», который каким-то чудом превращает HTML, CSS и JS в интерактивные веб-приложения. На самом деле современный браузер — будь то Chrome (на базе Chromium), Firefox (Gecko) или Safari (WebKit) — представляет собой чрезвычайно сложное программное решение. Он управляет сетевыми запросами, разбирает (парсит) и выполняет код, рендерит графику с ускорением на графическом процессоре (GPU) и изолирует контент в отдельных процессах для обеспечения безопасности.

В этой серии статей мы подробно рассмотрим, как устроены современные браузеры, сделав акцент на архитектуре и внутреннем устройстве Chromium, но также отметим ключевые отличия в других браузерах. Мы рассмотрим весь цикл: от сетевого стека и конвейера парсинга до рендеринга с помощью Blink, выполнения JS с помощью движка V8, загрузки модулей, многопроцессной архитектуры, песочниц безопасности и инструментов разработчика. Главная цель — дать понятное и доступное объяснение того, что происходит в браузере "под капотом".

Читать далее

Реактивная Архитектура: Пишем надежный Optimistic UI на чистом RxJS (Pattern Compensating Transaction)

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

Пользователи ненавидят спиннеры. Они хотят видеть лайк сразу после клика. Optimistic UI решает эту проблему, но создает новую: что делать, если сервер вернет ошибку?

В императивном коде (Promise/async-await) откат состояния превращается в ад из try/catch и ручных мутаций переменных, порождая Race Conditions.

В этой статье я покажу, как реализовать надежный паттерн Compensating Transaction на чистом RxJS. Мы построим архитектуру, где состояние это поток, который невозможно "сломать" частыми кликами или сетевыми сбоями. Никаких if/else, только чистые потоки.

Построить реактивный UI

Анализируем UDP логи Squid-proxy

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

Ремейк приложения SqStat, читаем access логи по UDP. Пока анализируем не более часа, а нужно ли больше? В наше время есть GrayLog, ELK c AI-агентами. Нужен ли нам звёздный крейсер? Статья про Squid в Docker, SSL bump, анализ access-логов, Bun, Elysia, Redis, Vue. Всего по чуть-чуть.

Хотите узнать больше?

Сыч: телеграм-бот, который помнит обиды и обходит лимиты Google Gemini

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

Написал бота на Google Gemini, который ведет себя как живой участник чата: у него есть характер, он помнит обиды (система репутации) и может послать, если вы это заслужили.

А еще он бесплатно расшифровывает голосовые (лучше Telegram Premium), понимает контекст переписки и обходит лимиты API через ротацию ключей. Под капотом — Node.js, никаких баз данных (только JSON) и чистый KISS-принцип.

Посмотреть код

Реверс-инжиниринг приложений на Android: знакомство с Frida

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

Реверс-инжиниринг — это трудоемкая и интересная задача, которая поддается не всем. Любой может «скормить» программу декомпилятору, но не у всех хватит выдержки разобраться в хитросплетениях машинных команд. Процесс становится сложнее, если исследование проводится над программой для другого устройства, например телефона с ОС Android.

Звучит сложно. Долгое время и мне так казалось, особенно при создании модов для приложений. Байт-код smali неплох, но писать на нем сложную логику вручную — неблагодарное занятие. Но недавно мне попался на глаза решение для динамического реверс-инжиниринга — Frida.

Frida — это инструмент, который позволяет вживлять небольшой кусок JavaScript-кода прямо в запущенное приложение и менять его поведение. Под катом я расскажу, как работать с Frida, исследовать приложения на телефоне без root-доступа и создавать свои моды.

Читать далее

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

Отображение Excel в React: экспериментальный прототип с merge и изначальной структурой

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

Снова на связи я –Дмитрий, React-разработчик, и в этот раз мы поговорим о создании фундамента для дальнейшей разработки.

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

Казалось бы, задача простая: берёшь любую библиотеку, читаешь файл и показываешь. На практике всё оказалось гораздо интереснее.

Читать далее

Первый опыт интеграции веб-приложения с 1С — о чём я бы хотел знать перед стартом

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

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

Читать далее

Как начать работать с Nuxt UI — библиотекой компонентов для Vue и Nuxt

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

Недавно UI-библиотека Nuxt UI получила серьёзное обновление — версию Nuxt UI 4. Это принесло два больших изменения. Во-первых, теперь можно использовать Nuxt UI не только с Nuxt, но и с Vue напрямую. Во-вторых, все ранее платные возможности (Pro-компоненты, стартовые шаблоны и Figma UI Kit) теперь полностью бесплатны.

Всё это хороший повод разобраться, как же устроена Nuxt UI, в чём её преимущества и как начать с ней работать.

Читать далее

Делаю своего ИИ-помощника для экосистемы HalNet

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

Локальный ИИ-ассистент прямо в мессенджере HalChat: без серверов, без рисков, только приватность и RAG.

Читать далее

Принимаем сложные решения с помощью плагина Datacore. А может поиграем в игру внутри Obsidian?

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

Я много использую Obsidian для работы и постоянно использую плагин Dataview для сбора и анализа данных, но в нем довольно много недостатков. И основная проблема — нельзя получить доступ к обычным данным в заметках. Поэтому в этой статье я расскажу о новом плагине Datacore, который открывает, практически, безграничные возможности работы с заметками.

Я покажу, как с помощью Datacore решать стандартный кейс с проблемой выбора из нескольких вариантов или даже как в плагине сделать игру на React.

Читать далее

История о том, как ТехВилл сделал первый в России offline‑first PWA для курьерской доставки

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

Я, Алексей Борискин из команды ТехВилла, рассказываю, как мы сделали первый в России offline-first PWA для курьеров-партнеров. Теперь никакой зависимости от интернета — ваши заказы закрываются своевременно, и сотни курьеров-партнёров работают спокойно даже при полном отсутствии связи.Подробнее об этом проекте и других технических деталях — в моём канале: https://t.me/dostavka_bagov.

Читать далее

Запускаем C++ SQL-движок в браузере: как парсить Excel, CSV и Parquet через WebAssembly (без сервера)

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

Современный фронтенд давно перестал быть просто "лицом" приложения. Мы переносим в браузер нейросети, обработку видео и криптографию. Но когда дело доходит до банальной аналитики файлов — например, локального парсинга тяжелого Excel или Parquet-файла и выполнения SQL-запросов по ним — мы часто упираемся в ограничения JS-библиотек или вынуждены гонять данные на сервер.

Команда r7-consult решила задачу радикально: мы взяли наш C++17 движок excel_loader, скомпилировали его в WebAssembly и получили возможность выполнять полноценный SQL по локальным файлам прямо в браузере.

В этой статье разберем архитектуру решения wasm-sqlite-database, посмотрим, как C++ код дружит с JS, и покажем, как превратить браузер в локальный ETL-инструмент.

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

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