Ответ
Я разработал несколько pet-проектов для изучения различных аспектов Node.js-экосистемы:
-
Микросервис для обработки очередей задач:
- Стек: Node.js, Bull (Redis), Express, TypeScript.
- Суть: Сервис принимает задачи (например, генерацию отчетов, отправку email) через REST API, ставит их в очередь и обрабатывает воркерами. Реализовал приоритизацию задач, повторные попытки при сбоях и мониторинг через панель Arena.
// Пример создания задачи const reportQueue = new Queue('reports'); await reportQueue.add('generate-monthly', { userId: 123 }, { priority: 1, attempts: 3 });
-
Real-time дашборд для мониторинга сервера:
- Стек: Node.js, Socket.io, Chart.js, Systeminformation.
- Суть: Серверное приложение собирает метрики (CPU, память, нагрузка) и через WebSocket в реальном времени отправляет их на клиентский интерфейс с графиками. Это помогло глубже понять Event Loop и работу с веб-сокетами.
-
CLI-утилита для рефакторинга кода:
- Стек: Node.js, Commander.js, Babel parser.
- Суть: Инструмент для поиска в проекте устаревших паттернов (например, устаревших методов библиотек) и их автоматической замены. Это был отличный опыт работы с AST (Abstract Syntax Tree).