Как стать автором
Обновить
138.64

JavaScript *

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

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

Шина между Веб-воркерами и основным потоком. Ускоряем работу JavaScript

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 925
JavaScript *Angular *ReactJS *VueJS *TypeScript *
Обзор
Перевод

Хотите узнать, как ускорить выполнение JavaScript в веб-приложениях? В этой статье я подробно расскажу о веб-воркерах, шине данных между основным потоком и веб-воркерами, и как это можно применить в Angular, React и Vue, используя мой npm пакет web-worker-bus. Вы узнаете, как вынести тяжелые вычисления в отдельные потоки, организовать обмен данными, и как это все собрать в единую архитектуру. Примеры кода, инструкции и советы внутри помогут вам сделать ваши проекты быстрее и эффективнее с помощью этого инструмента. Освоение этого подхода и использование web-worker-bus может стать значимым улучшением в ваших проектах. Загляните, если интересуетесь оптимизацией JavaScript и хотите узнать, как мой пакет может вам в этом помочь!

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 0

Новости

Angular Resource или почему я никогда не использовал NgRX

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 723
JavaScript *Angular *

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

Пойдем от простого к сложному...
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 3

Простой способ проверять typescript без skipLibCheck: true

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 875
JavaScript *TypeScript *
Туториал

Всем привет!

Решил начать писать короткие статьи с маленькими фичами, которые могут помочь посмотреть на решение проблем немного под другим углом.

Дано:

Мы используем Fluent UI в нашем проекте. После перехода на React 18 мы начали получать ошибки такого рода:

Читать далее
Всего голосов 4: ↑1 и ↓3 -2
Комментарии 1

Загрузка файлов и каталогов перетаскиванием с помощью drag and drop JS

Время на прочтение 3 мин
Количество просмотров 952
JavaScript *HTML *
Из песочницы

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

Давайте посмотрим, что предоставляют браузеры для загрузки файлов!

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Истории

Skeleton Mammoth — или как я решал проблему переиспользуемых скелетон лоадеров

Уровень сложности Средний
Время на прочтение 12 мин
Количество просмотров 1.2K
Разработка веб-сайтов *CSS *JavaScript *ReactJS *VueJS *
Кейс
Перевод

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

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 5

Книга «JavaScript. Рецепты для разработчиков. 3-е изд»

Время на прочтение 12 мин
Количество просмотров 1.4K
Блог компании Издательский дом «Питер» JavaScript *
image Привет, Хаброжители!

Зачем изобретать велосипед, сталкиваясь с очередной проблемой в JavaScript? Здесь вы найдете множество рецептов кода для типовых задач программирования, а также познакомитесь c методами создания приложений, работающих в любом браузере. Адаптируемые примеры кода можно вставить практически в любой проект, а заодно поглубже изучить JS.

С помощью этой книги вы научитесь настраивать эффективную среду разработки с редактором кода, статическим анализатором и тестовым сервером; станете лучше понимать функции JS, включая замыкания и генераторы; узнаете, как использовать классы и наследование — основные концепции ООП; освоите работу с мультимедиа, включая аудио, видео и SVG; научитесь управлять HTML и CSS; благодаря Node.js сможете использовать JavaScript где угодно; узнаете, как получать доступ к удаленным данным и управлять ими с помощью технологий REST, GraphQL и Fetch; освоите популярную среду разработки приложений Express; научитесь выполнять асинхронные операции с промисами, async/await и веб-процессами.
Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Конфигурируемая типизация NPM пакетов. Типизация может быть строже, чем вы думаете

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 710
Разработка веб-сайтов *JavaScript *ReactJS *TypeScript *
Туториал

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

Читать далее
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 0

Как автоматизировать переводы во Frontend приложении

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 2.3K
Разработка веб-сайтов *JavaScript *Программирование *Node.JS *Локализация продуктов *
Туториал

