Refactoring
- M Faisal Mazidnianto
- Mar 19, 2017
- 2 min read
Apakah refactoring itu?
Refactoring adalah proses memperbaiki struktur internal sebuah sistem perangkat lunak tanpa mengubah fungsionalitas dari sistem. Dalam proses refactoring dilakukan modifikasi pada code dari suatu program untuk memperbaiki struktur dari code tersebut guna mengurangi kompleksitas atau membuatnya lebih mudah dimengerti sehingga code akan lebih responsive terhadap perubahan dan tidak terlihat rumit.
Manfaat Refactoring
keuntungan melakukan refactoring pada code dari program yang kita buat adalah
- responsive terhadap perubahan
- berkurangnya atau bahkan menghilangnya duplikasi pada code
- dapat menemukan dan mengantisipasi bug.
- program berjalan bisa lebih cepat.
Kapan dilakukannya Refactoring?
Dalam refactoring ada istilah yang dikenal dengan sebutan "Bad Smell" yaitu struktur program yang tidak bagus dan perlu diperbaiki. Bad Smell dikemukakan dalam oleh Fowler et al. (1999) yang menyatakan bahwa ada situasi stereotipe di mana kode program dapat ditingkatkan. Berikut adalah contoh dari Bad Smell yang dapat ditingkatkan melalui refactoring meliputi:
- Duplikasi Kode
Terdapat kode yang sangat mirip yang terletak di beberapa tempat yang berbeda pada kode kita. Solusi untuk menghilangkan duplikasi kode adalah dengan cara dihapus dan diimplementasikan sebagai satu method atau function tunggal yang akan dipanggil saat diperlukan.
- Long method
Terdapat suatu method yang terlalu panjang karena melakukan terlalu banyak hal. Solusinya adalah harus dirancang ulang atau dipecah menjadi sejumlah method yang lebih pendek.
- Large class
Suatu class yang memiliki terlalu banyak komponen. Solusinya adalah dengan mengelompokkan dan memisahkan masing-masing ke sebuah kelas.
- Switch (case) Statement
Statement ini sering melibatkan duplikasi, dimana switch tergantung pada jenis beberapa nilai. Solusinya adalah dengan menggantinya dengan menggunakan polimorfisme.
- Data Clumping
Clumping data terjadi ketika kelompok data yang sama (field dalam kelas, parameter dalam metode) terulang kembali di beberapa tempat dalam sebuah program. Solusinya adalah dengan menggantikannya dengan enkapsulasi semua data dalam satu objek.
- Spekulasi Generalitas
Terjadi ketika developer memasukkan generality dalam program dengan perkiraan akan dipakai dimasa yang akan datang, padahal belum tentu dipakai. Solusinya adalah dengan menghapus generality tersebut.
- Comments
Fowler mengklaim bahwa komentar merupakan tanda-tanda ketidakjelasan, kerumitan, dan ketidakpahaman. Daripada memelihara ketidakjelasan, lebih baik kode di refactoring.
- Divergent Change
Suatu perubahan kecil mengharuskan adanya perubahan suatu subset dari suatu method, perubahan lainnya lagi, mengharuskan perubahan di subset yang lain pula.
- Shotgun Surgery
Suatu perubahan kode mengharuskan banyak perubahan di banyak class yang berbeda-beda.
- Parallel Inheritance Hierarchies
Setiap kali menambah sub-class ke suatu hirarki, penambahan harus dilakukan ke seluruh hirarki yang berhubungan.
- Primitive Obsession
Keengganan untuk menggunakan class-class, lebih memfavoritkan primitive type.
Source : http://rpl.if.its.ac.id/refactoring/
Salam,
Muhammad Faisal Mazidnianto
Comments