Category : javascript

javascript
AstroJS проекты в monorepo с помощью npm workspaces

Иногда я делаю сразу несколько похожих подпроектов в одном проекте, например, набор статичных лендингов для сбора заявок и блог на AstroJS. Подпроекты отличаются контентом и темой оформления, но используют общие блоки. При этом публиковать общие блоки в публичном пространстве не хочется. В этом случае полезно иметь монорепу, и я это сделаю без внешних зависимостей только с помощью npm workspaces. Преимущества monorepo Эффективность дискового пространства Устанавливается только одна копия зави…

  • вторник, 6 августа 2024 г. в 00:00:06
javascript
Atomic CSS Deep Dive

Здравствуйте, товарищи! Меня зовут Валик и сегодня мы поговорим про подход Atomic CSS в верстке, разработку инструментов и смежные темы.Кратко вспомним базу - почему Atomic CSS. Рассмотрим популярные решения для работы в этом подходе и сравним их с моим изобретением - mlut. Разберем проблемы известных инструментов и посмотрим, как я решил их в своем. Будут интересные архитектурные решения, технические детали и немного хардкора.Те, кто занимается версткой, смогут по-другому взглянуть на Atomic C…

  • вторник, 6 августа 2024 г. в 00:00:06
javascript
Вычисление отсрочки старта приготовления каши на завтра

Иногда я живу один и ставлю с вечера кашу в мультиварке, чтобы она приготовилась к времени моего завтрака. И раньше я постоянно путался - какую отсрочку старта поставить вечером, чтобы каша была готова к определенному времени утром? В итоге составил табличку с формулами и написал код Google Apps Script, чтобы знать какое точное время отсрочки старта готовки задавать на старой мультиварке.Проблема выбора времени для приготовления кашиВремя завтрака очень важно и я никогда его не пропускаю. Обычн…

  • вторник, 6 августа 2024 г. в 00:00:04
javascript
Создание полного Fast-API сервиса с фронтендом и деплоем за полчаса

В последнее время я опубликовал более десяти крупных статей на тему разработки собственного API с использованием FastAPI. Однако, в основном, эти статьи были теоретическими. Сегодня я решил создать чисто практическую статью, в которой мы с нуля разработаем полноценный веб-сервис с фронтендом и бэкендом.После этого мы выполним деплой этого приложения, чтобы любой пользователь мог им воспользоваться.Что мы будем использовать?Python фреймворк FastApi (если с ним совсем незнакомы, то можете найти в…

  • понедельник, 5 августа 2024 г. в 00:00:04
javascript
Почему новый процесс в Node порождается так медленно?

Мы в Val Town выполняем ваш код в процессах Deno. Недавно мы заметили, что под нагрузкой отдельно взятый Node-сервер Val Town не может породить более 40 процессов. На протяжении 30% процессорного времени главный поток остаётся заблокирован вызовами к spawn. Почему так медленно? Можно ли как-нибудь ускорить эту работу?Чтобы воспроизвести паттерн этой ситуации, напишем HTTP-сервер, порождающий новый процесс в ответ на каждый запрос. Примерно так: import { spawn } from "node:child_process"…

  • понедельник, 5 августа 2024 г. в 00:00:03
javascript
Punk riff generator

Когда-то давно, может быть лет пять назад, мне захотелось воспроизвести в браузере звук. Уж не помню, какая конкретно у меня была задача, и чего я хотел добиться — скорее всего просто поиграться с разными семплами; может, запрограммировать трек. Пошел в гугл с вопросом, как это сделать, попал на StackOverflow с вопросом/ответом примерно такого вида. И увидел, как на запрос "playing a simple sound" на меня вываливают какие-то контексты, буферы, декодирование... И так мне стало душно, что…

  • воскресенье, 4 августа 2024 г. в 00:00:06
javascript
Процесс, который продолжал умирать

В этой статье я изложил суть своего выступления, которое состоялось в рамках проводимой нашей компанией образовательной программы «Lunch n' Learn». Если вас просто интересует, как искать утечки памяти в Node, переходите сразу к Части 2 (но тогда вы упустите всю невероятную предысторию). Это рассказ об умершем процессе и о наших злоключениях в попытке найти его убийцу с целью призвать негодяя к правосудию. Если говорить точнее, то этот процесс продолжал умирать циклически, но такая карт…

  • суббота, 3 августа 2024 г. в 00:00:07
javascript
Основы тестирования React-приложений через Cypress

Привет, Хабр! Сегодня рассмотрим как автоматизировать тестирование React-приложений с инструментом Cypress. Для начала работы с Cypress React-проекте, первым делом нужно установить сам пакет. Это можно сделать с помощью npm или Yarn:npm install cypress --save-dev # или yarn add cypress --devПосле установки, нужно будет проинициализировать Cypress, что создаст базовую структуру папок и файлов конфигураций:npx cypress openКоманда создат все необходимые файлы и откроет пользовательский интерфейс …

  • суббота, 3 августа 2024 г. в 00:00:06
javascript
Давайте сделаем крупное приложение на Flask (язык Python)

На Хабре я часто вижу статьи о реализации тех или иных фич на Python-фреймворках. Я объединил все эти фичи в реальный проект с открытым исходным кодом, чтобы у вас сложилась целостная картина. Мы с вами создадим UX/UI на Figma, напишем фронтенд на HTML, CSS, SASS, Bootstrap и JavaScript, создадим ER-диаграмму в MySQL Workbench, напишем бекэнд на Flask, создадим регистрацию через социальные сети OAuth 2.0 в один клик, используем брокер сообщений и асинхронную очередь Celery для отправки писем н…

  • суббота, 3 августа 2024 г. в 00:00:05