Mehrere Vorschläge:
können Sie finden das Kopieren und Einfügen Code mit einem Tool wie Duplo. Ein Skript (in der Skriptsprache Ihrer Wahl) oder ein Editor mit mehrzeiligem Suchen und Ersetzen kann Ihnen helfen, diesen Code durch Funktionsaufrufe zu ersetzen. (Dies kann auch per Hand erfolgen, aber die Verwendung eines Skripts oder Suchen und Ersetzen hilft, Fehler auszuschließen.)
Refactoring-Tools können Operationen wie das Extrahieren eines Teils einer Funktion in eine neue Funktion automatisch ausführen. Eclipse CDT zum Beispiel kann dies tun, und es ist kostenlos, und es kann Code bearbeiten, der in anderen IDEs verwaltet wird. Das funktioniert nicht immer, aber wenn es funktioniert, ist es wirklich erstaunlich zuzusehen, wie die IDE eine Tausende-Zeilen-Methode aufteilt, genau das extrahiert, was Sie wollen, und jede Variable, die als neuer Parameter übergeben werden muss, korrekt identifiziert zu Ihrer neuen Methode ... Andere Refactoring-Tools sind verfügbar, wie Refactor! Pro (kostenlose Version verfügbar), aber ich habe sie nicht verwendet.
Allgemeiner, Michael Feathers Buch Working Effectively with Legacy Code ist die Standardarbeit, um diese Art von Sache zu machen. Grundsätzlich werden Sie Charakterisierungstests durchführen wollen - ähnlich wie bei Komponententests, aber das Ziel besteht darin, so viel wie möglich vom Verhalten der aktuellen Funktion abzudecken, anstatt die kleinsten möglichen Einheiten auf Korrektheit zu testen - dann wenden Sie Refactorings an zu einer Zeit. (Feathers enthält einen Katalog von Refactorings und anderen Techniken, die besonders nützlich für Legacy-Code sind.)
Viele IDEs geben Ihnen Werkzeuge, um damit zu helfen - Sie müssen nicht mehr alles kopieren/einfügen und mit den Parametern herumspielen. –
@Andrei Krotkov, ja, aber sie wollen intelligente Entscheidungen darüber treffen, was in Funktionen umgewandelt werden soll. Sobald Sie jedoch einen Block finden, der ein guter Kandidat ist, sind diese Werkzeuge sehr üblich, um solche Refactorings einfach zu machen. – BobbyShaftoe
Oh natürlich. Es gibt kein Werkzeug, um es magisch für dich zu tun - aber es gibt Werkzeuge, die helfen, von denen ich denke, dass die Frage war. –