Это очень трудная проблема. Я опишу, что бы я сделал (и сделал), если старый код существенно большой.
В общем, старый код полон решений, исправлений ошибок и недокументированных действий. Если вы выбросите это, вы обязательно совершите многие из тех же ошибок, которые они сделали, а затем еще немного.
Для чего это стоит, вы должны развиваться системы вокруг старого кода. Попробуйте отвлечься от старого кода, например, создав интерфейсы, а затем реализовать их, вызвав старый код сначала. Напишите много модульных тестов для интерфейсов и узнайте, как работает старый код. Новые функции должны получить новые реализации, поэтому старый код и новый код будут жить бок о бок, до тех пор, пока это необходимо, и, возможно, даже навсегда.
Теперь, медленно и тщательно делайте вторжения в старый код, рефакторинг, замену его и удостоверение, что ваши тесты все еще проходят. Также напишите новые тесты. Если у вас есть регрессионные тесты для системы (кроме модульных тестов), они все равно должны пройти.
Это нормально, чтобы не прикасаться к старому коду, как правило, если он работает нормально, ошибок нет, он передает ваши тесты, и его не нужно расширять.
Некоторые хорошие ресурсы:
http://martinfowler.com/bliki/StranglerApplication.html
Working Effectively with Legacy Code
Я также нашел его в StackOverflow уже:
Strategy for large scale refactoring
Вы не говорите, что либо ошибки или проблема заключается в том, что это противоречивое требование, противоречивые требования, является ли это плохим предположением, экологические ограничения. Если мы не знаем, какая ошибка была сделана, как мы можем предложить методы, чтобы избежать этого? Единственное предложение, которое я могу сделать, - это тщательный экспертный обзор, но даже это иногда случается. –
Я ошибся из-за базы данных. Многие вещи из старого приложения, такие как обработка новых данных, основывались на этой базе данных. После его перепроектирования ... я совершил некоторую ошибку, вызванную обработкой новых данных. Это очень раздражает. Я хочу предотвратить такую ошибку ... Я очень устаю от старого кода/базы данных. – bastianneu