J'ai toujours été sceptique quant à la réécriture du code de travail - le portage de code ne fait pas exception à cela. Cependant, avec l'avènement du TDD et des tests automatisés, il est beaucoup plus raisonnable de réécrire et de refactoriser le code.
Est-ce que quelqu'un sait s'il existe un outil TDD qui peut être utilisé pour porter l'ancien code? Idéalement, vous pourriez faire ce qui suit:
- Rédigez des tests unitaires indépendants de la langue pour l'ancien code qui réussit (ou échoue si vous trouvez des bogues!).
- Exécutez des tests unitaires sur votre autre base de code qui échouent.
- Écrivez du code dans votre nouveau langage qui réussit les tests sans regarder l'ancien code.
L'alternative serait de diviser l'étape 1 en "Écrire des tests unitaires dans la langue 1" et "Port tests unitaires dans la langue 2", ce qui augmente considérablement l'effort requis et est difficile à justifier si l'ancienne base de code va cesser d'être maintenue après le port (c'est-à-dire que vous n'obtenez pas l'avantage d'une intégration continue sur cette base de code).
EDIT: Il convient de noter cette question sur StackOverflow.
expect. Si vous avez un système hérité de style Unix qui communique avec les canaux utilisant stdin et stdout, cet outil peut être utilisé à coup sûr. En fait, il serait également assez facile de tester avec n'importe quel langage de script.
legacy language xà fancy new language y. Je n'essayais pas d'impliquer quoi que ce soit à propos d'Unix!
expectpour implémenter vos tests.