Обновить
512K+

JavaScript *

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

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

Как сконфигурировать GraphQL request с интерсепторами на примере JWT авторизации

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

Ссылка на документацию по пакету: https://www.npmjs.com/package/graphql-request

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

Шаг 1. Устанавливаем пакет 

yarn add graphql-request graphql

Шаг 2. Создаем класс контекста запроса

Читать далее

На что стоит обратить внимание новичкам при работе с ReactJS

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

Всем привет, меня зовут Иван, я – разработчик ПО в Orion Innovation. Сейчас много публикаций по фронтенд-разработке, в которых начинающему специалисту легко потеряться и упустить неочевидные вещи.

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

Читать далее

Блюр объектов в реальном времени на видео с помощью canvas

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

Конфиденциальность это очень важная часть в современном мире. Снимая видео на своей телефон в общественном месте, не всегда, люди, которые попадают в кадр, будут довольны этим и можно получить "по жопке" за это. Для избежания этого лица рамывают или пикселизируются.

Сегодня я хочу поделиться реализацией такого блюра/пикселизации видео (изображения) в вебе.

Читать далее

React: немного о работе с формами

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


Привет, друзья!


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



Я тоже решил попробовать в этом свои силы, чему и посвящена настоящая статья. Под "этим" я подразумеваю разработку кастомного хука для работы с формами в React.


Сначала мы разработаем хук, затем используем его в формах для регистрации и авторизации.


Для большей правдоподобности мы напишем простой express-сервер, который будет возвращать некоторые пользовательские данные (например, jwt-токен и хешированный пароль), а также некоторые типичные для процесса авторизации ошибки (например, 404 User not found или 409 Email already in use).


При разработке хука и компонентов приложения мы применим несколько продвинутых паттернов, которые, смею надеяться, покажутся вам интересными.


Песочница:



Возможно, для того, чтобы в песочнице все заработало, потребуется ввести команду yarn dev в терминале.


Хук в форме npm-пакета — simple-form-react.

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

Дайджест свежих материалов из мира фронтенда за последнюю неделю №481 (15 — 22 августа 2021)

Время на прочтение2 мин
Охват и читатели7.4K
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.

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

Планы React Native на второе полугодие 2021 года

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

За последний год в нашем мире так много изменилось, и React Native не исключение. Мы приветствовали новых членов в нашей команде (с которыми мы очень рады встретиться лично!), наши проекты созрели, и появились новые возможности. Мы рады поделиться всем этим с вами в этой публикации!

В Facebook наша команда работает полугодиями. Каждое полугодие мы пересматриваем нашу стратегию, устанавливаем планы и делимся ими внутри компании. Сегодня мы хотим поделиться с вами, нашим комьюнити, нашими планами на второе полугодие 2021 года.

Вторая половина года - захватывающая для React Native. Наши основные направления включают развитие сообщества, начало развертывания новой архитектуры с открытым исходным кодом и продвижение технологии.

Читать далее

Что такое v9s, и почему потребовалось писать еще одну библиотеку валидации?

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

Примерно год назад фронтенд нашего проекта, в качестве фреймворка для которого используется Vue.js 2, дошел до состояния, хорошо описываемого словами "проще сжечь".

К тому времени наш нетипизированный корабль уже трещал по всем швам, и решено было убить сразу нескольких зайцев одним выстрелом: полностью перевести проект на TypeScript, внедрить Vue Composition API и решить проблемы валидации сложных форм.

А проблемы были. Vuelidate - отличная библиотека с массой готовых валидаторов и остается таковой до тех пор, пока мы имеем дело с, так сказать, плоскими формами - формами, не использующими вложенных компонентов, также требующих валидации. Vuelidate работает на уровне компонента, требует наличия миксина, содержит массу правил, которые нам не были нужны, но все равно тянулись в составе пакета, поддержка TypeScript и Composition API на тот момент отсутствовала, и мы не могли более с этим миритьcя.

Читать далее

Десятка лучших frontend-сообществ и каналов

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

Что может быть ценнее новых идей и нового опыта? Только возможность обсудить их вместе с людьми, которые в теме. 

Мы решили сделать для вас подборку самых интересных frontend-сообществ и полезных каналов на YouTube для разработчиков JavaScript и веб-дизайнеров.

Читать далее

Эффективный поиск XSS-уязвимостей

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


Про XSS-уязвимости известно давным-давно — казалось бы, нужен ли миру ещё один материал о них? Но когда Иван Румак, занимающийся тестированием безопасности, поделился методологией их поиска на нашей конференции Heisenbug, реакция зрителей оказалась очень положительной.


И спустя два года у этого доклада по-прежнему растут просмотры и лайки, это один из самых востребованных материалов Heisenbug. Поэтому теперь мы решили, что многим будет полезна текстовая версия, и сделали ее для Хабра.


Под катом — и текст, и видео. Далее повествование идет от лица Ивана.

Компоненты-конструкторы: мощь ng-content в Angular

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

Проекция контента — одна из базовых возможностей Angular, о которой слышали почти все. А с недавних пор по ней появилась и хорошая официальная документация. Тем не менее в реальных задачах разработчики часто обходят ng-content стороной, прибегая к более сложным и перегруженным решениям и усложняя дальнейшее использование и поддержку компонента.

В этой статье я хотел бы показать несколько типовых кейсов для ng-content при разработке многократно используемых компонентов. А еще — рассказать о преимуществах, которые они могут нам дать.

