1. Как очистить глобальные слушатели событий, интервалы и сторонние библиотеки в Vue-компонентах
В идеале Vue-компоненты представляют собой самодостаточные части пользовательского интерфейса без каких-либо заметных побочных эффектов для объектов за пределами области действия данного элемента. Но, к сожалению, это не всегда возможно. Например, иногда нам нужно связать глобальных слушателей событий, использовать setInterval или инициализировать определенную стороннюю библиотеку внутри компонента.
В подобных случаях компоненты должны очищаться после их уничтожения. Если этого не сделать, могут произойти самые разнообразные неприятности — от сбоев в работе наших приложений до утечек памяти.
2. Использование потоков для создания высокопроизводительных Node.js приложений
В тот момент, когда вы набираете что-то на клавиатуре, читаете файл с диска или скачиваете его через Интернет, поток информации (биты) проходит через различные устройства и приложения.
Если вы научитесь работать с этими потоками битов, то сможете создавать высокопроизводительные и полноценные приложения. Например, вспомните, как просматривается видео на YouTube. Необязательно ждать, пока загрузится весь видеоролик. Как только в буфер попадает небольшой фрагмент, он начинает воспроизводиться, а остальное продолжает загружаться по мере просмотра.
Node.js включает встроенный модуль stream
, который позволяет нам работать с потоковыми данными. В данной статье на нескольких простых примерах мы объясним, как можно использовать этот модуль. Мы также опишем, как можно построить пайплайны, склеивая различные потоки вместе, чтобы создавать высокопроизводительные приложения для сложных сценариев использования.
Перед тем как перейти к созданию приложений, важно понять, какие возможности предоставляет Node.js модуль stream
.
3. Захват флага: Практика уязвимости веб-приложений на Node.js
На этот раз я принес вам практикум по поиску уязвимостей в веб-приложениях Node.js. Это несложно. В веб-приложении есть 2 уязвимости. Способ «захватить флаг» — означает успешно войти в систему. Если вам все удалось, текст flag будет отображен на странице.
4. Создание бессерверных API с помощью Node.js и AWS Lambda
AWS Lambda существует уже несколько лет, и она остается самым популярным способом экспериментировать с технологией serverless. Если вы не знакомы с serverless, то это модель разработки, в которой управление, предоставление и масштабирование серверов абстрагируется от разработки приложений. Серверы существуют в бессерверном (serverless) мире, но они полностью управляются облачным провайдером, что позволяет разработчикам сосредоточиться на упаковке своего кода для деплоя.
AWS Lambda — это разновидность функции как услуги (FaaS), которая позволяет выполнять код по требованию в ответ на предварительно сконфигурированные события или запросы. Эта статья познакомит вас с AWS Lambda и поможет создать и развернуть функции Lambda с помощью Node.js и AWS SAM.
5. Рефакторинг компонента React со 165 до 30 строк
React Hook Form — одна из самых популярных библиотек для обработки элементов ввода формы в экосистеме React. Но добиться ее правильной интеграции может быть непросто, если использовать какую-либо библиотеку компонентов. В этой статье автор показывает, как можно интегрировать React Hook Form с различными компонентами Material UI.
6. Создание собственного React с нуля
В последнее время видны масштабные изменения в способах разработки веб-приложений. Если раньше интерфейс создавался на сервере, а на стороне клиента выполнялись лишь незначительные сценарии, то в наши дни стандартом является использование какой-либо из различных библиотек реактивного рендеринга для создания сложных стейтфул клиентских приложений.
Хотя многие разработчики успешно применяют такие библиотеки как React или Vue, понимание их точной внутренней работы не слишком широко изучено. В этой статье я расскажу о создании собственной библиотеки реактивного рендеринга, и разъясню, что происходит под капотом.
7. React hooks, как не выстрелить себе в ноги. Часть 1: работа с состоянием
Использование хуков, с одной стороны, позволяет использовать методы жизненного цикла в функциональных компонентах и призваны улучшать производительность, что делает функциональные компоненты полноценным конкурентом классовых компонентов. С другой стороны, неправильное использование хуков приводит к лишним операциям и может свести на нет все преимущества функциональных компонентов. В этой серии статей разберем основные хуки реакта и как их использовать правильно.
8. React hooks, как не выстрелить себе в ноги. Часть 2: useEffect и useLayoutEffect
В этой статье разберем как с помощью useEffect
воспроизвести методы жизненного цикла в функциональных компонентах. Поговорим, как и когда использовать useEffect
и useLayoutEffect
. Обсудим особенности отправки запросов из useEffect
. Также узнаем, почему массив зависимостей необязателен и когда это может пригодиться.
9. React hooks, как не выстрелить себе в ноги. Часть 3.1: мемоизация, memo
В прошлых статьях мы разбирали, как работать с useState и с useEffect. Знаем: код компонента будет выполняться каждый раз при его обновлении. Отсюда возникает проблема — данные и сложные вычисления будут теряться, также будет происходить лишнее обновление дочерних компонентов. Эти проблемы решает хук useMemo и обертка над ним useCallback, но оба работают в связке с memo hoc.
10. Фреймворки для тестирования Node: Хорошие, плохие, медленные и ресурсоемкие
Давайте вместе выясним, как обстоят дела с требованиями к памяти и производительностью Jest в сравнении с его конкурентами: AVA, Mocha и Tap.