В текущем мире очень многие сайты имеют поддержку многих языков, в большинстве случаев это происходит с помощью i18n npm пакета. Чаще всего переводы хранятся в .js, .json файлах и очень часто есть языки для которых в компании нет переводчика, либо же он не предполагался в целом, и в таком случае приходит на помощь разработчик с переводчиком. И вот однажды я столкнулся с тем, что на проекте оказалось очень много текстов и все их нужно было переводить вручную, что занимало достаточно много времени и я задумался о том, как это можно автоматизировать.

Моя идея была в том, чтобы написать функцию, в которую можно было бы передать языковой код и json объект с текстом на исходном языке, а на выходе получить переведенный json/js file. С помощью этой функции я мог бы в ci/cd Pipeline переводить все текста на проекте, в исходных текстах которых были изменения, либо же следить за текстами в рантайме и на лету переводить текста.

И я нашел два относительно простых и бесплатных метода, для того чтобы это сделать.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 8

Внедрение зависимостей в Angular простыми словами

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.3K
JavaScript *Angular *TypeScript *
Туториал
Из песочницы

Всем привет👋 Я Данила, фронтенд разработчик в ПСБ. Angular я начал изучать не так давно, а поэтому часто встречаются сложные темы, которые непонятны и их нужно разобрать. Одной из таких тем и стало внедрение зависимостей (DI). Что ж, давайте разбираться :)

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 0

Делай так, и твой адаптив болеть не будет

Уровень сложности Средний
Время на прочтение 26 мин
Количество просмотров 3K
Блог компании Мир Plat.Form (НСПК) Разработка веб-сайтов *JavaScript *HTML *Angular *
Туториал

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

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

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 3

Чем отличается реализация non-keyed от keyed в javascript фреймворках?

Уровень сложности Средний
Время на прочтение 2 мин
Количество просмотров 1.6K
Веб-дизайн *Разработка веб-сайтов *JavaScript *HTML *TypeScript *
Обзор

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 2

IntelliJ IDEA 2023.2. Language Server Protocol, AI Assistant, IntelliJ Profiler в редакторе, GitLab merge requests, ftw

Время на прочтение 8 мин
Количество просмотров 6.6K
Блог компании Failover Bar JavaScript *Программирование *Java *DevOps *
Ретроспектива

Только что вышла IntelliJ IDEA 2023.2. В этом релизе в IDE появилась куча интересных фичей и важных улучшений.

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

Этот релиз IntelliJ IDEA 2023.2 представляет вам AI-ассистента, вооруженного набором инструментов машинного обучения. IntelliJ Profiler показывает подсказки в редакторе, делая профилирование более интуитивным и иформативным. Еще, в этом релизе появилась интеграция с GitLab.

В том посте мы пробежимся по всем основным фичам IntelliJ IDEA 2023.2. В отличие от официального анонса, вся европейская политкорректность выкинута на свалку, автор перевода не видит никакой ценности в соблюдении повесточки.

Кроме того, в этот четверг в Питере будет встреча Javawatch, посвященная Java 21. Я прочитаю мини-доклад минут на 30 о новых фичах, и потом мы сможем все вместе собраться и за кружкой пива это обсудить. Анонс события в телеге, обсуждение в чате. Я бывший PMM в JetBrains Big Data и тимлид в Remote Development/Projector, а сейчас работаю над российским дистрибутивом Java - Axiom JDK.

Волшебно. Читать далее.
Всего голосов 40: ↑35 и ↓5 +30
Комментарии 38

React + Styled Components — идеальная анимация. Параметризованная анимация

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 2.8K
CSS *JavaScript *ReactJS *TypeScript *
Из песочницы

В данной статье продемонстрирован способ реализации “параметризованной” css анимации React компонента с помощью styled components. Параметризованная потому что css анимация описывается через параметры, которые динамически рассчитываются на основе пропсов и состояний компонента при его рендеринге.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 4

Futhark в браузере

Уровень сложности Сложный
Время на прочтение 7 мин
Количество просмотров 2.7K
Блог компании Timeweb Cloud JavaScript *Расширения для браузеров Браузеры
Обзор
Перевод
image

