Программирование — это искусство находить золотую середину между стремлением к идеальному коду и реальными ограничениями времени.Нельзя написать руководство, которое покрывало бы все вопросы написания кода, но мы постараемся обсудить общие рекомендации направленные на улучшение качества вашего кода.НаименованияИмена переменных должны описывать, что хранится в переменной или в свойстве, что функция или метод делают.Переменные и свойстваПеременные и свойства содержат данные - числа, текст, логиче…
В предыдущей статье я рассказал о 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…
Хотя я немного разочаровался в web-движке PlayCanvas, после того как его апгрейды поломали мне первый диаблоид - для каких-то очень маленьких легковесных игр он остаётся достаточно хорош. Поэтому для разнообразия реанимировал аккаунт и немного погрузился в программирование на js, написав аркаду (с механикой что-то вроде специфического урезанного BattleCity, но на сфере), где инопланетный космический кораблик летает над некоей планеткой.NanoplanetPlayCanvas — это игровой движок под webGL, исполь…
Библиотека react‑jsonschema‑form (RJSF) предназначена для автоматической генерации форм на основе JSON‑схемы. Вы задаёте схему, а RJSF берёт на себя остальное: отображение полей ввода, валидацию и обработку данных. Это удобный и простой в использовании инструмент, тем не менее, у библиотеки есть определённые ограничения. Одно из них — отсутствие поддержки многоколоночных макетов «из коробки». В этой статье я покажу, как можно добавить гибкость в структуру формы, используя кастомные шаблоны.Проб…