👋 Привет! Меня зовут Александр, я работаю фронтенд-разработчиком в компании «МегаФон». Сегодня я хочу поговорить на тему Tagged Unions (размеченных объединений) и объяснить, почему они — ваш секретный инструмент для написания надежного TypeScript-кода.Улучшение типизации в TypeScriptВ динамично развивающемся мире веб-разработки создание надежного, масштабируемого и легко поддерживаемого программного обеспечения является ключевой задачей. TypeScript, будучи статически типизированным суперсетом J…
ВступлениеПривет! Меня зовут Вячеслав, я инженер по автоматизации тестирования в компании ROWI.Tech.В ходе автоматизации тестирования пользовательских интерфейсов зачастую используется такой подход как визуальное тестирование. Он позволяет поддерживать стабильность и отсутствие ошибок в отображении страниц. Одним из инструментов, предоставляющих возможность автоматизации данного вида тестирования, является Playwright. В этой статье я расскажу о работе с визуальным тестированием в рамках упомян…
После пяти лет работы JavaScript-разработчиком, занимаясь как фронтендом, так и бэкендом, я провел последний год, осваивая Go для серверной разработки. За это время мне пришлось переосмыслить многие вещи. Различия в синтаксисе, базовых принципах, подходах к организации кода и, конечно, в средах выполнения — все это довольно сильно влияет не только на производительность приложения, но и на эффективность разработчика.Интерес к Go в JavaScript-сообществе тоже заметно вырос. Особенно после новости …
Да, я убрал из заголовка "за выходные", потому что проект чутка растянулся. Но идёт весело! У него и веб-версия теперь есть: https://mini.qyp.aiНапомню: я давно хотел пощупать Tauri v2, и новомодные фреймворки для построения AI-агентов (ai-sdk / mastra / llamaindex).Идея простая: десктопное приложение, дешборд на весь экран, справа интерфейс чата. Просим ИИ вывести на дешборд какую-то информацию в духе "сколько новых юзеров за последнюю неделю" - ИИ пишет код виджета, и размещае…
ВведениеВ данной статье я расскажу как добавить YandexGPT для использования с Siri. Входные данныеПодразумевается, что вы уже создали платёжный аккаунт в Yandex Cloud и имеете FolderID и API-ключ для доступа к YandexGPT.FolderID — это номер каталога, в котором настроен доступ к сервисам YandexCloud. API-ключ — это ключ сервисного аккаунта <ваше название> внутри сервиса Identity and Access Management (IAM) с ролью ai.languageModels.user.Если у вас не настроен Yandex Cloud, то в официальной…
Steroids UI KitЭто вторая статья из цикла про наш фреймворк Steroids, в которой мы расскажем об архитектурном подходе к построению UI-компонентов. Если вы ещё не читали первую статью — начните с неё. В ней мы объясняем, что такое Steroids и какие задачи он решает.Проблема большинства UI-фреймворковЧасто в готовых UI-библиотеках вы можете настроить цвета, тему, переопределить стили через className или sx, но не можете:получить доступ к JSX/HTML разметке компонента;изменить стили компонента, не д…
Всем, привет, меня зовут Дмитрий, я React-разработчик, и я снова здесь и попробую сегодня рассказать про Web Workers. Если вы хоть раз пробовали обрабатывать большой файл, парсить массив из сотен тысяч элементов или запускать сложные вычисления прямо в React-компоненте, то наверняка сталкивались с тем, что интерфейс подвисает, кнопки перестают реагировать, анимации застывают, и всё на секунду подвисает, пока скрипт не разлучит нас (ой, это не из этой сказки) завершит свою работу.Почему так прои…
Ну кто не мечтает запустить стартап за одни выходные? Давно хотел развеяться, и чутка отвлечься от рутины и работы. А ещё давно хотел пощупать Tauri v2, и новомодные фреймворки для построения AI-агентов (ai-sdk / mastra / llamaindex).Идея простая: десктопное приложение, внутри ИИ-агент, который подключается к БД, получает данные о структуре таблиц/вьюшек. Справа сайдбар: интерфейс чата с агентом, а основное пространство - холст, на котором агент размещает что хочет сам. А именно - виджеты, кото…
Пустые состояния (Empty States) — это незаметные, но критически важные элементы интерфейса. Что видит пользователь, когда список задач пуст, поиск не дал результатов или дашборд ещё не содержит данных? Пустой экран? Бесполезный спиннер? Или продуманное сообщение, которое помогает сориентироваться?С появлением декларативного управления потоками (declarative control flow) в Angular обработка пустых состояний стала проще и элегантнее. Одна из ключевых возможностей — директива @empty, которая делае…