Category : javascript

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

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

  • суббота, 30 сентября 2023 г. в 00:00:43
javascript
Пристальный взгляд на отладку JavaScript приложений

Всем привет! Меня зовут Паша Востриков, я делаю на JS/TS много разного в «Лаборатории Касперского»: фронт, облачные сервисы (Node.js), штуки для коробочной поставки (OnPrem), платформенные компоненты и библиотеки. И, конечно же, Open Source. Сегодня хотел бы затронуть тему отладки веб-приложений на JavaScript. Итак, как отлаживаться? Как-как? console.log(1) 1. Отладка Frontend tl;dr: для отладки фронтового кода: debugger; browser breakpoint + conditional breakpoint; logger with remote stora…

  • суббота, 30 сентября 2023 г. в 00:00:43
javascript
Restyle как новый стандарт для создания UI в React Native

Меня зовут Павленко Виталий, я Team Lead в команде UI-kit в Профи.В какой-то момент мы хотели решить несколько проблем с UI-kit в наших React Native приложениях:UI-kit был слишком медленный. И здесь важно уточнить, что он был сделан с использованием styled-components.В UI-kit не было возможности темизации, потому что токены импортировались как модуль в каждом компоненте. И как следствие, в приложении невозможно было сделать темную тему, потому что при смене токенов оно бы просто не перерендери…

  • пятница, 29 сентября 2023 г. в 12:52:53
javascript
React 18: что поменялось

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

  • пятница, 29 сентября 2023 г. в 12:52:52
javascript
Как мы создаём Squadus. Реализуем «прыжок к сообщению» в мобильной версии

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

  • пятница, 29 сентября 2023 г. в 12:52:52
javascript
Как добавить несколько товаров в Shopify корзину одним кликом?

ПредисловиеНедавно я писал конфигуратор в Shopify и решил поделиться тем, как добавить несколько товаров в Шопифай корзину. Я находил не так много материалов по этому вопросу, тем более на русском языке.Прикрепляю скринкаст того, что можно сделать при помощи этого. Но применений довольно много, не только конфигуратор. В скринкасте я добавил 6 товаров по одному клику на "Add to cart" кнопку. Но до лимита в количестве добавляемых товаров я не дошёл, может их и нет.Cart APIЧтобы добавить …

  • пятница, 29 сентября 2023 г. в 12:52:51
javascript
React Fiber & Concurrency Part 1 (2)

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

  • среда, 27 сентября 2023 г. в 00:00:39
javascript
Парсинг, хранение и отображение логов 4-х разных агентов доставки электронной почты. Развитие MTA L…

В продолжение моей предыдущей статьи о MTA Log Parser хотелось бы поделится результатами работы над теми хотелками, которые появились после ее публикации. Появился первый feedback, который в итоге принес следующие нововведения:поддержка учетных записей (внутренних или посредством LDAP авторизации), пока без разграничений по правам доступа (было бы что разграничивать =) )возможность экспорта отображаемой страницы в xls файл для каких-либо служебных нуждпарсинг логов MS Exchange Server (пока в з…

  • вторник, 26 сентября 2023 г. в 00:00:14
javascript
Tailwind не только для MVP

Всем привет!Обычно Tailwind используют для каких-то MVP/админок/не очень больших проектов, но мне кажется, что Tailwind, имеет место быть в средних и крупных проектах. Большинство его минусы решаемы, а плюсы чертовски хороши :)В этой статье я распишу его плюсы и минусы и как можно минусы превратить в плюсы.Сначала, коротко о том, что такое TailwindTailwind - это CSS-фреймворк, предоставляющий набор готовых классов для стилизации веб-интерфейсов.На главной Tailwind можно прочитать вот это - Rap…

  • вторник, 26 сентября 2023 г. в 00:00:13