私は常に作業コードを書き直すことに懐疑的でした-コードの移植もこれに例外ではありません。ただし、TDDと自動テストの出現により、コードの書き直しとリファクタリングがはるかに合理的になりました。
古いコードの移植に使用できるTDDツールがあるかどうか、誰もが知っていますか?理想的には、次のことができます。
- 合格する(またはバグを見つけた場合は失敗する)古いコードの言語に依存しない単体テストを作成します。
- 失敗した他のコードベースで単体テストを実行します。
- 古いコードを見ずにテストに合格する新しい言語でコードを記述します。
別の方法として、ステップ1を「言語1でユニットテストを書く」と「言語2にユニットテストを移植する」に分割します。これにより、必要な労力が大幅に増加し、ポート(つまり、このコードベースでの継続的な統合の利点は得られません)。
編集:StackOverflowでこの質問に注目する価値があります。
expect
。stdinとstdoutを使用してパイプと通信するUnixスタイルのレガシーシステムがある場合は、そのツールを確実に使用できます。実際、どのスクリプト言語でも簡単にテストできます。
legacy language x
ましたfancy new language y
。私はUnixについて何も暗示しようとしていませんでした!
expect
してテストを実装します。