Обновить
236.23

JavaScript *

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

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

Infinite scroll (бесконечный скролл) +Virtualization (виртуализация) на примере ReactJS+ RTK Query

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

На сегодняшний день любое уважающее себя предприятие, будь то магазин строительных товаров или компания по предоставлению услуг в сфере бизнеса, все они стремятся «выложить» свои товары и услуги в интернет. Это и понятно – мы живем в век бурно развивающихся технологий и доступ в интернет имеет более 65% населения мира (около 5.3 млрд. человек), а к 2025 году это число увеличится до 6.54 млрд. (внушительно, не правда ли?). Так, о чем я, всех их нужно обслуживать, всем им нужно предлагать услуги, товары и т.д. Как говорится: «На вкус и цвет – товарища нет» и правда сколько людей – столько мнений, а в нашем случае товаров и услуг. На фоне этого возникает резонный вопрос: «А как все это отобразить у меня на сайте, чтобы пользователь не ждал до следующего года загрузки страницы сайта, когда к тому времени успеют появиться еще товары, которые необходимо будет подгрузить?». При такой картине мира и самых оптимистичных прогнозах о темпах появления новых вещей, мы имеем неосторожность войти в некую рекурсию.

С детства нас учили есть маленькими порциями и тщательно пережевывать, так почему бы и в сложившейся ситуации получать всю информацию не одним скопом, а порционно? Именно такое решение предлагаю рассмотреть в своей статье. И если уж касаться темы еды (видимо, не стоит писать на голодный желудок), то стоит проглатывать еду, которую мы уже прожевали, а не копить ее во рту, иначе когда-нибудь он порвется (Джокер, к тебе претензий нет).  Так и мы будем удалять элементы из DOM-дерева, которые не доступны взору пользователя, чтобы не перегружать наш сайт.

Читать далее

React + Three.js. Создаём собственный 3D шутер. Часть 1

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

Привет, дорогие пользователи мира IT!

В эпоху активного развития веб-технологий и интерактивных приложений, 3D-графика становится всё более актуальной и востребованной. Но как создать 3D-приложение, не теряя преимуществ веб-разработки? В этой статье мы рассмотрим, как сочетать мощь Three.js с гибкостью React, чтобы создать собственную игру прямо в браузере.

В статье вы познакомитесь с библиотекой React Three Fiber и научитесь создавать интерактивные 3D-игры.

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

Увеличиваем свою производительность в WebStorm / PhpStorm c помощью шаблонов

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

В статье рассмотрим как создавать шаблоны в продуктах Jesbrains (WebStorm, PhpStorm, Intellij, PyCharm).

Читать далее

Пристальный взгляд на отладку JavaScript приложений

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

Всем привет!


Меня зовут Паша Востриков, я делаю на JS/TS много разного в «Лаборатории Касперского»: фронт, облачные сервисы (Node.js), штуки для коробочной поставки (OnPrem), платформенные компоненты и библиотеки. И, конечно же, Open Source.


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


Итак, как отлаживаться? Как-как? console.log(1)


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

Один компонент, 20+ фич, A/B-тесты: Поможет ли машина состояний?

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

Сталкивались ли вы с проблемой возникновения багов из-за пересечения включенных фичей в приложении? Или, возможно, была необходимость одновременно проводить большое число A/B-экспериментов в одном компоненте? 

Некоторое время назад команда Почты Mail.ru решала задачу управления сложным состоянием приложения с большим количеством фичей и источников данных с помощью конечных автоматов. Нужно было ускорить разработку и тестирование, поддерживая возможность проведения более чем 20 А/В-экспериментов. На тот момент, я работал там над проектами портальной навигации и главной страницы.

Меня зовут Денис Стасьев. В этой статье расскажу о том, как мы внедряли машину состояний в одном из компонентов главной страницы Mail.ru — блоке новостей, что получили на выходе и ещё подробнее о том, почему в итоге остановились на XState.

Читать далее

Как использовать Cart API в Shopify

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

Недавно я писал конфигуратор в Shopify и решил поделиться тем, как добавить несколько товаров в Шопифай корзину. Прикрепляю скринкаст того, что можно сделать при помощи этого. Но применений довольно много, не только конфигуратор, например...

Читать далее

Как мы создаём Squadus. Реализуем «прыжок к сообщению» в мобильной версии

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

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

Сегодня расскажем о том, как в мобильной версии Squadus реализовали востребованную функцию — «прыжок к сообщению» в чате (jump to message).

Для чего современным чатам нужна эта возможность? Прыжок позволяет «отмотать» чат от цитируемого сообщения к оригиналу. Открыть чат, который игнорировался пару дней, не с последнего сообщения, а с момента прошлого открытия. Или отыскать в истории нужное сообщение двухгодичной давности, которое во время жаркой дискуссии можно привести собеседникам как сильный аргумент. Наконец, благодаря функции пользователь может оказаться в нужном чате и на нужном месте в истории сообщений, просто кликнув push-уведомление.

О технических аспектах реализации «прыжка к сообщению» читайте под катом.

Читать далее

Restyle как новый стандарт для создания UI в React Native

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

