Как говорил дядя Бен, большие продукты — это и большая ответственность. И без сложных интерфейсов тут никуда. А с ними и исследования становятся труднее, и встречается больше препятствий на этапе кода — от нюансов реактивного программирования до риска утонуть в разнообразии CSS-спецификаций. Для МойОфис как мультипродуктовой экосистемы со сквозными сценариями — все эти вопросы очень актуальны! Поэтому на прошлой неделе JS-еры, дизайнеры и UX-исследователи нашей и других компаний собрались на ми…
Представьте: собеседник отправляет голосовое сообщение на пять минут, а вы не можете отвлечься и прослушать все от начала до конца? Что делать? Максим, ведущий канала RED Group, подошел к вопросу творчески и показал, как на базе grammY и SpeechService в NestJS разработать бота, который будет слушать и структурировать по таймкодам голосовые сообщения. Инструкция будет полезна новичкам, которые только погружаются в работу с Telegram Bot API с помощью JavaScript. Кроме того, в конце материала мы…
Привет, Хабр!Я — Зинченко Иван, IT-Lead в направлении разработки цифровых каналов в Газпромбанке. За последние 3 года я провёл и прошел десятки собеседований по System Design и заметил: 80% кандидатов проваливаются на одной и той же ошибке - не фиксируют основные требования к системе.В этой статье разберем чем чреват этот критичный промах, который даже сильные разработчики допускают при проектировании систем. Для чего нам нужны требования? Сбор и фиксация требований это первый и самый важный э…
Когда в одной из купленных для нашей ИТ-библиотеки книг начали попадаться забавные терминологические ляпы — вроде «жирных клиентов» и «микрослужб», — нам стало понятно: переводчик явно не из отрасли. Чтобы избежать таких «фейлов» и помочь сделать техническую литературу понятнее, в КРОК появился Read IT Club — команда рецензентов и экспертов, которые добровольно и безвозмездно правят и переводят книги по ИТ.Все началось с небольшой инициативы внутри компании, но клуб быстро вырос до 40+ человек …
Я разведён и женат, сын живёт поочерёдно: неделя у меня, неделя у своей мамы. Казалось бы, график прост, но реальность вносит коррективы: врач в четверг, поездка к бабушке на выходных - забыть что-то означает испортить планы всем и получить претензии. Моя схема: ✅ календарь с бывшей женой - только ключевое по сыну - переезды, врачи, собрания. ✅ календарь с моей женой: наша личная жизнь - свидания, поездки, дела. Без сына. ✅ семейный календарь (я + жена + сын): всё, что касается сына в мои неде…
Привет, Хабр! Сегодня рассмотрим, как тестировать React-хуки с помощью @testing-library/react-hooks.Подход к базовым хукамСначала тестить будем на примере простого счётчика. Вот у нас хук:import { useState, useCallback } from 'react' export default function useCounter() { const [count, setCount] = useState(0) const increment = useCallback(() => setCount((x) => x + 1), []) return { count, increment } }Хуки не рендерятся напрямую, их нужно оборачивать через renderHook. Всё ка…
Предыстория: От A1 к B1+ без очевидных методовПосле переезда в США в июне 2024 года, я, как и многие, столкнулся с распространенной проблемой – языковым барьером. Мой английский стабильно находился на уровне A1, несмотря на заранее установленные приложения вроде Duolingo. Я испытывал трудности в ресторанах, при заселении в отели, и даже при уточнении самых простых вещей.Обычно онлайн-преподаватели и блогеры советуют учить по 5-10 слов, составлять предложения, заниматься регулярно по чуть-чуть. …
Привет, друзья! В этой серии статей я делюсь с вами своим опытом решения различных задач из области веб-разработки и не только. В этой статье мы изучим библиотеку react-force-graph-2d для рисования двумерных графов. Демо приложения: https://react-graph.netlify.app/ Локальный запуск приложения: git clone https://github.com/harryheman/react-graph.git cd react-graph npm i npm run dev Интересно? Тогда прошу под кат. ❯ Создание проекта и установка зависимостей Создаем чистый React+Typescript прое…
Сегодня в нашем CI ежедневно запускается более 5 000 автотестов, которые проверяют всё: от корректности скриншотов панели до скорости отклика API. Это не просто тулза в пайплайне, а часть инженерной культуры команды, которая помогает нам выпускать изменения быстро и с уверенностью.Привет! Меня зовут Михаил Шпаков, я руковожу разработкой Timeweb Cloud.Мы вышли на рынок четыре года назад, в условиях, когда уже сформировалась сильная конкуренция, и облачные платформы были далеко не новинкой. Поэто…