Рефакторинг backend

Замовник: AI | Опубліковано: 31.03.2026

Об’єднати два репозиторії в єдину feature-based modular architecture з переходом на сучасний синтаксис (ES Modules). Поточний стан Legacy backend: Flat архітектура CommonJS Повна бізнес-логіка New layered backend: Layered архітектура CommonJS (require) Частково переписано Обидва проєкти використовують require() та "type": "commonjs". Вже реалізовано в layered backend авторизація та реєстрація user-relations module (завершено) інтеграція MongoDB (Mongoose) інтеграція AWS S3 Технології Node.js, Express, Apollo GraphQL MongoDB (Mongoose), Redis AWS S3 Комунікація: GraphQL API Socket.IO (чат) gRPC / Kafka (опційно) Логування: pino Grafana Promtail Порядок виконання Аналіз: legacy backend layered backend Mapping: legacy → layered → modular Міграція: поетапно по модулях без дублювання логіки Цільова архітектура src/ ├── modules/ │ ├── auth/ │ ├── user/ │ ├── user-relations/ │ ├── posts/ │ ├── likes/ │ ├── comments/ │ ├── meetings/ │ ├── events/ │ ├── reminders/ │ ├── feedback/ │ ├── complaints/ │ ├── static-pages/ │ └── chats/ Архітектурні правила модулі повністю ізольовані взаємодія тільки через service layer Заборонено: repository → repository між модулями model → model між модулями прямі імпорти внутрішніх файлів інших модулів API та логіка GraphQL API не змінюється структура response не змінюється бізнес-логіка зберігається 1:1 Оновлення синтаксису Перехід з CommonJS на ES Modules Вимоги: використання import/export async/await перепис кожного модуля при міграції без зміни бізнес-логіки Модулі для міграції posts likes comments meetings events reminders feedback complaints static-pages Chats Можливі варіанти реалізації: як модуль у backend як окремий мікросервіс (chats-service) Рішення приймається під час розробки Вимоги до виконавця досвід Node.js та backend архітектури розуміння modular / clean architecture досвід рефакторингу великих систем вміння писати чистий та підтримуваний код NDA обов’язкове підписання NDA перед початком роботи доступ до репозиторіїв надається після підписання NDA Додатково очікується рівень middle+/senior відповідальність за архітектурні рішення та якість коду вітаються пропозиції щодо покращення архітектури