Restyle предоставляет набор инструментов, которые позволят строить UI продуктов на основе токенов. Особенно очень хорошо такой подход залетает, когда в продукте есть Дизайн Система и этот набор токенов действительно определен.

Одно из основных преимуществ библиотеки Restyle по сравнению с той же styled-system, в том, что она не использует styled-components под капотом. В основе Restyle используются абстрактные стили StyleSheet, поэтому ожидается более высокая производительность.

Читать далее

React Fiber & Concurrency Part 1 (2)

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

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

Тема разделена на две статьи. Первая статья расскажет о процессе обновления и внесения изменений в DOM. Вторая статья посвящена реализации не блокирующего рендеринга - Concurrent React. Данная статья является первой из двух.

Читать далее

Svelte: Знакомство с рунами

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

В 2019 году Svelte 3 превратил JavaScript в реактивный язык. Svelte - это фреймворк для создания веб-интерфейса, который использует компилятор для превращения декларативного кода компонентов в такой...

Читать далее

Tailwind не только для MVP

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

Всем привет!

Обычно tailwind используют для каких-то MVP/админок/не очень больших проектов, но мне кажется, что tailwind, имеет место быть в средних и крупных проектах. Большинство его минусов решаемы, а плюсы чертовски хороши :)

В этой статье я распишу его плюсы и минусы и как можно минусы превратить в плюсы.

Tailwind больше чем просто MVP

Парсинг, хранение и отображение логов 4-х разных агентов доставки электронной почты. Развитие MTA Log Parser

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

В продолжение моей предыдущей статьи о MTA Log Parser хотелось бы поделится результатами работы над теми хотелками, которые появились после ее публикации. Появился первый feedback, который в итоге принес следующие нововведения:

Читать далее

TypeScript и все что тебе нужно в разработке

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

Все для работы с продвинутым TS внутри. Generic Types, Mapped Types, Types Guard, Utility Types и многое другое. Шпаргалка с навигацией и примерами.

К изучению

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

Sinuous — JavaScript UI библиотека с небольшим размером

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

Есть много библиотек и фреймворков, которые помогают преодолеть все препятствия на пути JavaScript разработчика. Если раньше мы использовали ванильный JS, то со временем пришёл jQuery, а затем React и Vue. Каждый год появляется все больше новых библиотек, фреймворков и инструментов. Некоторые из них продолжают развиваться и находят свою аудиторию, в то время как другие исчезают и постепенно забываются. В статье рассмотрим ещё одну библиотеку, которая может быть полезной для разработки небольших и простых пользовательских интерфейсов.

Читать далее

Минуты и часы не нужны

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

landing page для наглядности

Нет часов. Нет минут. Нет часовых поясов. До свидания.

Данный счёт времени достался нам по наследию от наших предков. Если говорить грубо, то вероятнее всего какой-то один человек решил, что это будет удобно, если каждая более крупная единица будет равняться 60 мелким. Но нет. Так как мы используем десятичную систему счисления, удобнее, чтобы более крупная единица равнялась числу кратному десяти. Например, как это сделано во всех остальных единицах - по 1000. И даже приставки каждой единицы уже придуманы кило-, мега-, гига-, тера и т.д. Каждая более крупная единица содержит 1000 мелких. Как вариант, это очень удобно и уже давно стандартизировано.

ахаха

Создание мини игр и анимации в Online редакторе Collagen_2

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

Collagen позволяет создавать тестовую анимацию управляемую с клавиатуры, имеется редактор уровней который позволяет создавать слои, перемещать камеру вида а также управлять анимацией персонажа.

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

В данном примере будет объяснена простейшая анимация движения персонажа, а также принцип работы камеры вида сверху.

Читать далее

Event Loop в деталях

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

В данной статье поговорим о том, почему Event Loop вообще был создан, как с ним работать и почему про него спрашивают на собесах.

JS был спроектирован как однопоточный язык программирования. Это значит, что он может выполнять только одну операцию одновременно. Тем не менее у JavaScript есть такой механизм как Event Loop, который как раз и позволяет выполнять "асинхронные" операции. Почему "асинхронные" в кавычках? Да просто потому что JavaScript тоже выполняет их синхронно, асинхронности в самом JavaScript как таковой нет. Вперед под кат, будем разбираться)

Promise.then()

Создание конвертера JSON в Typescript с помощью React, NodeJS и ChatGPT

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

Эта статья — отличное подспорье для каждого, кто хочет ускорить процесс разработки с помощью автоматизации. Из нее вы узнаете, как создать веб-приложение, которое преобразует объекты JSON в интерфейсы Typescript с помощью API ChatGPT. Приведенные пошаговые инструкции смогут легко выполнить даже новички.

Читать далее

Web Accessibility в рассказе «A11Y от 0 до NaN»

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

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

Итак, приступим

Создаем мини-игру с капельным эффектом и движущимися кружками. Часть 2. Финал

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

Привет, дорогие пользователи мира IT!

В современной веб-разработке существует множество способов сделать ваш сайт интересным и привлекательным для пользователей. И даже используя простые техники можно добиться высоких результатов!

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

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

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