Обновить
256K+

JavaScript *

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

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

AsyncAPI — Swagger для асинхронного API

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

Привет, Хабр! Меня зовут Александр Митин. Я Java разработчик в компании ИТ-холдинг Т1 с 15 летним опытом, из которых последние 5 лет работаю в финтехе. Мой любимый стек — Java Spring. Я хочу рассказать такое AsyncAPI, как работать со спецификациями, какие есть инструменты и поделюсь нашим опытом перехода на подход API First в наших системах.

Читать далее

Три уровня отслеживания в Яндекс Метрике: Level 2 — офлайн-конверсии

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

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

Сегодня рассмотрим вариант, когда события произошедшие уже офлайн, отправляются обратно в онлайн статистику Яндекс Метрики и обогащают ее. Это позволит делать рекламу и собирать аудитории в Яндекс Директе точнее еще на 30-35%

Читать далее

Упрощаем работу с БД с помощью Drizzle ORM — как выжать максимум из инструмента

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

Привет, я Сергей Маркизов, разработчик диджитал-продакшна Далее. В наших проектах часто использую Drizzle — современную, типобезопасную ORM для TypeScript, которая не усложняет базовую задачу: читать и писать данные. В этой статье расскажу, чем библиотека отличается от других и как с ней работать.

Читать далее

Мощь Intl API: подробное руководство по встроенной в браузер интернационализации

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

В двух словах: интернационализация — это не только перевод текста. Она включает в себя форматирование дат, правильное образование множественного числа, сортировку имен и многое другое с учетом конкретных локалей. Вместо тяжелых сторонних библиотек современный JavaScript предлагает Intl API — мощный встроенный инструмент для работы с i18n. Еще одно напоминание о том, что веб действительно глобален.

Существует распространенное заблуждение, что интернационализация (i18n) сводится лишь к переводу интерфейса. Перевод, конечно, важен, но это лишь одна из частей. Настоящая сложность — в адаптации информации под культурные особенности.

Читать далее

От CSS до Canvas и звука: анимируем что угодно с GSAP

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

GSAP – одна из самых популярных JavaScript-библиотек для создания анимаций. Её используют как новички, так и опытные front-end-разработчики. В этой статье я хочу рассмотреть несколько примеров ее применения – от самых простых до менее очевидных.

Читать далее

Обход Cloudflare. Часть I

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

Как обмануть алгоритмы отпечатков браузера и не спалиться? Первая часть трилогии о скрытии свойств браузера.

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

А ну-ка, что там?

JavaScript: хочу свой HTMLElement

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

Просто хочу строить свой DOM из своих кирпичей.
С преферансом и поэтессами...

Что мне это даст:

мне больше не нужны подписки, могу просто знать, что какое-то свойство изменилось
могу устраивать коммуникации с нодами на своё усмотрение
стандартную логику вообще не трогаю и не мешаю ей

Читать далее

От массивов до объектов в JavaScript: пособие для новичков

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

Привет! Я — Александр Дудукало, автор базового курса по JavaScript. В этой статье мы продолжим изучение работы с данными в JavaScript. Если в прошлом материале мы говорили о массивах, то теперь пришло время познакомиться с объектами. Я расскажу, как они помогают эффективно организовать и обрабатывать связанные данные. Подробности под катом!

Читать далее

Интересная задача с собеседования

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

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

Читать далее

React Custom Hook: useStorage

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

Одним из ключевых преимуществ этого пользовательского хука является его простота. Вы можете использовать его для хранения данных любого типа, таких как строки, числа или даже сложные объекты, всего с помощью нескольких строк кода. Кроме того, useStorage выполняет сериализацию и десериализацию данных за вас, поэтому вам не нужно беспокоиться о преобразовании значений в JSON и из него.

Читать далее

Почему ИИ не смог заменить меня в n8n, но стал идеальным ассистентом

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

n8n — это мощный инструмент, который я, как и многие инженеры, полюбил за гибкость и простоту. Он позволяет собрать практически любую интеграцию, как из конструктора, но с возможностью в любой момент залезть «под капот» с кастомным JavaScript. Идеально.

Но у этой мощи есть и обратная сторона. Сложные воркфлоу превращаются в лабиринт из нод, где каждая требует тонкой настройки десятков полей. Постоянное переключение между вкладками документации, написание JSON-объектов, парсинг API через Curl, дебаггинг бесконечных ошибок... Знакомо? Время на продумывание логики уходило на рутину. И мне, как и многим, пришла в голову «гениальная» идея: а что, если всю эту рутину возьмет на себя ИИ?

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

