Пацаны, такой вопрос. Сейчас буду работать над проектом, кодовую базу уже

видел. Она небольшая, но качество... скажем "можно лучше". После моих замечаний и требований к проекту, я предложил его переписать, так как это даже много времени не займет, но встал вопрос к выбору технологий. Как минимум с точки зрения последующего удобства. Т.е. важно иметь возможность его переписывать по кускам, т.е. условный Nest.js, вроде как, не подойдет. Учитывая что тестов нет, я думал вообще отказаться от рефакторинга, пока всевозможные интеграционные тесты не напишу, но потребность будет и чем раньше начать — тем проще будет закончить. Как бы вы поступили?

russian programming node.js

26 ответов

Артем- Автор вопроса

Забыл уточнить — писал пхпшник на ноде, будто на пхп. Т.е. просто оформить всё в сервисы и контроллеры не выйдет.

Артем
Забыл уточнить — писал пхпшник на ноде, будто на п...

Ну без кода сложно представить что там за динозавр)

Артем- Автор вопроса
Артем
Увы, код показать не могу))

Экстрасенсы все в отпуске ясновидящих у нас нету

Артем- Автор вопроса
Арт
Экстрасенсы все в отпуске ясновидящих у нас нету

Ну я и не про совет как сделать, а выбор подхода что делать.

Артем
Увы, код показать не могу))

Ну основная проблема в переносе на нест я так думаю может быть di неста, но можно поиграться с провайдерами, через useclass и тд

Артем- Автор вопроса

Я бы начала перевёл всё на тайпскрипт если его нет. Потом бы двигался в сторону DI чтобы и тесты норм писать и связанного кода не было, т.к. всё будет завязано на реализациях. А потом пофиг что - хоть експрес хоть нест. Главный вопрос - какие проблемы решает переписывание?

А как там доменный слой организован и как он будет в переписанном приложении организован?

Интересно, в какой части приложения проблемы и как они будут решены в переписанном варианте?

Артем- Автор вопроса
Dmitry Croft
Интересно, в какой части приложения проблемы и как...

Для проблемы начинаются тогда, когда я за 2 часа не могу понять что куда импортируется и зачем это нужно. Главное решить эту проблему))

Артем
Для проблемы начинаются тогда, когда я за 2 часа н...

ну тогда это будет написать новое а не переписать

Артем
Для проблемы начинаются тогда, когда я за 2 часа н...

Так напишешь под себя, а другой придёт и скажет не могу разобраться за 2 часа, надо переписать

Артем
Для проблемы начинаются тогда, когда я за 2 часа н...

Если проблема только в этом, то может и не трогать?

Артем- Автор вопроса
Dmitry Croft
Так напишешь под себя, а другой придёт и скажет не...

Так я за более-менее стандартный подход. Взять тот же Nest.js — если был на дргом таком проекте, то и с этим разберешься быстро. А сейчас из-за такой сложности каждый таск будет длинной в вечность, как минимум до написания интеграционных тестов.

Артем- Автор вопроса
Алексей Попов
Если проблема только в этом, то может и не трогать...

Думал не трогать вообще, может и не буду. Но нужно менять подход внутри проекта. (Касаемо связанности модулей и т.д.)

Артем
Так я за более-менее стандартный подход. Взять тот...

Хз что такое стандартный подход. Вопрос, каким образом организована бизнес логика в приложении? Проблемы, наверное в этом же?

А может не нужно? Кажется ты ещё не постиг дзен "работает - не трогай" Одно дело если проект не выполняет (выполняет с дорогими ошибками) возложенные на него задачи, и другое дело просто плохой код Этот проект больше к какому варианту относится? Вообще я за рефакторинг, если что. Но именно за рефакторинг, а не за переписывание - последнее далеко не всегда бывает оправдано

А ты какой подход будешь использовать в переписанном приложении?

Артем- Автор вопроса
Алексей Попов
А может не нужно? Кажется ты ещё не постиг дзен "р...

"Работает — не трогай" — девиз всего времени разработки. Тут же желание переписать проект (не с нуля, а отрефакторить по максимуму) вызвано и запросом бизнеса. Просто когда начну внедрять новые фичи, кодовая база будет увеличиваться и изменить что-то будет сложнее. Сейчас там 6к строк кода и это сделать можно за неделю.

Артем- Автор вопроса
Dmitry Croft
А ты какой подход будешь использовать в переписанн...

Изолирую модули, вынесу в отдельные классы службы, которые сейчас используются из глобальных переменных. (Т.е. замучу синглтон) и в целом большее ООП, так проект больше сохранит свой изначальный вид, избавившись от плохих подходов

Артем
Изолирую модули, вынесу в отдельные классы службы,...

Составь список 1. Проблема 2. Решение 3. Плюсы от решения 4. Что будет если не решить проблему Щас как-то сумбурно. Команде мб предоставишь список, они фидбэк дадут

Артем- Автор вопроса
Dmitry Croft
А бизнес слой как организуешь?

Его может без изменений оставлю, пока в процессы не вникну, хотя бы

Артем
Его может без изменений оставлю, пока в процессы н...

А когда вникнешь, как будешь организовывать?

Артем- Автор вопроса

Похожие вопросы