2013-09-13 3 views
5

Мне нужно преобразовать приложение с примерно 100 тыс. Строк кода с одного языка программирования на другое (от java до C++).Как управлять преобразованием кода?

Я ищу решение для отслеживания моего прогресса и обеспечения того, чтобы ничто не попадало в трещины.

До сих пор я думал о двух подходах, но и не представляется оптимальным:

  • скопировать старый код как комментарии в новые исходные файлы и удалять части, которые будут преобразованы (это получает грязный)

  • распечатывают старый код и использовать фломастер, чтобы отметить преобразованный код (не эффективно)

Вероятно, лучшим решением было бы сома текстовый редактор, где я мог бы хранить старую базу кода и выделять цифру/маркировать код, который уже конвертирован. Существует ли такая утилита? Или есть лучшее решение для управления преобразованием кода?

+2

Зависит ** сильно ** от языка, который преобразуется из и в. – Crisfole

+0

Есть ли хорошие идеи? Почему вы просто не переводите его и не проверяете, что все выходы идентичны? – Ben

+1

Будут ли какие-либо попытки реорганизовать или перепроектировать любые части базы кода? Это может также вызвать некоторые проблемы, отслеживающие, где вы находитесь. –

ответ

7

Вы можете проверить свой старый код на VCS (например, Git, SVN и т. Д.), А затем начать удаление частей, которые вы уже конвертировали. Средство сравнения VCS ясно сообщит, какие части были удалены, действуя как этот подход «цифровой подсветки», но проще (потому что старая база кода будет уменьшаться при ее преобразовании).

Наиболее прагматичным подходом было бы сначала преобразовать тесты (если у вас есть какие-либо тесты ...). Затем вы можете написать новый код против тестов. Если у вас нет тестов, решите сделать некоторые из них. Преобразование 100KLOC без тестов - это рецепт для тонких ошибок спустя несколько месяцев.

+0

Преобразование такого количества кода будет беспорядочным:> Я согласен с подходом, основанным на тестах и ​​построении. – user2246674

+0

Большое спасибо за предложение! Это отличное решение. И нет, нет тестов для старого кода, и да, мне нужно сделать некоторые. – lajos

Смежные вопросы