Category : javascript

javascript
Внутреннее представление и оптимизации строк в JavaScript-движке V8: «отмываем» строки, «обгоняем» …

С самого рождения JavaScript в каком-то смысле был языком для манипулирования текстом — от веб-страничек в самом начале до полноценных компиляторов сейчас. Неудивительно, что в современных JS-движках достаточно много сил уделено оптимизации внутреннего представления строк и операций над ними. В этой статье я хочу рассмотреть, как могут быть представлены строки в движке V8. Попытаюсь продемонстрировать их эффект, обогнав C++ в очень честном бенчмарке. А также покажу, в каких случаях они могут…

  • среда, 9 августа 2023 г. в 00:00:15
javascript
Vite SSR BOOST — Наш собственный путь в мире React SSR

⚡заряженные⚡ серверные приложения с помощью Vite SSR BoostВсем привет! Меня зовут Михаил, и я являюсь СТО в одной IT компании. Сегодня я хочу кратко рассказать вам о мотивах создания собственной библиотеки для разработки React-приложений с поддержкой SSR (серверный рендеринг) и поделиться результатами этой работы.Как известно, великие дела начинаются с малого. В нашем случае у нас было небольшое количество React-приложений без поддержки SSR, которые в конечном итоге требовали перехода на серв…

  • среда, 9 августа 2023 г. в 00:00:15
javascript
bindActionCreators — маленькая утилита, решающая проблемы

В этой статье я хочу поделиться информацией, которая будет полезна всем, кто использует redux или @reduxjs/toolkitДанные библиотеки предоставляют большое количество полезных утилит, в этой статье я расскажу об одной из них – bindActionCreatorsОдна из проблем, преследующая почти всех, кто использует вышеупомянутые библиотеки - невозможность использования action(), предварительно не обернув его в dispatch(). Это порождает большое количество бессмысленного кода:const dispatch = useDispatch() con…

  • понедельник, 7 августа 2023 г. в 00:00:12
javascript
Волшебство Drag And Drop: Как динамические дашборды делают жизнь проще. Часть 1. Описание и мотивы

Всем привет :)Я Никита, уже больше 4 лет занимаюсь фронтендом, погружаюсь в инфраструктуру и кайфую от IT мира и комьюнити около веба, частенько читаю Хабр и решил попробовать написать сам.Решил сделать цикл статей и рассказать про опыт добавления динамических элементов на страницу с помощью drag and drop и получения данных с bff. Предварительно разбив на три части.Описание решения, технологий и мотивацияТехническая часть с кодом про структуру компонентов и Drag and Drop решениеТехническая ча…

  • воскресенье, 6 августа 2023 г. в 00:00:15
javascript
Angular Resource или почему я никогда не использовал NgRX

Около 5 лет назад я пересел с Реакта на второй Ангуляр и первое, чего мне там не хватило был модуль angular-resource из первого Ангуляра. Вменяемых аналогов я не нашел, поэтому за неделю написал свою библиотеку. Решение оказалось настолько удачным, что практически без изменений дошло до сегодняшнего дня. Используется в куче проектов, работает стабильно (не смотря на то, что до сих пор там нет ни одного теста), в общем, есть о чем рассказать.Промисы наше всёПойдем от простого к сложному. Чаще в…

  • суббота, 5 августа 2023 г. в 00:00:19
javascript
Шина между Веб-воркерами и основным потоком. Ускоряем работу JavaScript

Photo by Indira Tjokorda on UnsplashВведениеВ современном мире веб-разработки часто возникают ситуации, когда необходимо эффективно управлять большим объемом данных и производить сложные вычисления. Однако выполнение таких задач в основном потоке UI может привести к замедлению работы приложения и ухудшению пользовательского опыта. Вот здесь на помощь приходят веб-воркеры.Веб-воркеры позволяют выполнять сложные вычисления в фоновом потоке, освобождая основной поток для работы с пользовательским…

  • суббота, 5 августа 2023 г. в 00:00:18
javascript
Загрузка файлов и каталогов перетаскиванием с помощью drag and drop JS

На многих веб-сайтах есть форма для загрузки файла. Для некоторых сайтов, таких как OneDrive или Google Диск, загрузка файлов является основной функцией. С течением времени веб-страницы становятся все более интерактивными. Таким образом, пользователи ожидают большего количества взаимодействий, таких как перетаскивание файлов или каталогов или вставка скриншотов.Давайте посмотрим, что предоставляют браузеры для загрузки файлов!<form method="post" enctype="multipart/form-data"…

  • пятница, 4 августа 2023 г. в 00:00:12
javascript
Простой способ проверять typescript без skipLibCheck: true

Всем привет! Решил начать писать короткие статьи с маленькими фичами, которые могут помочь посмотреть на решение проблем немного под другим углом.Дано:Мы используем Fluent UI в нашем проекте. После перехода на React 18 мы начали получать ошибки такого рода: Ошибки в типах node_modules.Подобные ошибки могут возникать по вине любой рандомной библиотеки. Типичное решение:Из того что я находил в интернете - в основном рекомендуют поставить skipLibCheck: true или править и патчить. Можно также прос…

  • пятница, 4 августа 2023 г. в 00:00:12
javascript
Skeleton Mammoth — или как я решал проблему переиспользуемых скелетон лоадеров

Skeleton Mammoth logotype.Введение.Существует множество отличных статей, посвященных скелетон загрузчикам, в которых рассказывается об их типах, случаях и необходимости их использования. Я не буду перечислять их здесь, вы можете легко найти их в своем любимом поисковике.После подробного изучения этой темы, я решил создать очень простое, гибкое, переиспользуемое, настраиваемое и легкое решение, которое подойдет для большинства случаев использования. В этой статье я опишу процесс создания этого …

  • четверг, 3 августа 2023 г. в 00:00:18