Как стать автором
Поиск
Написать публикацию
Обновить
317.87

JavaScript *

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

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

Создание гиперкуба с помощью Three.js: как увидеть четвертое измерение?

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

Каждый раз, когда я сталкиваюсь с чем-то новым в разработке графики, я задаюсь вопросом: «А можно ли сделать что-то круче?» Создавать трёхмерные сцены в браузере — задача увлекательная, но уже привычная. Мы привыкли работать с кубами, сферами и прочими объектами в 3D-пространстве. Но что, если выйти за его пределы? А что, если ввести в игру четвёртое измерение? Именно эта мысль и привела меня к созданию интерактивного гиперкуба с помощью Three.js.

Взглянуть за пределы 3D

Слово this: управление контекстом выполнения в JavaScript

Время на прочтение5 мин
Количество просмотров5.4K

Привет, Хабр! Сегодня мы поговорим о this, потому что без четкого понимания, как работает this, ваш код может стать источником путаницы и ошибок.

this в JS — это ключевое слово, которое ссылается на текущий контекст выполнения. Его значение зависит от того, где и как была вызвана функция, а не от того, где она была определена.

В этой статье мы разоберем все способы работы с контекстом выполнения, чтобы вы могли уверенно использовать this в любом сценарии.

Читать далее

Компилируем и выполняем C на JavaScript

Время на прочтение13 мин
Количество просмотров6.5K
Мир работает на C. Этот язык лежит в основе сжатия файлов, сетевых взаимодействий и даже браузера, в котором вы читаете эту статью. Если код не написан на C, он всё равно взаимодействует с ABI, написанном на C (речь о C++, Rust, Zig, т.д.) и доступен в виде библиотеки на C. Язык C и C ABI — это прошлое, настоящее и будущее системного программирования.
Читать дальше →

А что, так можно было?

Время на прочтение5 мин
Количество просмотров17K

Привет Хабр!

Меня зовут Алекс, и я автор фронтенд-библиотеки для создания UI-компонентов-агностиков - Symbiote.js. Я не единственный разработчик, но главный контрибьютор и тот, кто отвечает за концепцию, развитие, документацию, деврел, DX все остальное. Мейнтейнер то есть. Всем этим я занимаюсь в свободное от другой работы время, на которой я фуллстек, R&D-инженер и техлид.

Сегодня, я бы хотел рассказать о том, как появился Симбиот, и почему он вообще существует, при наличии огромного зоопарка библиотек и фреймворков для фронтенда, с куда более значительной аудиторией и поддержкой от крупных IT-компаний. Ведь мы, инженеры, очень НЕ любим, когда вокруг нас начинают плодиться лишние сущности, и сразу начинаем угрожающе размахивать бритвой Оккама. Верно? (хитро прищурился)

Читать далее

UI-система или хроники Хаоса

Время на прочтение5 мин
Количество просмотров1.1K

Всем доброго времени суток. Давно я что-то ничего не писал, и вот созрел. Предлагаю сегодня поговорить о ui-системе. Зачем она нужна, когда она нужна, что дает, какие минусы имеет и вообще стоит ли ввязываться в это блуд.  Я часто слышу на разных конференциях, что панацея от всех болезней в бизнесе  —  это наличие дизайн-системы (ui-системы). Что, как только вы достигаете ее, то сроки сокращаются в 100500 раз. Что разработчики не хотят открутить голову дизайнерам, и, наоборот, что качество продукта возноситься до небес, и еще много всего восхитительного об этой сущности. Но так ли все это ? Или это просто розовые очки, которые застилают глаза всех причастных к созданию ui-системы в компании и побочка от постоянных нервных срывов, скандалов, поиска компромиссов и просто выгорания? В этой статье я постарался разобраться, а стоит ли игра свеч или как в анекдоте про нюансы. 

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

UI - kit — это полный набор элементов и компонентов, необходимый для сборки большого однородного продукта. Он включает различные кнопки, иконки, поля для ввода данных и т. д. и позволяет сохранять узнаваемость продукта и доверие пользователей. Так мне сказал поисковик, я спорить не стал.

UI component являются основными блоками и элементами для дизайна пользовательского интерфейса. Они предоставляют пользователям способ взаимодействия с вашим веб-сайтом или приложением. Этими компонентами могут являться интерактивный текст и графика, которые сообщат пользователю, что делать дальше.

Читать далее

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

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

Привет, Хабр! Если вы открыли эту статью, вероятно, вам интересна разработка BIM‑приложений, а конкретно — просмотрщиков 3D‑моделей (Viewer). Возможно, у вас уже есть свое BIM‑приложение, и вы столкнулись с трудностями, или вы только планируете начать разработку и собираете информацию. В любом случае, вы попали по адресу.

Я расскажу вам историю о том, как мы создавали наш 3D Viewer, какие подводные камни встретились на пути, и какие уроки мы извлекли. Поехали!

Читать далее

Object.freeze и Object.seal в JS

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

