Salah satu metode yang biasa saya gunakan dalam basis kode kami salah eja (dan itu mendahului saya).
Ini benar-benar membuat saya jengkel bukan hanya karena salah mengeja tetapi yang lebih penting itu membuat saya SELALU mendapatkan nama yang salah saat pertama kali saya mengetiknya (dan kemudian saya harus ingat "Oh, benar, itu harus salah eja untuk ini ...")
Saya membuat beberapa perubahan di sekitar metode asli. Haruskah saya mengambil kesempatan untuk mengganti nama metode panik?
refactoring
Satu dua tiga
sumber
sumber
Jawaban:
Benar.
Yang mengatakan, jika kode Anda telah dirilis sebagai API, Anda biasanya juga harus meninggalkan metode yang salah eja dan meneruskannya ke metode yang dinamai dengan benar (menandainya Obsolete jika bahasa Anda mendukung hal-hal seperti itu).
sumber
Ada beberapa kasus di mana Anda harus menghindari melakukan refactoring tersebut:
Jika metode ini digunakan dalam antarmuka publik. Contoh kanonik adalah salah mengeja referer dalam referer HTTP , ejaan yang salah disimpan, karena mengubah ejaan sekarang akan memiliki terlalu banyak dampak.
Jika basis kode tidak dicakup oleh tes apa pun. Setiap refactoring harus dilakukan pada kode yang diuji untuk dapat melakukan pengujian regresi. Refactoring basis kode yang tidak sedang diuji sangat berisiko. Jika Anda memiliki banyak waktu, mulailah dengan menambahkan tes; jika Anda bekerja di bawah tekanan waktu, mengambil risiko memperkenalkan bug halus bukanlah hal terbaik untuk dilakukan jika Anda ingin mengirim tepat waktu.
Jika metode ini dapat digunakan dengan cara yang tidak biasa , yang membuat penggunaannya hampir mustahil untuk ditemukan (melalui Ctrl + F atau dengan alat refactoring otomatis). Misalnya, dalam C #, metode dapat dipanggil melalui Refleksi, membuat dialog Ganti Nama Visual Studio tidak efektif. Dalam JavaScript, fungsi yang disebut di dalam
eval()
sulit juga ditemukan. Di PHP, variabel variabel dapat menyebabkan masalah.Jika ukuran proyek sangat besar dan metode ini dapat digunakan oleh tim lain. Ini mirip dengan poin pertama, yaitu antarmuka yang Anda berikan ke tim lain dapat dianggap sebagai antarmuka publik.
Jika Anda berurusan dengan proyek kritis kehidupan. Kemungkinannya, kesalahan mengeja tidak terlalu penting untuk membenarkan beberapa bulan dokumen untuk mengubah nama metode dan memastikan itu tidak akan menyebabkan pasien menerima sepuluh kali radiasi resmi atau antar-jemput untuk salah menghitung kecepatannya.
Dalam situasi lain, jangan ragu untuk mengganti nama metode.
sumber
Saya sudah melakukan ini beberapa bulan yang lalu (untuk alasan yang berbeda). Langkah-langkah yang saya ambil (bahasanya Perl):
Setelah beberapa waktu, hapus metode dengan nama lama.
Tentu saja, jarak tempuh Anda akan bervariasi.
sumber
Cara yang baik untuk tidak merusak kode apa pun yang ada adalah dengan mem-chain nama metode baru ke yang lama seperti itu
dan kemudian tandai metode lama sebagai usang (jika bahasa Anda mendukung ini). Dengan cara ini, kode apa pun yang ada akan tetap berfungsi dan Anda dapat menghapus semua kesalahan ejaan lama dari basis kode Anda secara bertahap. Akhirnya Anda bahkan bisa menyalin / menempelkan body metode ke metode baru dan menghapus yang lama.
/ Sunting Seperti yang dikatakan ivo dalam komentar: Hal yang lebih baik untuk dilakukan adalah memindahkan kode dari
TheOldMethodName
keMyNewMethodName
dan memanggil metode baru dari yang lama. Yang ini juga akan memiliki keuntungan untuk membantu dev untuk mendapatkan kepala mereka di mana kode itu berasal.sumber
Mengganti nama metode:
Itu adalah dua opsi yang bisa Anda pilih. Saya lebih suka penyelesaian otomatis (mis. Eclipse IDE) dan tidak perlu mengetikkan nama metode. Pergi untuk mengganti nama; pastikan Anda mencari tahu apa yang memanggil metode itu dan mengubah referensi langsung di setiap tempat. Refactoring akan menjadi teman Anda untuk itu tetapi paling berhati-hati saat melakukannya.
sumber
Saya biasanya akan merekomendasikan ya, ganti namanya.
Jawaban lain di sini telah mencantumkan alasan bagus mengapa Anda mungkin tidak ingin menamainya kembali, jadi jika Anda menemukan diri Anda dalam satu situasi seperti itu, Anda dapat membuat metode baru dengan nama dan implementasi yang tepat, dan mengubah metode lama untuk memanggil metode baru . Kemudian tandai yang lama sudah usang jika bahasa Anda mendukungnya.
sumber