Bagaimana Kami Memutuskan Bila Perlu Melakukan Refactor dan Bila Perlu Menulis Semula
Setiap pembangun menghadapi saat ini.
Kod asas menjadi perlahan. Menambah ciri-ciri mengambil masa terlalu lama. Pekerja baharu bergelut untuk memahami sistem. Seseorang akhirnya mencadangkan penulisan semula secara menyeluruh.
Pasukan biasanya terbahagi kepada dua kumpulan. Satu kumpulan mahu bermula dari awal. Kumpulan lain bimbang akan kegagalan penulisan semula yang pernah dilakukan sebelum ini. Kedua-dua pihak mempunyai hujah yang sah.
Penulisan semula bukanlah penyelesaian ajaib. Ia sering mengambil masa lebih lama daripada yang dirancang. Anda akhirnya terpaksa menyelenggara dua sistem pada masa yang sama. Anda mungkin akan mengulangi kesilapan yang sama dalam versi baharu.
Penulisan semula masuk akal dalam kes-kes khusus berikut:
• Model data secara asasnya salah untuk perniagaan. • Teknologi tersebut sudah usang dan tidak lagi menerima kemas kini keselamatan. • Keperluan perniagaan telah berubah dengan begitu banyak sehingga sistem asal sudah tidak relevan. • Tiada sesiapa dalam pasukan semasa yang memahami cara sistem itu berfungsi.
Walaupun begitu, jangan lakukan penggantian secara drastik (big bang replacement). Gunakan corak strangler fig. Bina sistem baharu secara berperingkat bersama-sama dengan sistem lama.
Kebanyakan masa, anda sebenarnya perlu melakukan refactor.
Refactoring adalah pilihan yang tepat apabila:
• Anda masih boleh menambah ciri-ciri, walaupun ia perlahan. • Pasukan memahami kod sedia ada. • Kekusutan hanya terhad kepada modul-modul tertentu. • Perniagaan tidak boleh berhenti melancarkan ciri-ciri baharu.
Sebelum anda memilih, tanya mengapa kod tersebut menjadi buruk.
Jika masalahnya adalah hutang teknikal (technical debt), lakukan refactor pada bahagian yang paling teruk. Jika masalahnya adalah kekurangan semakan kod (code reviews) atau budaya kerja yang lemah, penulisan semula tidak akan membantu. Anda hanya akan membina kekusutan baharu dengan tabiat lama yang sama.
Tanya soalan-soalan ini sebelum anda membuat keputusan:
• Bolehkah kita membaiki bahagian yang paling teruk secara berasingan? • Adakah model data tidak lagi sesuai dengan keperluan perniagaan semasa? • Apakah pengetahuan yang akan hilang jika kita bermula semula? • Adakah perniagaan mempunyai kestabilan untuk mengendalikan peralihan yang panjang?
Bermula semula terasa menyeronokkan. Menyiapkan penulisan semula adalah bahagian yang sukar. Kebanyakan masa, pelan refactoring yang berstruktur adalah lebih selamat dan lebih berkesan.
Sumber: https://dev.to/daviefano/how-we-decide-when-to-refactor-and-when-to-rewrite-40pk