Давайте посмотрим

E-learning на костылях. Тестовое задание для непростого e-learning мастера

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

В этой статье я покажу «хрустальную туфельку» с помощью которой я ищу довольно необычного спеца в e-learning.

Под катом будет несколько задач на знание сильно устаревшего, но широко используемого стандарта, одного из десятков авторских средств и чуть-чуть ненормального JavaScript.

Если интересно поупражняться, прошу в комментарии. Ответы добавлены.

Читать далее

V8 в бэкенде С++: от одного JS-скрипта до фреймворка онлайн-вычислений

Время на прочтение31 мин
Охват и читатели12K
В этой статье я расскажу о долгом путешествии, в котором простая идея выноса в JavaScript часто меняющихся фрагментов алгоритма постепенно выросла в универсальный фреймворк, позволяющий быстро создавать микросервисы и так же быстро их развивать. Сейчас он служит основой для множества микросервисов в Яндекс Go. Тут не будет много специфики Go. Вместо этого будет много разработки и решений технических задач (а не продуктовых). Ещё я, конечно, расскажу про возникшие в процессе трудности: если вам, например, интересно, как V8 уживается с корутинами или как мы оптимизировали работу с ним для производительности, то добро пожаловать под кат.


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

Наш опыт использования Jira: cоздание подзадач по шаблонам

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


В предыдущей статье "Несколько примеров успешного изобретения велосипеда" мы поделились рядом решений, полученных путем комбинирования наших плагинов для Atlassian, таких как MyGroovy, JSIncluder и MyCalendar. На этот раз мы рассмотрим еще один плагин из нашей коллекции — Custom Select List.

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

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

JavaScript: об очистке данных, хранящихся на стороне клиента, по сигналу сервера и немного о карте импортов

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


Введение


Привет, друзья!


Представляю вашему вниманию результаты небольшого исследования, посвященного очистке данных, хранящихся на стороне клиента по сигналу сервера. Речь идет об относительно новом HTTP-заголовке Clear-Site-Data. Также в этой статье мы немного поговорим про карту импортов (imports map).


Статья состоит из двух частей: теоретической и практической.


В теоретической части мы кратко рассмотрим карту импортов и более подробно Clear-Site-Data.


В практической части мы поднимем два сервера — один будет запускаться локально и, помимо прочего, обслуживать статические файлы нашего приложения, другой мы развернем на Heroku. Сначала мы запросим данные (включая куки) от серверов, сохраним эти данные в браузере с помощью трех наиболее популярных механизмов (локальное хранилище, индексированная база данных и интерфейс кеширования), затем попробуем очистить их с помощью заголовков Clear-Site-Data. Для разрешения путей импортируемых в приложении модулей мы будем использовать карту импортов.


Исходный код проекта находится здесь.

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

Node.js кросс-доменная инъекция Cookie

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

Кросс-доменная инъекция Cookie на Node.js, где это можно использовать, и как это реализовать.

Читать далее

Генерация документации с использованием JSDoc

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

JSDoc - это язык разметки, используемый для аннотирования исходного кода JavaScript с использованием комментариев. Аннотации обрабатывается различными инструментами для создания документации в доступных форматах, таких как HTML и Rich Text Format.

Читать далее

Dependency Injection в React — максимально просто

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

В интернете немало публикаций на тему реализации Dependency Injection (далее - DI) в React, также существует немало сторонних npm-пакетов, таких как inversify-react, react-simple-di и других. Но, по моему мнению, DI настолько просто реализуется средствами самого React, без дополнительных выкрутасов и boilerplate-кода, что никакая сторонняя библиотека во многих случаях попросту не нужна. В данной небольшой статье я постараюсь обосновать это свое мнение. Примеры кода будут приведены на TypeScript.

Читать далее

Super Duper Secure Mode

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

Команда VR (Vulnerability Research) экспериментирует с новой функцией, которая бросает вызов некоторым общепринятым предположениям, которых придерживаются многие в коммюнити браузеров. Мы надеемся создать что-то, что изменит современные эксплойты и значительно повысит трудозатраты для злоумышленников. Меры по смягчению последствий издавна обходятся без внимания, поэтому мы стремимся получить отзывы от сообщества, чтобы создать что-то ценное и долговременное.

Самое главное, что мы планируем получать - удовольствие от этого проекта. Это включает в себя присвоение эксперименту немного провокационного названия, так как мы думаем, что оно забавное, и еще слишком рано для чего-то официального.

Читать далее

Умные тесты производительности своими руками

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

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

Это не так просто, как хотелось бы. С функциональными тестами всё прозрачно — тест либо проходит успешно, либо фэйлится. А в Perfomance-тесте у вас есть какая-то цифра, и непонятно — хорошая она или плохая. Если бы мы использовали инструмент типа Lighthouse, можно было выставить performance-бюджет, чтобы зафиксировать эту цифру на каком-то уровне. Но для динамической ситуации это не подходит. Расскажу, как это понять и использовать.

Читать далее

Redux Vs Vuex. Часть 2

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


Привет, друзья!


Предлагаю вашему вниманию результаты небольшого исследования, посвященного сравнению Redux и Vuex. Это вторая часть статьи, вот ссылка на первую.


Введение


Redux и Vuex — это библиотеки для управления состоянием приложений, написанных на React и Vue, соответственно. Каждая из них по-своему реализует архитектуру для создания пользовательских интерфейсов, известную под названием Flux.

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