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

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

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

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

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

26 ответов

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

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

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

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

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

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

Артем- Автор вопроса
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
А бизнес слой как организуешь?

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

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

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

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

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

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

сурсы: import std/asyncdispatch, std/httpclient, std/json, std/sequtils, std/strutils, std/unicode, std/unidecode, std/uri, uuid4, regex const GPT4_API...
Qtless Qtless
4
А ещё docker можно к ассемблеру прикрутить. В целом, системы сборки это настолько несвязанная вещь... Это оффтоп, можно сказать, во всех чатах. Это просто проект, который помо...
КТ315
22
Кто-нибудь может проверить на 11.3 и более ранних версиях, последнее число в трех нижних строках одно и тоже или нет? var Dict: TDictionary<Integer, string>; i, j: Intege...
Boris N (MBo)
6
Раз пошла тема про XML... Delphi XE 10.4.2(но это не важно), XML Data Binding Несколько XSD. В основном содержатся include на расширения. Несколько Namespace, это важно. Бин...
Alexey Gavrilov
4
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
ребята, вы после работы успеваете/хватает сил время на себя потратить, допустим в зал и тд? особенно те кто на удаленке
Marat
10
Было открыто два проекта в Xcode. В одном делал билд, а в другом просто ковырялся. Проц разогрелся до 99 градусов, изображение на дисплее посыпалось и через 5 секунд комп выру...
Alexander Sherbakov
7
получается, что он находит одинаковое колво тегов, с разными именами, или я что тто не понял в таксоупе ?
Fedor
46
вот еще вопрос ошибка app/Main.hs:135:13: error: [GHC-83865] • Couldn't match type: MoveInfo -> Coords with: (Int, Int) Expected: Coords ...
Fedor
21
Какие в фасме есть определения для 128 и 256-битных слов?
The Bird of Hermes
12
Карта сайта