Все потоки
Поиск
Написать публикацию
Обновить
205.51

JavaScript *

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

JavaScript: хочу свой HTMLElement

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

React Custom Hook: useStorage

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

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

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров2.7K
Читать далее

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

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

Время на прочтение6 мин
Количество просмотров6.1K

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров464

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

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

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

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

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

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

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

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров484

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

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

Читать далее

Свой родной GUI для yt-dlp на Electron и React

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров4.7K

Нет ничего лучше, чем сделать что‑то своими руками. Особенно, когда этим смогут пользоваться другие люди.

POKE — это графический интерфейс (GUI) для скачивания видео с youtube на базе yt‑dlp.

POKE

20 частых антипаттернов в React и как их исправить: кратко, понятно, без мифов

Уровень сложностиСредний
Время на прочтение33 мин
Количество просмотров5.5K

20 частых антипаттернов в React и как их исправить. Разбираем ошибки с хуками, состоянием, мемоизацией и структурой компонентов: когда не нужен useEffect, зачем useCallback, почему не хранить производные значения в state. Минимальные примеры, чёткие принципы, практичные альтернативы.

Читать далее

Вклад авторов