Category : javascript

javascript
Как я маркетдату агрегировал. Визуализация данных Nasdaq, LSE и MOEX

В предыдущей статье я рассказал о finmap.org - инструменте визуализации данных Мосбиржи и американских площадок. Спасибо хабравчанам за отзывы и предложения. Отдельная благодарность за донаты, вы помогаете покрыть расходы на AWS. Благодаря вашим идеям, в finmap.org появилась строка поиска по тикеру, а в portfolio можно отобразить американские ETF.Американские ETF в портфолио (finmap.org)Для каждого сектора можно посмотреть количество ценных бумаг, которые в него входят.Мосбиржа, количество бума…

  • четверг, 27 февраля 2025 г. в 00:00:07
javascript
Топ-5 библиотек для управления состоянием React в 2025 году

Хранение данных и управление глобальным состоянием в React-приложениях всегда было важной темой среди разработчиков. К 2025 году выбор подходящей библиотеки для решения этих задач стал еще более разнообразным — от проверенного Redux до современных, легковесных решений, таких как Zustand и SWR. Каждое из этих решений имеет свои особенности, плюсы и подводные камни, что делает выбор оптимального инструмента порой непростым. В этой статье я рассмотрю 5 самых популярных библиотек на сегодняшний ден…

  • четверг, 27 февраля 2025 г. в 00:00:06
javascript
Способы разделения длительных задач в JavaScript

Иногда возникает необходимость разделить длительную дорогую (с точки зрения вычислений) задачу на несколько тиков (ticks) цикла событий (event loop). Существует множество способов это сделать. Рассмотрим их. Легко "уничтожить" пользовательский опыт, позволив длительной дорогой задаче захватить основной поток (main thread). Неважно, насколько сложным является приложение, цикл событий может выполнять только одну задачу за раз. Пока выполняется одна задача, другие ждут своей очереди. Ка…

  • среда, 26 февраля 2025 г. в 00:00:06
javascript
Как я решил проблему гибкого управления порядком импортов в большом проекте

В одном из моих недавних проектов столкнулся с проблемой: в большом приложении, над которым работают десятки разработчиков, необходимо было обеспечить единообразный порядок импортов. Несмотря на то, что команда договорилась о том, в каком порядке импортировать модули, компоненты, директривы, миксины и прочее, в старом коде порядок импортов отличался, и его ручной рефакторинг оказался слишком трудоёмким и затратным по времени.ПроблемаНаш проект разрастался, и с каждым днём количество импортов в …

  • среда, 26 февраля 2025 г. в 00:00:04
javascript
Запускаем Pong в 240 вкладках браузера

Что вы делаете с незакрытыми вкладками браузера? На мой взгляд, они занимают слишком много места на экране, поэтому на этой неделе я разобрался, как запустить в этих вкладках Pong.Это 240 вкладок браузера в плотной сетке 8x30. И в них запущен Pong! Видно, что мяч и ракетки перемещаются по canvas в окне и во всех вкладках.Код (ужасный) можно посмотреть на GitHub. Но как он работает?Источник вдохновенияИсточником вдохновения для моего проекта стал мой друг Tru, создавший на прошлой неделе версию …

  • вторник, 25 февраля 2025 г. в 00:00:07
javascript
Fusion — php стал ещё ближе к javascript

Каждый PHP-разработчик, работая с современными JavaScript-фреймворками, наверняка задумывался о том, как было бы здорово передавать данные напрямую в компоненты без танцев вокруг контроллеров и типов данных. Арон Френсис, видимо, тоже терзал себя этим вопросом, поэтому 4 февраля 2025 года на своём ютуб-канале представил новую веху развития фронтенда на Laravel — Fusion.  В этом статье мы рассмотрим базовые принципы работы библиотеки и основные нюансы работы с ней.Концепт У Laravel уже есть Ine…

  • вторник, 25 февраля 2025 г. в 00:00:06
javascript
Нанопланета | Вёб-движок PlayCanvas

Хотя я немного разочаровался в web-движке PlayCanvas, после того как его апгрейды поломали мне первый диаблоид - для каких-то очень маленьких легковесных игр он остаётся достаточно хорош. Поэтому для разнообразия реанимировал аккаунт и немного погрузился в программирование на js, написав аркаду (с механикой что-то вроде специфического урезанного BattleCity, но на сфере), где инопланетный космический кораблик летает над некоей планеткой.NanoplanetPlayCanvas — это игровой движок под webGL, исполь…

  • воскресенье, 23 февраля 2025 г. в 00:00:07
javascript
Гибкий лэйаут для динамических форм с react-jsonschema-form

Библиотека react‑jsonschema‑form (RJSF) предназначена для автоматической генерации форм на основе JSON‑схемы. Вы задаёте схему, а RJSF берёт на себя остальное: отображение полей ввода, валидацию и обработку данных. Это удобный и простой в использовании инструмент, тем не менее, у библиотеки есть определённые ограничения. Одно из них — отсутствие поддержки многоколоночных макетов «из коробки». В этой статье я покажу, как можно добавить гибкость в структуру формы, используя кастомные шаблоны.Проб…

  • воскресенье, 23 февраля 2025 г. в 00:00:06
javascript
Вебсокеты на FastAPI: Реализация простого чата с комнатами за 20 минут

В ближайшее время я планирую опубликовать большую статью на Хабре, где подробно разберу разработку анонимного чата в формате Telegram MiniApp. Мы создадим сервис для общения тет-а-тет, который будет работать внутри Telegram и обеспечивать мгновенный обмен сообщениями.Технологический стек проекта:FastAPI + WebSocket – для реального времени и обмена сообщениямиRedis – для быстрого поиска и соединения собеседниковPostgreSQL – для хранения сообщений и информации о пользователяхVue 3 + Pinia – для у…

  • воскресенье, 23 февраля 2025 г. в 00:00:05