Друзья, приветствую!Если вы следите за моими публикациями на Хабре, то знаете, что прошлую свою статью я посвятил теме разработки мини-чата с комнатами. Там я использовал такую технологию, как веб-сокеты. Реализовал я все через FastApi + Websockets, но это был лишь один из примеров возможной реализации Real-time приложений.Сегодня же на теоретико-практическом примере я рассмотрю ещё один подход к реализации Real-time приложений, но уже при помощи такой технологии как Centrifugo.План на сегодняС…
Эта статья — перевод оригинальной статьи «Popover = hint»Также я веду телеграм канал «Frontend по‑флотски», где рассказываю про интересные вещи из мира разработки интерфейсов.ВступлениеChrome 133 развивает существующую функцию всплывающих подсказок, представляя новый режим: popover="hint". Этот режим, управляемый браузером, позволяет использовать новый контекст наложения, упрощающий создание всплывающих подсказок и подобных эфемерных плавающих элементов. Он снижает трудозатраты разработ…
Программирование — это искусство находить золотую середину между стремлением к идеальному коду и реальными ограничениями времени.Нельзя написать руководство, которое покрывало бы все вопросы написания кода, но мы постараемся обсудить общие рекомендации направленные на улучшение качества вашего кода.НаименованияИмена переменных должны описывать, что хранится в переменной или в свойстве, что функция или метод делают.Переменные и свойстваПеременные и свойства содержат данные - числа, текст, логиче…
В предыдущей статье я рассказал о finmap.org - инструменте визуализации данных Мосбиржи и американских площадок. Спасибо хабравчанам за отзывы и предложения. Отдельная благодарность за донаты, вы помогаете покрыть расходы на AWS. Благодаря вашим идеям, в finmap.org появилась строка поиска по тикеру, а в portfolio можно отобразить американские ETF.Американские ETF в портфолио (finmap.org)Для каждого сектора можно посмотреть количество ценных бумаг, которые в него входят.Мосбиржа, количество бума…
Хранение данных и управление глобальным состоянием в React-приложениях всегда было важной темой среди разработчиков. К 2025 году выбор подходящей библиотеки для решения этих задач стал еще более разнообразным — от проверенного Redux до современных, легковесных решений, таких как Zustand и SWR. Каждое из этих решений имеет свои особенности, плюсы и подводные камни, что делает выбор оптимального инструмента порой непростым. В этой статье я рассмотрю 5 самых популярных библиотек на сегодняшний ден…
Иногда возникает необходимость разделить длительную дорогую (с точки зрения вычислений) задачу на несколько тиков (ticks) цикла событий (event loop). Существует множество способов это сделать. Рассмотрим их. Легко "уничтожить" пользовательский опыт, позволив длительной дорогой задаче захватить основной поток (main thread). Неважно, насколько сложным является приложение, цикл событий может выполнять только одну задачу за раз. Пока выполняется одна задача, другие ждут своей очереди. Ка…
В одном из моих недавних проектов столкнулся с проблемой: в большом приложении, над которым работают десятки разработчиков, необходимо было обеспечить единообразный порядок импортов. Несмотря на то, что команда договорилась о том, в каком порядке импортировать модули, компоненты, директривы, миксины и прочее, в старом коде порядок импортов отличался, и его ручной рефакторинг оказался слишком трудоёмким и затратным по времени.ПроблемаНаш проект разрастался, и с каждым днём количество импортов в …
Что вы делаете с незакрытыми вкладками браузера? На мой взгляд, они занимают слишком много места на экране, поэтому на этой неделе я разобрался, как запустить в этих вкладках Pong.Это 240 вкладок браузера в плотной сетке 8x30. И в них запущен Pong! Видно, что мяч и ракетки перемещаются по canvas в окне и во всех вкладках.Код (ужасный) можно посмотреть на GitHub. Но как он работает?Источник вдохновенияИсточником вдохновения для моего проекта стал мой друг Tru, создавший на прошлой неделе версию …
Каждый PHP-разработчик, работая с современными JavaScript-фреймворками, наверняка задумывался о том, как было бы здорово передавать данные напрямую в компоненты без танцев вокруг контроллеров и типов данных. Арон Френсис, видимо, тоже терзал себя этим вопросом, поэтому 4 февраля 2025 года на своём ютуб-канале представил новую веху развития фронтенда на Laravel — Fusion. В этом статье мы рассмотрим базовые принципы работы библиотеки и основные нюансы работы с ней.Концепт У Laravel уже есть Ine…