Di masa lalu, saya menggunakan cara standar untuk menambahkan @Deprecated
anotasi ke metode API yang akan dihapus di versi yang lebih baru.
Sekarang saya sedang mempersiapkan versi utama untuk perpustakaan, dengan banyak bagian API dihapus dan diganti namanya.
Untuk membuat transisi lebih mudah bagi pengguna yang sudah ada, mungkin bisa bermanfaat jika versi pustaka baru dapat digunakan berdampingan dengan versi yang lama.
Keuntungan
- peralihan dinamis antar versi dapat diterapkan
- aplikasi dapat kembali ke versi sebelumnya jika bug ditemukan di versi baru (berguna dalam fase beta)
Untuk melakukan ini, saya cukup memindahkan versi perpustakaan baru ke paket baru dari com.mycompany.library
kecom.mycompany.library.v2
Apakah ini praktik yang umum atau ada rekomendasi lain untuk penggunaan perpustakaan Java secara berdampingan?
Latar Belakang:
perpustakaan adalah konverter dokumen sederhana. Jadi selain mehtod konversi (masuk, keluar), ia memiliki banyak properti konfigurasi dan beberapa penangan acara. Jika saya menyediakan penggunaan berdampingan, konsumen dapat secara instantiate dinamis dan mengkonfigurasinya:
if (useVersion2) {
com.mycompany.library.v2.Converter c = new com.mycompany.library.v2.Converter();
// configure and run
c.setOption(...);
c.convert(in, out);
} else {
com.mycompany.library.Converter c = new com.mycompany.library.Converter();
// configure and run
c.setOption(...);
c.convert(in, out);
}
(pertanyaan dipindahkan dari /programming/37192945/ )
for a short time period
. Kami berdua tahu apa artinya temporarl dalam rekayasa perangkat lunak. Bukan kita? ;-)
@Deprecated
anotasi ke kode Anda. Kemudian, pada rilis, ketika orang memperbarui, mereka akan melihat bahwa kode tersebut sudah usang dan mereka harus berubah. Setelah itu, hapus semua kode.