JavaScript Ready | Программирование
8.06K subscribers
933 photos
60 videos
486 links
Авторский канал по разработке на JavaScript.
Ресурсы, обучения, задачи, шпаргалки.
Ежедневно информация пополняется!

Автор: @energy_c

Реклама на бирже: https://telega.in/c/javascript_readyy
Download Telegram
📱 Разбираем методы преобразования массивов!

Эти методы помогают сортировать, копировать, разворачивать и объединять данные. Особенно полезны при работе с состоянием, отображением списков и подготовкой данных к отправке или отображению.

📣 JS Ready | #шпора
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11👍6🤝6
📂 Напоминалка по безопасности API!

Например, OAuth 2.0 помогает безопасно выдавать доступ к ресурсам без передачи паролей, а Rate Limiting защищает API от перегрузок и злоупотреблений.

На картинке — 12 важных принципов защиты API: HTTPS, OAuth, WebAuthn, управление ключами, авторизация, версионирование, API Gateway, валидация данных и проверка рисков по OWASP.

Сохрани, чтобы не потерять!

📣 JS Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🤝65🔥1
📂 Не экранируйте обратный слэш вручную — используйте String.raw!

Например, при работе с путями Windows или динамическими регулярными выражениями вместо постоянного написания двойных \\ можно использовать String.raw, который сохраняет обратные слэши в исходном виде.

На картинке показано, как String.raw помогает работать со старыми строками без лишнего экранирования:String.raw — это тег-функция для шаблонных литералов, которая возвращает строку без обработки escape-последовательностей. Символы вроде \n, \t и \\ остаются как есть.

Сохрани, чтобы не потерять!

📣 JS Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
👍127🔥6
📱 Управляем событиями!

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

В этом посте:
Создаём класс-рассыльщик событий.

Подписываемся и отписываемся от событий.

Реагируем на события в разных модулях.

Изолируем и расширяем логику через события.


Идеально для: динамических UI, плагинов, игровых и интерактивных систем.

📣 JS Ready | #гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥96👍4
📂 Напоминалка по URL, URI и URN в веб-разработке!

Например, URL (Uniform Resource Locator) используется для указания адреса ресурса и способа его получения (https://example.com/page), а URI (Uniform Resource Identifier) является общим идентификатором ресурса, который включает в себя URL и URN.

На картинке — сравнение трёх понятий, которые часто используют при работе с веб-технологиями, API и распределёнными системами.

Сохрани, чтобы не потерять!

📣 JS Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥5👍4🤝3
URLPattern — нативное сопоставление URL без ручных регулярных выражений!

Во многих проектах приходится разбирать URL: определять маршруты, извлекать параметры, проверять соответствие шаблону. Чаще всего для этого используют регулярные выражения или вручную разбирают строку, хотя современные браузеры предоставляют для этого встроенный API — URLPattern.

Создадим шаблон маршрута для страницы пользователя:
const pattern = new URLPattern({
pathname: "/users/:id"
});


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

Проверим, соответствует ли URL заданному шаблону:
const result = pattern.exec(
"https://site.com/users/42"
);

console.log(!!result); // true


Если совпадение найдено, exec() возвращает объект с подробной информацией о результате. Если маршрут не подходит — вернётся null.

Получим параметр маршрута:
if (result) {
console.log(
result.pathname.groups.id
);

// "42"
}


Все именованные параметры автоматически попадают в объект groups. Больше не нужно самостоятельно искать совпадения, работать с индексами или писать регулярные выражения.

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

Например, можно сразу описать шаблон для версии API:
const api = new URLPattern({
hostname: "api.example.com",
pathname: "/v:version/users/:id"
});


Теперь один шаблон одновременно проверяет хост и извлекает несколько параметров из пути.

Получим результат сопоставления:
const match = api.exec(
"https://api.example.com/v2/users/15"
);

console.log(match.pathname.groups);


На выходе получим уже готовый объект:
// {
// version: "2",
// id: "15"
// }


URLPattern поддерживается современными браузерами, но если нужна совместимость со старыми версиями, заранее проверьте наличие API.

🔥 URLPattern — позволяет отказаться от значительной части ручного разбора URL и сделать код сопоставления маршрутов заметно чище.

📣 JS Ready | #практика
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥106👍5
Крутая статья на Хабре: «Платформа плагинов в Трекере, или Как мы пустили сторонний код в продукт с 600 000 пользователей»!

В этой статье:
• Рассказывается, зачем Яндекс Трекеру понадобилась собственная платформа плагинов и как она позволяет расширять продукт без изменений в его ядре;
• Разбирается архитектура безопасного запуска стороннего JavaScript: изоляция через iframe, Bridge на postMessage и система разрешений;
• Показывается, как плагины работают с API и внешними сервисами, не получая прямого доступа к cookie, токенам и лишним данным.

🔊 Продолжайте читать на Habr!

📣JS Ready | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝8👍6🔥62
📂 Напоминалка по HTTP-кодам ответов для разработчиков!

Например, HTTP Status Codes являются стандартом взаимодействия между клиентом и сервером, позволяя определить результат выполнения запроса. В JavaScript-разработке они используются при работе с fetch(), axios, REST API и backend-сервисами для корректной обработки успешных ответов, ошибок клиента и серверных сбоев.

На картинке — основные HTTP-коды (2xx, 3xx, 4xx, 5xx), которые необходимо знать каждому frontend и backend-разработчику при создании и интеграции современных веб-приложений.

Сохрани, чтобы не потерять!

📣 JS Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍7🔥5
📂 Напоминалка для разработчиков: REST vs GraphQL!

Например, REST использует отдельные API-эндпоинты для получения ресурсов (GET /articles/123), а GraphQL позволяет клиенту самому выбирать необходимые поля через единый API-запрос.

На картинке — сравнение двух популярных подходов к созданию API: REST с фиксированной структурой ответов, HTTP-кэшированием и версионированием, а также GraphQL с Gateway, резолверами и агрегацией данных из нескольких микросервисов.

Сохрани, чтобы не потерять!

📣 JS Ready | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥61👍1