Читать далее

JavaScript: зачем конструктору return …

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

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

И, ведь, ну в самом деле, подумаешь, ну может разработчику хочеться вернуть не эземпляр, не instance, а какой-нибудь другой объект, и зачем-то при этом ему нужен именно вызов конструктора. Ну, допустим, он хочет чтобы new.target был заполнен и т.п., ну, мало ли какие варианты зачем-то иметь возможность в противном случае вернуть объект. Или может он хочет асинхронных конструкторов и вернуть new Promise, где уже в resolve передать this как вариант для создания await new MyConstructor. Или может быть хочет вернуть Proxy над this для отслеживания операций с этим экземпляром. В общем есть всякие разные причины когда гуманно было бы иметь этот "сахар", но всё же, может быть есть что-то, что иначе никак не сделать? И, самое важное, что эта функциональность былв всегда, с самой первой версии же. Понятно, что может быть про это вообще не думали, просто делали "как привычно". И, да, функции-конструкторы, в отличие от class-овможно вызвать без new и в те времена никаких классов в JavaScript не было конечно, и return объективно был нужен, но может быть есть какие-нибудь варианты когда и с new имеется глубокий практический смысл уже и тогда существовали, то есть может быть назначение операции возврата иного значения конкретно у конструкторов вполне себе приемлемое. И, да, конечно, конструкторы не возвращают примитивы, но может быть и для объектов есть какое-то применение тоже находилось бы, ну, вдруг, внезапно, может быть ...

Читать далее

Clean Architecture во frontend: почему я ушёл от FSD

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

Привет! Хочу поделиться с тобой опытом перехода от Feature-Sliced Design к Clean Architecture во фронтенде. Почему я считаю Clean Architecture более подходящей для сложных приложений, и как она решает проблемы, с которыми ты точно сталкивался.

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

Читать далее

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

Как мы прикрутили real-time чат в админку на React без Jivo и LiveChat

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

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

Недавно нам нужно было добавить чат в админку одного из проектов. Забавно, но решения вроде Jivo или LiveChat мы даже не рассматривали. Так были уверены, что сможем без проблем собрать кастомный чат прямо внутри Admiral.

Эксперимент завершился удачно и теперь мы хотим поделиться его результатами. В этой статье мы предлагаем вам готовый туториал по интеграции сложной функциональности на примере real-time чата.

Что было дальше?

React как среда выполнения пользовательского интерфейса

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

Улучшаем JavaScript-код с помощью стрелочных функций

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

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

Привет! Меня зовут Александр Дудукало, я автор базового курса по JavaScript. В этой статье расскажу, как стрелочные функции помогают сокращать записи функций, делают код визуально чище и как использовать их без потери смысла. Также покажу, чем обычные функции проигрывают стрелочным и почему одно нельзя заменить другим.

Читать далее

Unit тесты в React разработке

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

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

Читать далее

Как я научил Espruino на ESP-32 понимать кириллицу

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

Espruino + ESP32: как вывести русский текст и подключить кириллический шрифт ? История из жизни, создание и подключение кастомного шрифта 🦐

Ну давай показывай, что там у тебя

Три уровня отслеживания в Яндекс Метрике: Level 1 — параметры целей

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

Если разложить отслеживание в Яндекс Метрике по уровням сложности, получится три ступени:

Level 1. Цели с параметрами — фиксируем не только факт, но и контекст события.

Level 2. Офлайн-конверсии — подтягиваем в Метрику сделки из CRM и колл-центра.

Level 3. Measurement Protocol и виртуальные визиты — включаем «режим разработчика» и шлём в систему любые события напрямую.

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

Начать отслеживать на 30% эффективнее

SW: stale-while-revalidate на практике + гист

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

Идея простая:

В статье разбирается стратегия кэширования stale-while-revalidate в Service Worker — подход, позволяющий мгновенно отдавать пользователю закэшированный контент и параллельно обновлять его в фоне. Рассмотрены сценарии применения (статика, API), потенциальные риски (устаревший HTML, квоты хранилища), а также приведён готовый рабочий пример с регистрацией, SW-кодом, офлайн-страницей и настройкой серверных заголовков. Материал сопровождается ссылкой на архив с исходниками и практическими советами по отладке, оптимизации и интеграции SWR в реальные проекты.

Читать далее