170 похожих чатов

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

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

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

Как бы вы поступили?

26 ответов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта