Привет, друзья! Сегодня я подготовил для вас увлекательную практическую статью о создании мини-чата на FastApi. Мы погрузимся в мир вебсокетов, узнаем, зачем они нужны и как применяются в реальных приложениях. Также я продемонстрирую работу с асинхронной SQLAlchemy на примере взаимодействия с базой данных SQLite.Для создания современного интерфейса мы обратимся к интересному и бесплатному сервису Websim.ai, который за пару минут сгенерирует нам интерфейс, включая страничку для входа/регистрации…
ПредисловиеНаписать заметку меня побудила статья Как устроена система типов typescript и собственный опыт.Я обратил внимание, что не всегда понимал семантику "extends" в разных контекстах и влияние настроек языка.В результате, то что меня смущало, оказалось рабочим поведением языка, но при этом непредсказуемым и небезопасным.ВведениеДля демонстрации я выбрал простое объединение string | number, которое буду помещать в различные контексты.Пример 1:type TA = number | string type TB = stri…
Задавались ли вы когда-нибудь вопросом, можно ли выйти за рамки привычных трёх измерений? Мы привыкли видеть мир в 3D: кубы, сферы, пирамиды — все эти объекты легко вообразить и визуализировать. Но что, если мы попробуем заглянуть в четвёртое измерение? Это звучит как научная фантастика, но в мире математики и компьютерной графики всё возможно.Сегодня я расскажу вам, как создать интерактивный гиперкуб, или тессеракт — четырехмерный аналог обычного куба. Мы будем использовать Three.js, популярну…
Пришло время дочке учить таблицу умножения, и я не смог найти нормальных тренажеров. В итоге, пара часов работы над программной частью и день работы над UI/UX вылились в полноценный проект для Яндекс.Игр.Стартовое окноВведениеМоя идея была простой — создать понятный и удобный тренажер для изучения таблицы умножения. Но, как это часто бывает, реализация оказалась гораздо сложнее, чем задумывалось. Самым трудным и интересным оказалось создание масштабируемого интерфейса, который бы корректно выгл…
Привет, Хабр! Сегодня мы поговорим о this, потому что без четкого понимания, как работает this, ваш код может стать источником путаницы и ошибок.this в JS — это ключевое слово, которое ссылается на текущий контекст выполнения. Его значение зависит от того, где и как была вызвана функция, а не от того, где она была определена.В этой статье мы разберем все способы работы с контекстом выполнения, чтобы вы могли уверенно использовать this в любом сценарии.Разные контексты thisГлобальный контекст: п…
Привет, Хабр!Сегодня рассмотрим такие инструменты в JS, как Object.freeze и Object.seal. С помощью них можно установить надежный контроль над объектами, защитив их от нежелательных изменений. Как работают Object.freeze и Object.sealObject.freezeObject.freeze предотвращает любые изменения объекта. Это означает, что вы не сможете:Добавлять новые свойства.Удалять существующие свойства.Изменять значения уже существующих свойств.Посмотрим на пример:const user = { name: "Artem", age: …
Привет, Хабр! Если вы открыли эту статью, вероятно, вам интересна разработка BIM‑приложений, а конкретно — просмотрщиков 3D‑моделей (Viewer). Возможно, у вас уже есть свое BIM‑приложение, и вы столкнулись с трудностями, или вы только планируете начать разработку и собираете информацию. В любом случае, вы попали по адресу.Я расскажу вам историю о том, как мы создавали наш 3D Viewer, какие подводные камни встретились на пути, и какие уроки мы извлекли. Поехали!Выбор технологии: своя разработка vs…
Всем доброго времени суток. Давно я что-то ничего не писал, и вот созрел. Предлагаю сегодня поговорить о ui-системе. Зачем она нужна, когда она нужна, что дает, какие минусы имеет и вообще стоит ли ввязываться в это блуд. Я часто слышу на разных конференциях, что панацея от всех болезней в бизнесе — это наличие дизайн-системы (ui-системы). Что, как только вы достигаете ее, то сроки сокращаются в 100500 раз. Что разработчики не хотят открутить голову дизайнерам, и, наоборот, что качество прод…
Мир работает на C. Этот язык лежит в основе сжатия файлов, сетевых взаимодействий и даже браузера, в котором вы читаете эту статью. Если код не написан на C, он всё равно взаимодействует с ABI, написанном на C (речь о C++, Rust, Zig, т.д.) и доступен в виде библиотеки на C. Язык C и C ABI — это прошлое, настоящее и будущее системного программирования. Вот почему мы разработали Bun v1.1.28, в которой предлагаем экспериментальную поддержку компиляции и выполнения нативного C из JavaScript hello…