Saya selalu ragu menulis ulang kode kerja - kode porting tidak terkecuali untuk ini. Namun, dengan munculnya TDD dan pengujian otomatis, jauh lebih masuk akal untuk menulis ulang dan kode refactor.
Adakah yang tahu kalau ada alat TDD yang bisa digunakan untuk porting kode lama? Idealnya Anda bisa melakukan hal berikut:
- Tulis tes unit agnostik bahasa untuk kode lama yang lulus (atau gagal jika Anda menemukan bug!).
- Jalankan tes unit pada basis kode Anda yang lain yang gagal.
- Tulis kode dalam bahasa baru Anda yang lulus tes tanpa melihat kode lama.
Alternatifnya adalah dengan membagi langkah 1 menjadi "Menulis unit test dalam bahasa 1" dan "Port unit tes ke bahasa 2", yang secara signifikan meningkatkan upaya yang diperlukan dan sulit untuk dibenarkan jika basis kode lama akan berhenti dipertahankan setelah port (yaitu, Anda tidak mendapatkan manfaat dari integrasi berkelanjutan pada basis kode ini).
EDIT: Perlu dicatat pertanyaan ini di StackOverflow.
expect
. Jika Anda memiliki sistem warisan gaya Unix yang berkomunikasi dengan pipa menggunakan stdin dan stdout maka alat itu dapat digunakan dengan pasti. Bahkan, akan sangat mudah untuk menguji dengan bahasa scripting apa pun juga.
legacy language x
ke fancy new language y
. Saya tidak berusaha menyiratkan apa pun tentang Unix!
expect
untuk mengimplementasikan tes Anda.