Apa Itu Refactor Code Dalam Programming
Dalam software development, sering kita membuat production kode sulit dibaca, tidak rapi bahkan juga ada duplikasi function atau mempunyai komplikasi yang tinggi hingga mengakibatkan kode susah untuk di-maintain ketika telah jadi program yang besar. Untuk tersebut diperlukan refactoring.
Sebetulnya apakah itu refactoring? Dalam bukunya yang dibuat Martin Fowler dan teman teman, pengertian refactoring ialah seperti berikut :
Refactoring is the process of changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure. It is a disciplined way to clean up code that minimizes the chances of introducing bugs. In essence when you refactor you are improving the design of the code after it has been written.
Jadi simpelnya, Refactoring ialah sebuah tehnik untuk tingkatkan design kode kita hingga membuat kode kita jadi gampang dibaca dan di-maintain. Salah satunya langkah refactoring kode ialah menerapkan desain pattern.
Lalu, kenapa perlu refactoring? kapan wajib melakukan refactoring?dan kode apakah yang semestinya dilakukan refactoring? Berikut penjelasannya :
Mengapa Perlu Refactoring?
Meningkatkan Software Desain
Saat work in tim, kode selalu berbeda oleh seseorang dan kadang perubahan itu membuat kode kehilangan strukturnya dan membuat bentuknya jadi jelek hingga susah dibaca. Dengan refactor, kita bisa merapikan kode kita. Salah satunya triknya ialah menghilangkan duplikasi pada fungsi yang ada.
Mempermudah Menemukan Bug
Dengan mengerjakan refactor, otomatis kita coba pahami secara dalam apa yang sudah dilakukan satu kode. Disamping itu, kita memahami struktur program kita. Dengan demikian, peluang menyelesaikan bug jadi lebih baik.
Membantu kita dalam membuat kode lebih cepat
Dengan refactoring, seseorang secara mudah melihat jika code kita ada perkembangan kualitas. Kualitas itu seperti peningkatan readability, berkurangnya bug. Hal yang lain tidak kalah penting ialah good desain dari kode kita. Good desain otomatis sebetulnya ialah beberapa hal yang essensial dalam percepat peningkatan software. Memang sebelumnya kode yang tidak menggunakan good desain bisa percepat tugas kita pada awal tetapi bila menjadi software besar karena itu bisa saja susah di-maintain. Maka dari itu, good desain benar-benar lah penting dalam jaga speed dari pengembangan software.
Kapan harus melakukan refactoring?
Saat akan menambah fungsi/feature
Refactor bisa dilakukan saat kita ingin menambah feature tertentu di software kita. Umumnya alasan utama untuk refactor untuk membantu kita mengerti beberapa kode yang perlu kita modifikasi. Kode itu bisa saja dibuat oleh seseorang atau bahkan juga diri sendiri . Maka saat kita akan lakukan refactor pastikan kita memahami apa yang sudah dilakukan oleh kode itu. Bila tidak mengerti, karena itu dapat membuat kode desain kita jadi jelek. Lantas saat menemukan jika kode desain tidak membantu dalam menambah feature, karena itu kita harus coba membenahi kode desain dan automatis kita telah lakukan refactoring. Sesudah kode desain dirasakan telah baik untuk menambah feature, baru kita lakukan tambahan feature
Saat memperbaiki bug
Saat memperbaiki bug, otomatis kita usaha mengerti apa yang satu kode lakukan. Saat sedang memahami kode itu, seharusnya kita lakukan refactor untuk menambahkan rasa percaya diri kita jika kita memahami kode itu.
Saat melakukan Kode Review
Di saat kerja di Industri, umumnya beberapa developer akan lakukan kode ulasan saat satu feature selesai dikerjakan. Kode ulasan membantu berbagi pengetahuan ke semua anggota team. Dengan kode ulasan, developer yang lebih berpengalaman bisa share ke yang kurang berpengelaman. Developer yang berpengelaman ini menolong team untuk pahami lebih dalam berkaitan faktor large software sistem. Kode ulasan jadi gelaran untuk setiap orang memberi ide yang lebih berguna terkait suatu feature.
Code yang sebaiknya di-refactor
Dalam bukunya, Martin Fowler menjelaskan lumayan banyak tipe kode yang perlu dilakukan refactor. Tetapi pada ulasan ini kali, saya akan membahas 3 tipe kode yang seharusnya dikerjakan oleh refactor.
Duplicated Kode
Duplicated Kode sebagai tipe kode yang di-refactor karena membuat tidak good desain. Tipe duplicated kode yang paling simpel ialah ada dua eksperesi yang serupa pada dua metode di class yang serupa. Kita dapat lakukan Extract Metode dan lakukan invoke pada kode itu. Bila, ada duplicated kode di class yang lain, kita dapat lakukan Extract Class pada salah satunya class dan memakai component baru di class lainnya
Long Metode
Metode yang bagus ialah metode yang pendek dan fokus di suatu job tertentu. Long metode tidak baik secara design karena makin panjang metode itu karena itu makin susah untuk dipahami. Bila ada metode yang banyak memiliki parameter dan temporary variables, hal itu dapat diselesaikan dengan Extract Metode.
Large Class
Satu class yang usaha didesain untuk lakukan banyak job karena itu maknanya akan ada beberapa instance variable. Bila class banyak memiliki instance variable, maknanya kita mendorong class kita mempunyai duplicated kode. Hal paling sederhana yang dapat dilakukan ialah mengeliminasi kode yang redundant pada class itu.