Сегодня рассмотрим такие инструменты в JS, как Object.freeze и Object.seal. С помощью них можно установить надежный контроль над объектами, защитив их от нежелательных изменений.

Читать далее

Пишем свой плагин для Webpack

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

Рассмотрим структуру плагинов, основные объекты, используемые при их разработке, хуки этих объектов и их виды.

Читать далее

Основные принципы хорошего нейминга

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

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

Читать далее

Что нового в React 19

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



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


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

Читать дальше →

Как использовать Google Sheets в качестве базы данных

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

Привет, я Настя — младший разработчик в M2. М2 — это экосистема цифровых сервисов, которые помогают пользователям проводить сделки с недвижимостью удобно, быстро и безопасно. Мы с командой разрабатываем CMS, которая позволяет управлять контентом на сайте m2.ru

Расскажу о том, как мы используем Apps Script для парсинга данных из Google Sheets и зачем это нам. Если вам интересна только пошаговая инструкция с примерами кода, ее можно посмотреть здесь.

Читать далее

Я знаю, что вы читали прошлым летом: топ-5 статей про JavaScript

Время на прочтение3 мин
Количество просмотров6.4K

В июле на Хабре вышла новая фича — расширенная статистика для авторов. Метрики для неё собираются с конца мая, так что дочтения, доскроллы и отказы у всех летних статей трекались прямо с момента публикации.

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

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

Читать далее

Трассировка OpenTelemetry в 200 строк кода

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

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

Ситуация усугубляется тем, что по мере создания стабильной и надежной библиотеки для трассировки сам код усложняется, чтобы учитывать редкие случаи, поддерживать работу в разных окружениях и оптимизировать производительность, минимизируя влияние на приложения. Это особенно заметно при использовании автоматической инструментации, которая может «волшебным образом» оборачивать или изменять код, который изначально для этого не предназначен.

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

На самом деле, трассировка гораздо проще, чем кажется.

Читать далее

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

Концепция временного View state в JavaScript

Уровень сложностиСложный
Время на прочтение4 мин
Количество просмотров3.3K

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

Читать далее

7 продвинутых приёмов JavaScript, которые должен знать каждый разработчик

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

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

Однако при таком обилии функций и технологий легко упустить самые мощные из них. Если ваша цель — повысить производительность или упростить поддержку кода, эти продвинутые техники дадут вам серьёзное преимущество.

Давайте разберём 7 продвинутых техник в JavaScript, которые помогут вам вывести свои навыки на новый уровень.

Читать далее

Управление памятью в JavaScript с помощью WeakRef и FinalizationRegistry

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

Сегодня мы рассмотрим тему управления памятью в JavaScript — и речь пойдет не о классическом сборщике мусора, а о возможностях с WeakRef и FinalizationRegistry. Эти инструменты помогают работать со слабыми ссылками и асинхронной финализацией объектов, открывая дорогу к более тонкой работе с памятью.

Если вам надоело, что объекты висят в памяти дольше, чем нужно, и хочется управлять ресурсами без лишних утечек — эта статья для вас. Начнем!

Читать далее

Дело было вечером или Создаем веб-приложение за 5 часов

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



Привет, друзья!


В этой небольшой заметке я хочу рассказать вам о том, как я разработал игру с вопросами по JavaScript за один вечер, потому что, во-первых, мне было скучно :D, во-вторых, мне стало интересно, как быстро я смогу "запилить" подобный MVP.


Вот что мы имеем на сегодняшний день.


Интересно? Тогда прошу под кат.

Читать дальше →

Как не гундеть, а доработать веб-сервис самому без помощи разработчиков

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

Привет! Меня зовут Сергей Медин, я руководитель аналитиков в команде Авито Недвижимости. В этой статье я подробно расскажу, как создать собственный скрипт, который существенно упростит работу с любым веб‑сервисом. Я не разработчик, но успешно добавляю необходимые функции, обладая только лишь базовыми знаниями JavaScript. Подробности — под катом.

Читать далее

Как GPT-4o помог мне создать плагин для After Effects: экономим часы на нейминге слоев

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

В индустрии анимации и визуальных эффектов время — бесценный ресурс. Работая над проектами, содержащими сотни или даже тысячи слоев, переименование каждого слоя вручную превращается в изнурительную задачу, способную занять часы. Это не просто утомляет — это выбивает из творческого потока и негативно сказывается на качестве работы. Время, которое могло быть потрачено на создание анимации, уходит на приведение проекта в состояние, когда с ним «хоть как‑то можно начать работать».

Читать далее

Как удаление isNumber из зависимостей сэкономил 440 Гб еженедельного трафика

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

Недавно наткнулся на занимательный merge request по замене зависимости isNumber. Удивительно было в целом осознавать, что как такого универсального метода по определению числа в переменной нет в базовой концепции JavaScript. И данная проблема породила npm-репозиторий isNumber c почти 72 миллионами еженедельных скачиваний на сентябрь 2024 года. Но стоит ли в очередной раз использовать мизерную зависимость в своём проекте? Предлагаю взглянуть на решение, представленное в ранее сказанном mr-е.

Читать далее

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