Обновить
198.4

JavaScript *

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

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

Websocket или REST? А зачем выбирать?

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

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

Узнать больше

React: Zustand State Manager

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



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


На днях, бороздя просторы Сети в поисках вдохновения, наткнулся на Zustand, инструмент для управления состоянием React-приложений, наиболее полно (среди более чем многочисленных альтернатив) отвечающий моим представлениям о, если не идеальном, то адекватном современному React state manager (см., например, эту статью).


Рассказу о нем и будет посвящена данная статья. Сначала немного теории, затем немного практики — по традиции, "запилим" простую "тудушку".


Репозиторий.


Если вам это интересно, прошу под кат.

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

Решаем проблемы REST с помощью Redux Toolkit Query

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

В приложениях с REST архитектурой существует ряд проблем:

повторяющийся код при работе с состоянием приложения;
костыли и велосипеды при обработке результатов и состояний запросов;
отсутствие стандартного механизма кеширования полученных на клиенте данных;
одновременные запросы за одними и теми же данными; 
сложности реализации pessimistic/optimistic обновления состояний.

В клаудных микросервисах Netcracker мы решаем эти проблемы с помощью GraphQl & apollo. Однако есть изрядное количество приложений, использующих классический REST подход для общения с сервером. Хорошим решением для них является Redux Toolkit Query.

Решаем проблемы REST c помощью RTK Query

Гугл скрипт в помощь молодому отцу

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

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

С этим скриптом вам не придётся помнить даты, а ещё вам придёт оповещение стандартными средствами гугл календаря. Результат работы этого скрипта на скриншоте.

Расширяем функционал календаря скриптами

Микросервис головного мозга. Пилим всё, что движется

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

Это история о том, как увеличить скорость выкатки фич, но сохранить качество продукта. О болевых точках, которые замедляют разработку, и новой «болезни» — микросервисе головного мозга, которую диагностировал Михаил Трифонов, техлид фронтов в SberСloud. Он утверждает, что она приводит к росту функциональности ML Space на 683% при увеличении команды разработки всего в 2 раза. Невероятно, но бизнес-аналитика это подтверждает. Так что давайте разбираться по порядку.

Читать далее

Дайджест свежих материалов из мира фронтенда за последнюю неделю №502 (10 — 16 января 2022)

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

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

Начало работы с Playwright (Часть 2)

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

Добро пожаловать  на 2-й день челленджа #30DaysOfPlaywright!

Материал первого дня обучения содержал информацию о том, как настраивать и проверять нашу локальную среду для тестирования. Пришла пора завершить данное руководство, рассмотрев ключевые концепции Playwright, в числе которых...

Читать далее

Пишем NFT модульный синтезатор на javascript ?

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


В новый год всегда хочется чего-то нового. А даже если не хочется, то сознание, ещё не остывшее от работы, всё равно само возьмёт и подкинет какую-нибудь офигительную идею. И если в прошлом году накануне праздников я генерил нейросетью панельные дома, то в этом году меня занесло в совершенно неожиданную комбинацию технологий — NFT, модульные синтезаторы и javascript. Казалось бы, какая между ними связь? Обо всём понемногу читайте под катом.


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

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

Почему в 2022 году многие всё ещё используют ARIS

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

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

Читать далее

Sapper и Svelte: быстрое руководство

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

Замечание редактора английского оригинала: Это руководство по Svelte и Sapper было обновлено 2 июля 2021 года с учетом информации о SvelteKit, пришедшем на смену Sapper. Подробнее о SvelteKit рассказано в статье “Exploring SvelteKit, the newest Svelte-based framework.”

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

Здесь мы в общем виде рассмотрим Sapper, продемонстрируем, как с его помощью писать полнофункциональные, но при этом легковесные приложения, а также детально разберем приложение для рендеринга на стороне сервера.

Читать далее

Как победить scroll в javascript

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

Привет, Хабр!

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

В частонсти, в статье рассмотрены следующие вопросы:

- Как сделать таблицу с фиксированной шапкой и скроллом в body?

- Как быть, когда cодержимое таблицы съезжает относительно шапки при появлении скролла? Как избежать использования overflow: 'scroll' в данной ситуации. Установка css-переменной scroll-width.

- Оптимизация и кастомизация скролла: плавность, scroll margin, изменение цвета и формы.

Читать далее

Темизация. Часть 2. Новые браузерные API. Темизация при SSR. Выбор между SPA, SSR и SSG

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

