Saya harus memperluas modul proyek yang sudah ada. Saya tidak suka cara itu dilakukan (banyak anti-pola yang terlibat, seperti copy / paste kode). Saya tidak ingin melakukan refactor lengkap karena berbagai alasan.
Haruskah saya:
- buat metode baru menggunakan konvensi yang ada, bahkan jika saya merasa salah, untuk menghindari kebingungan bagi pengelola berikutnya dan konsisten dengan basis kode?
atau
- coba gunakan apa yang saya rasa lebih baik bahkan jika itu memperkenalkan pola lain dalam kode?
Precison diedit setelah jawaban pertama:
Kode yang ada tidak berantakan. Sangat mudah untuk diikuti dan dipahami. TETAPI memperkenalkan banyak kode boilerplate yang dapat dihindari dengan desain yang baik (kode yang dihasilkan mungkin menjadi lebih sulit untuk diikuti kemudian). Dalam kasus saya saat ini, modul DAO JDBC (spring template inboard) yang bagus, tapi saya sudah menemukan dilema ini dan saya sedang mencari umpan balik dev lainnya.
Saya tidak ingin refactor karena saya tidak punya waktu. Dan bahkan dengan waktu akan sulit untuk membenarkan bahwa modul yang berfungsi dengan baik perlu refactoring. Biaya refactoring akan lebih berat daripada manfaatnya. Ingat: kode tidak berantakan atau terlalu kompleks. Saya tidak dapat mengekstraksi beberapa metode di sana dan memperkenalkan kelas abstrak di sini. Ini lebih merupakan cacat dalam desain (saya pikir ekstrim 'Keep It Stupid Simple')
Jadi pertanyaannya juga dapat ditanyakan seperti itu:
Anda, sebagai pengembang, apakah Anda lebih suka mempertahankan kode membosankan bodoh yang mudah ATAU untuk memiliki beberapa pembantu yang akan melakukan kode membosankan bodoh di tempat Anda?
Kelemahan dari kemungkinan terakhir adalah bahwa Anda harus belajar beberapa hal dan mungkin Anda harus mempertahankan kode membosankan bodoh yang mudah juga sampai refactoring penuh dilakukan)