Обновить
256K+

JavaScript *

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

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

Насколько опасна JavaScript-криптография?

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


Каждые несколько лет среди специалистов по безопасности поднимаются дискуссии о вреде JS-криптографии. Сейчас они возобновились. Что стало поводом и почему у некоторых специалистов такое предубеждение к криптографическим операциям в браузере? Попробуем разобраться.
Читать дальше →

Зачем нужно внедрение зависимостей в JS

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

Этот пост является ещё одной попыткой сформулировать идею, зачем нужно внедрение зависимостей в ванильном JavaScript (именно в ES6+, а не в TS).

Основная сложность в том, что шаблон «внедрение зависимостей» (DI) есть следствие применение на практике «принципа инверсии зависимостей» (DIP). Классическая формулировка этого принципа выглядит так:

A. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.

B. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Для JS‑программиста данная формулировка представляет определённую сложность в силу того, что в JS нет классических абстракций (в виде «интерфейсов» из других ЯП). В JS вообще нет абстракций, тут всё очень конкретно: вот объекты, вот примитивы — комбинируй.

Тем не менее, если спуститься с уровня теории на уровень практики, внедрение зависимостей вполне успешно может применяться даже в таком «конкретном» языке.

Читать далее

Вышел Chrome 115

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

В этой статье вы узнаете про:

Анимации на основе скрола

Topics API

Ограждённые Фреймы

Privacy Sandbox

и многое другое!

Читать далее

Архитектура микрофронтенд с feature sliced design

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

В этой статье я рассказываю, как мне удалось сделать весьма не плохую архитектурное решение с применением Microfrontend и Feature Sliced Design. Вкратце что из себя представляет обе эти архитектуры.

Читать далее

Mobx: библиотека глобальных сторов (state manager)

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

Что такое Mobx?

Mobx — это библиотека, дающая разработчикам инструмент для глобального использования переменных и методов между разными компонентами.

Mobx простая и понятная в использовании библиотека, использующая в своей реализации Context API и, по сравнению с Redux, требующая минимум шаблонного кода для инициализации стора.

Mobx сторы хорошо масштабируются и для каждого стора можно определить его область видимости, помещая соответствующие компоненты внутрь провайдеров стора.

Зачем использовать глобальные сторы?

Глобальный стор упрощает передачу параметров между компонентами, изменение которых вызывает ререндер активного интерфейса.

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

Наглядно поток передачи параметров между компонентами без и с Mobx показан на слайде:

Читать далее

Книги для JavaScript-разработчика: то, что реально помогает развиваться. От простого к сложному

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

Привет, Хабр! Сегодня предлагаем подборку книг для JavaScript-разработчика. Подобраны они в порядке усложнения материала. То, что в начале подборки, пригодится начинающему специалисту (правда, перечитать не помешает и профи). А ближе к концу — книги для более опытных разработчиков. Если же у вас есть собственные предпочтения, то расскажите о них тоже — поделитесь в комментариях.

Читать далее

Как тестировать не-REST-бэкенд. Часть вторая, WebSocket

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

Привет! Продолжаем цикл статей про тестирование не-REST-бэкенда, в прошлый раз мы говорили о GraphQL, теперь пришло время WebSocket.

Итак, что такое WebSocket?

Википедия сообщает, что это «протокол связи поверх TCP-соединения, предназначенный для обмена сообщениями между браузером и веб-сервером, использующий постоянное соединение».

Что тут важно — что это протокол (со всеми вытекающими последствиями для протокола), который использует постоянное соединение.

Работу по WebSocket в обычной жизни можно представить примерно так.

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

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

ОК, что вам делать в такой ситуации?

Читать далее

Динамический импорт remote компонента Module Federation на Vue 3

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


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

Узнать о Module Federation

Манипулируй DOM правильно

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

Зачастую, когда я наталкиваюсь на информацию о работе с DOM в Angular, в них присутствуют упоминания об одном или нескольких из этих классов: ElementRef, TemplateRef, ViewContainerRef. Именно упоминания, ведь общее  представление достаточно сложно сложить, даже тщательно изучив документацию Angular. Поэтому я решил подробно сформулировать, как это работает и для чего нужно.

Подробнее

[React] Разбираем useId( ) хук под микроскопом

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

Всем привет!

Уже давно я заприметил относительно новый хук useId, с которым давно хотел разобраться для чего он нужен, как он работает и конечно же обязательно нужно заглянуть в исходники. И теперь потыкав этот хук палкой, почитав React документацию, пролистав несколько статей и изучив парочку видео на YouTube. Я готов этим с вами поделиться. Поехали!

Читать далее

Не наступил ли у React момент переписывания Angular.js на Angular?

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

В 2012 году Angular.js серьёзно поменял frontend-разработку. Фреймворку от Google тогда очень быстро удалось снискать популярность у разработчиков.

И вот уже буквально через два года его разработчики решили объявить о выходе новой версии под именем Angular 2. Версия оказалось написанной полностью с нуля и не имела совместимости с предыдущей даже близко. Большинство разработчиков, не исключая и вашего покорного слугу, идея переписывать их приложения явно не прильщала. Писать приложения на старой версии, которая с припиской JS, тоже было так себе вариантом. Конкурирующие фреймворки уже были ничуть не хуже.

