Apa saran (kiat, teknik, gotcha, dan lain-lain) yang Anda miliki untuk seseorang yang memindahkan pustaka kode dari satu bahasa ke bahasa lain, atau menulis ulang agar berfungsi di lingkungan kompiler, yang berbeda?
Apa saran (kiat, teknik, gotcha, dan lain-lain) yang Anda miliki untuk seseorang yang memindahkan pustaka kode dari satu bahasa ke bahasa lain, atau menulis ulang agar berfungsi di lingkungan kompiler, yang berbeda?
Jawaban:
Setiap platform (bahasa dan sistem perpustakaan) memiliki persona sendiri. Cara programmer Ruby mendesain API mereka memanfaatkan fitur dan budaya unik yang menjadikan Ruby seperti apa adanya. Ini jelas berbeda dari cara pengembang C atau C ++ mendesain API mereka, yang pada gilirannya berbeda dari cara pengembang Java atau C # melakukannya.
Anda ingin mengambil ide-ide dari platform asli, dan membentuknya menjadi konsep-konsep yang membuat platform baru itu apa adanya. Tidak ada yang terasa lebih alami daripada menggunakan perpustakaan yang dirancang dengan cara yang sama sekali berbeda dari perpustakaan lain di platform. Ada sejumlah platform pemrograman yang sebenarnya dirancang dengan baik, dan elegan. Anda ingin memanfaatkan kekuatan itu untuk port Anda.
Ketahui kemampuan asli bahasa "kerangka" dan "dari" Anda / kerangka kerja.
Saya porting perpustakaan kalender ke iOS dari Javascript. iOS memiliki kelas kalender yang kuat sedangkan JavaScript tidak memiliki apa-apa yang berguna bagi saya. (Saya bertobat dari kalender agama ke kalender Gregorian dan sebaliknya.)
Saya menghabiskan waktu menulis ulang seluruh perpustakaan di Objective-C hanya untuk menyadari bahwa kode saya sebagian besar berlebihan. (Omong-omong, saya melakukan pekerjaan yang buruk dan mendapatkan hasil yang tidak akurat. Saat itulah saya mengambil langkah mundur dan menyadari kesalahan saya.)
Beberapa lusin baris metode konversi diganti dengan enam atau lebih baris kode kerangka kerja asli.
Jika ini adalah proyek penting (sering porting), tulis rencana pengujian lengkap (idealnya dengan unit test dalam bahasa target) SEBELUM porting setiap bagian kode dan seluruh sistem.
Tidak ada cara di dunia bahwa porting akan 100% akurat pada percobaan pertama, jadi Anda harus memastikan terlebih dahulu bahwa Anda menangkap semuanya.
Jika memungkinkan, jalankan rencana yang sama untuk kode asli karena tidak ada jaminan bahwa itu ditulis dengan benar, dan, pada kenyataannya, memiliki perilaku yang setara mungkin tergantung pada implementasi yang salah.
-> Fokus pada fungsi bukan dengan cara yang telah dikodekan.
-> Berpikir sebelum menulis, karena beberapa elemen sudah dapat ditangani oleh bahasa, platform dll.
-> Gunakan keunggulan platform baru.
Bangun diagram pohon / hierarki kelas sehingga Anda tahu mana yang harus port pertama. Petakan tipe data dasar (int -> Int32?). Lakukan hal yang sama untuk struktur data.