Каждый год веб совершает огромные шаги в светлый мир будущего (или тёмный, смотря какой вы предпочитаете). Инструменты один за другим добавляют тёмные темы, а крупные гиганты обновляют и улучшают свои системы дизайна, чтобы они оставались актуальны в расширяющемся тёмном мире. Внедрение темной темы значительно улучшает пользовательский опыт и, как следствие, бизнес показатели. Например, недавно одна из крупнейших бразильских новостных компаний Terra, после добавления темной темы, увеличила количество посещённых за сеанс страниц на 170% и снизила показатель отказов на 60% (т.е. в 2,5 раза) [читать статью].

По собранным Android Authority (2514 опрошенных) данным и анализу Томаса Стейнера (243 опрошенных), более 80% пользователей используют тёмную тему. Конечно же, выборку сложно назвать однозначно правдивой, ведь опросы проходили на технических форумах, но в целом можно говорить о том, что темной темой пользуется добрая половина интернета.

Первая часть цикла по большей части была посвящена истории css-переменных – их созданию, развитию и становлению, а также содержала примеры темизации как на уровне планирования и дизайна, так и на уровне разработки клиентской части, включая различные способы темизации и смены тем [Темизация. История, причины, реализация]. В этой статье, поднимаясь на ступень выше, речь пойдёт о клиент-серверном взаимодействии и возможностях современных браузеров в контексте темизации.

Читать далее

JavaScript: работа с датой и временем с помощью Temporal

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


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


В этой статье я хочу рассказать вам о Temporal, новом API для работы с датой и временем в JS.



Источником вдохновения для меня послужила эта замечательная статья.


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


Если вам это интересно, прошу под кат.

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

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

Время менять шапки: ускорение мобильной поисковой выдачи Циан

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

Однажды мы заметили, что поисковая выдача в мобильной версии Циан замедлилась: плохо работала на стороне браузера, грузилось много ресурсов, приложение долго открывалось. Естественно, это не радовало пользователей и сказывалось на метриках. В мае 2021-го Google анонсировал изменения: с августа он станет учитывать метрики Core Web Vitals в ранжировании поисковой выдачи. Мы стали искать, в чём может быть наша проблема. В этой статье расскажем, где же проблема крылась, и как мы её решили.

Читать далее

React. Лёгкий способ бросить курить

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

Писать кнопочки и формочки на React - дело не хитрое. Но почти всегда фронтовые проекты превращаются в нечто трудночитаемое и едва ли поддерживаемое. Визуально различия проектов на React и JQuery со временем сохраняются, а вот developer experience с точки зрения трудозатрат на поддержку становится примерно одинаковым.

Читать далее

Как проверить сетевое подключение на Smart TV (WebOS и Tizen)

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

Сегодня я хочу рассказать вам о том, как я пробовал реализовать функционал «Нет подключения» на SmartTV для платформ webOS и Tizen. Это звучит довольно просто, и вы можете спросить меня, что ты можешь рассказать нам нового, но поверьте, я могу :)

Эта статья о том, как обнаружить сетевое подключение.

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

Читать далее

NestJS + GraphQL + Lambda

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

Цель данной статьи - создать GraphQL приложение, построенное на фреймворке NestJS. А также загрузить его в Лямбда-функцию при помощи Terraform. Надеюсь данный пример поможет многим сэкономить много времени.

Читать далее

Дайджест свежих материалов из мира фронтенда за последнюю неделю №501 (2 — 9 января 2022)

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

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

Что случилось с faker.js?

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

При создании нового проекта я попытался использовать свою любимую библиотеку генерации случайных данных facker.js. Установилась версия facker@6.6.6.

Однако при попытке использовать привычные методы библиотеки выскакивала ошибка. Начав разбираться в проблеме, я перешел на github этой библиотеки. Обнаружилось, что весь исходный код удален. При этом был один коммит endgame, а в описании (Readme) текст – “Что на самом деле произошло с Аароном Шварцем?” (What really happened with Aaron Swartz?).

Читать далее

Собираем свой chromium/electron, с блекджеком и поэтессами

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

Добрый день. Меня зовут Тимур и я программист.

Сегодня я предлагаю посмотреть как можно подрихтовать исходники chromium-а, собрать свой вариант браузера и подтянуть это добро в electron. Эта статья — пробный шар, какая то часть ее позже перекочует в документацию проекта который, я надеюсь, смогу раскачать и сделать популярным, но об этом потом.

Если Вам хочется похейтить пользователей электрона в частности или джисеров в целом — проходите мимо. Электрон я сам не особо люблю и как раз пытаюсь сделать лучшую замену ему, что касается фронтовиков — я один из них, но про js в статье будет очень мало. Сорян.
Читать дальше →

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