Одним из них мы и воспользовались, переведя в 2015 году нашу фронтенд-разработку на React. У него была простая архитектура, основанная на компонeнтном подходе и рассчитанная на то, чтобы не терять в производительности труда с ростом кодовой базы.

Сообщество Реакта с тех пор значительно выросло и вот недавно команды React и Next.js показали нам Server Components, новый способ разработки веб-приложений, который со стандартным React-приложением совместим примерно никак.

Это такое же серьёзное изменение как и переход с Angular.js на Angular 2? React сейчас проходит через ту же фазу, что и Angular.js когда-то?

Замечание: В этой статье я буду обсуждать фичи как от команды React так и от Next.js. Работают они сейчас очень тесно, так что зачастую трудно сказать, кто из них за что ответственен. Так что буду писать просто, "React" имея в виду обе команды.

Читать далее

Как настроить Node.js Express сервер для React

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

Это руководство поможет вам разработать простое приложение на React и подключить его к серверу, созданному с использованием Node.js. Мы начнем с создания React приложения с помощью команды create-react-app, а затем настроим его подключение к серверу Node.js c помощью proxy.

Читать далее

Разработка сложных форм с React Hook Form

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

Приветствую, уважаемые читатели! Сегодня я хочу поделиться своим опытом использования одной из самых популярных библиотек для создания форм на React - React Hook Form. Когда я только начинал использовать эту замечательную библиотеку, я совершил несколько ошибок, которые я надеюсь, вы сможете избежать.

Читать далее

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

Framer Motion: библиотека анимирования компонентов

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

Что такое Framer Motion?

Framer Motion - это библиотека для react-приложений, которая дает возможность создавать анимированные jsx-компоненты.

Преимущество Framer Motion в том, что управление свойствами анимации происходит прямо в jsx-разметке. Кроме того, с его помощью можно писать компоненты-обертки, которые будут анимировать вложенные в них компоненты.

С помощью Framer Motion можно создавать целые кастомные библиотеки анимационных компонентов и применять соответствующий компонент для соответствующей анимации.

Библиотека бесплатная и легка в освоении для новичков, в то же время дает широкие возможности для создания сложных анимаций.

Как начать работу с Framer Motion?

Чтобы начать использовать Framer Motion в react-приложении, нужно установить Framer Motion в проект:

Читать далее

Новый перспективный веб-фреймворк Cample.js. Реактивность без VDOM

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

Всем привет! В данной статье я бы хотел рассказать о таком фреймворке как Cample.js.

На сегодняшний момент (версия 3.0.1), фреймворк является активно поддерживаемым в разработке нового функционала. Есть поддержка работы с данными, которые благодаря реактивности без виртуального DOM отображаются крайне быстро. Пример тестов.

Читать далее

Начало работы с Webpod: упрощенное решение для деплоя вашего веб-сайта

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

Приветствую, товарищи разработчики!

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

Читать далее

Angular получил новый синтаксис шаблонов

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

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

Читать далее

Оптимизация Apollo-client

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

Что описывается: Apollo-client — популярная библиотека для работы с GraphQL. Библиотека призвана ускорить разработку и оптимизировать приложение.

Задача статьи: Описать возможные решения и проблемы оптимизации приложения в части apollo-client.

Читать далее

Как я переписал свой проект на Svelte

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

Приветствую всех. Уже как неделю я переписываю свой проект, который был на Vue options api с использованием Quasar и перевожу его на Svelte-Sveltkit-DaisyUI. Скажу сразу, он мне очень понравился, особенно в если учитывать что Vue composition api стал больше похож на React, нежели чем на самого себя. Складывается впечатление что Svelte это то к чему должен был прийти Vue, но он пришел к реакту))) (ты должен был бороться...)

Итак, тот код, который я писал на вью(вуй в простонародье) 10 месяцев на свелт был написан за 9 дней, и то успел добавить дополнительные функции. Кое-что еще не реализовано, но это легкая часть, которая займет дня 3-4, не больше. Затем привязка к бэкенду и тестирование и через 2-3 недели все должно быть в целом готово. Справедливости ради стоит отметить что не все время из этих 10 месяцев было использовано на написание кода. Половина времени было потрачено на безрезультатные попытки(пытки) написать бэкенд самому. Прыгал с одной технологии на другую, но в основном пытался(пытал себя) написать на фшарп. Ничего не вышло, перешел на ноду-экспресс. Кое-что вышло, но в процессе написания понял что бэк не мое. Один бэкендер говорил что работа бэкендера это как 8 часов решать "судоку" на работе, а в остальное время решать судоку для отдыха. Полностью с этим согласен. Главное что вовремя осознал свою неспособность писать бэкенд, а заодно и нелюбовь решать судоку. Хотя когда был в школе любил, вероятно и бэк в то время зашел бы, но не факт. Отныне, если когда-нибудь я буду писать бэк для чего-то, то буду использовать лишь готовые вещи вроде strapi или directus.

Читать далее

Введение в View Transitions API

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


Новый View Transitions API, что можно перевести как "интерфейс переходов отображения", предлагает легкий способ анимирования перехода между двумя состояниями DOM — даже между загрузками страниц. Это прогрессивное улучшение, которое можно реализовать уже сегодня.

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