бэкенд MVP на ноде+express, и он разросся слишком сильно, надо то ли с нуля переписать по-человечески, то ли капитально порефакторить.
Что у меня есть:
- обработчики всех запросов в index.js, 780 строк кода. Некоторые из них даже валидируются (joi). Логики тут никакой нет, только запросы к сервисам работы с БД (storage.js) и отправки писем (sender.js)
- sender.js - 400 строк кода, 7 методов, формирование писем и обращения к внешнему сервису отправки писем через API, а также работа с БД через stroage.js
- storage.js - самый жир. 1500 строк кода, 55 методов, часть из которых используется при обращениях извне, часть - только внутри класса. Использую mysql с обычными коллбеками (с вытекающим монструозным вложенным кодом). Есть простые операции, есть большие SQL запросы на 15-20 строк (большие селекты сложных данных).
Остальное там по мелочи - конфиги, кое-какие классы-утилиты
Основная проблема - полное отсутствие тестов. Мне бы добавить сюда прогон каких-то сценариев, т.е. скорее интеграционное тестирование, чем модульное. Начал сталкиваться с проблемой, что какой-то старый функционал может начать отваливаться при допиле нового.
Вопросы:
- стоит ли использовать какие-то ORM? если да, что как там жить с большими запросами?
- как это лучше тестировать?
- есть где-то примеры кода подобного плана API на node+express нормально организованного хотя бы, а в идеале - с тестами.
orm - sequelize, unit testing примеры ищите на гитхабе, но все что я находил было не большим, или в начальном состоянии
jest + supertest
Обсуждают сегодня