В IT так: если что-то существует, то рано или поздно это будет существовать и в браузере. Сегодня так устроен мир. Благодаря работе Филипа Лассена, теперь вы можете гонять Futhark у себя в браузере. В данном посте рассказано, как этого удалось добиться, и почему этот функционал пока не так полезен, как мог бы (спойлер: пока не поддерживается работа с GPU), и какие есть перспективы этот функционал доработать. Подробно о том, как спроектирован этот язык, рассказано в магистерской диссертации Филипа.
Читать дальше →
Всего голосов 24: ↑19 и ↓5 +14
Комментарии 2

Как работает Evercookie в 2023 году

Уровень сложности Средний
Время на прочтение 35 мин
Количество просмотров 2.1K
JavaScript *Angular *
FAQ

В 2010 году Сами Камкар написал скрипт, который позволял идентифицировать пользователя сайта, если тот ранее посещал его. Решение было названо эверкукой (суперкукой). Данная статья рассматривает механизм восстановления куки и отвечает на вопрос работает ли это в 2023 году. В конце статьи приводится реализация части evercookie для Angular.

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Комментарии 9

TypeScript 5.2: Новое ключевое слово: 'using'

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 3.4K
JavaScript *TypeScript *
Обзор
Перевод

В TypeScript 5.2 появится новое ключевое слово 'using', которое можно будет использовать для утилизации чего-либо с помощью функции Symbol.dispose, когда оно покидает область видимости.

Читать далее
Всего голосов 9: ↑2 и ↓7 -5
Комментарии 3

Web API для Angular

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 2.4K
Блог компании TINKOFF Open source *JavaScript *Angular *TypeScript *
Дайджест

Веб — богатая экосистема с массой мощных API, которая только пополняется. В нашем распоряжении уже знакомые инструменты — Canvas или Intersection Observer, но в 2023 мы также имеем Web MIDI API, Speech Recognition и даже такие экзотические штуки, как геймпады и VR прямо в браузере. Естественно, эти API сложно использовать в Angular из-за разницы парадигм нативного JavaScript и декларативного Angular. Вот тут и появляемся мы!

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 0

Под капотом анимаций в React Native. Часть 1/2: Animated and Bridge

Время на прочтение 8 мин
Количество просмотров 1.3K
Блог компании СберМаркет JavaScript *Разработка мобильных приложений *Интерфейсы *ReactJS *
Обзор

Как улучшить работу анимаций в React Native?

Привет! Меня зовут Евгений Прокопьев, я старший инженер-разработчик в СберМаркете. На React Native я пишу уже больше 6 лет и очень люблю создавать красивые анимации. Я уже делал обзор на 6 инструментов для анимаций в RN, а в этот раз хочу углубиться в работу Animated и Reanimated под капотом. Это поможет вам более осознанно выбирать инструмент под ваши задачи и умело лавировать грабли, на которые можно наступить, работая с RN.

Читать далее
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 0

Как работает Zustand

Уровень сложности Сложный
Время на прочтение 8 мин
Количество просмотров 2.4K
Разработка веб-сайтов *JavaScript *ReactJS *
Обзор


Hello world!


Zustand (читается как "цуштанд", что переводится с немецкого как "состояние") — это, на мой взгляд, один из лучших на сегодняшний день инструментов для управления состоянием приложений, написанных на React.


В этой статье я немного расскажу о том, как он работает.


Давайте начнем с примера использования zustand для реализации функционала отображения/скрытия модального окна.

Читать дальше →
Всего голосов 4: ↑4 и ↓0 +4
Комментарии 7

Считаем 2+2×2

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 5.5K
JavaScript *Компиляторы *
Из песочницы

Статья-туториал для тех, кто хочет узнать, как из заголовка получается «6» методом рекурсивного спуска. Начнём с самого простого и дойдём до вычисления -1.82 или около того из строки -2.1+ .355 / (cos(pi % 3) + sin(0.311)).

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

Читать далее
Всего голосов 19: ↑19 и ↓0 +19
Комментарии 5

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

Работа