Refactor & Design Pattern
Halo teman teman, pada kesempatan kali ini sayang ingin menjelaskan dua cara membuat code kita menjadi lebih elegan dan rapih, refactor dan design pattern.
Pengantar
Refactor & Design Pattern diterapkan untuk mengurangi code smell. Code smell adalah karakteristik pada code yang dapat mengindikasikan masalah. Secara teknis code smell tidak membuat program tidak berfungsi seperti bug, namun mengindikasikan desain program yang kurang baik yang mungkin dapat menyebabkan turunnya performa suatu program. Berikut contoh code smell
- Ada bagian code yang mirip atau bahkan sama persis baik penulisan maupun fungsionalitas (duplicate code)
- Method dan class yang terlalu besar/panjang
- Method yang menerima terlalu banyak parameter
- etc.
Penjelasan
Refactor adalah proses perbaikan code dengan tanpa mengubah fungsionalitas bagian kode yang diubah. Refactoring bisa dilakukan dengan hal hal berikut
- Rename method
- Extract class and method
- Move method
- etc.
Berikut contoh salah satu refactoring, Extract method.
Katakan kita mempunya program seperti di atas. Program di atas adalah program yang digunakan untuk menghitung euclidean distance dari dua titik.
Get Fakhril’s stories in your inbox
Join Medium for free to get updates from this writer.
Berikut keluaran keluaran program tersebut
Di sini kita ingin melakukan method extracting pada fungsi euclidean_distance .
Subtask pada method euclidean_distance kini sudah di-extract menjadi sebuah method baru seperti di atas. Mari kita jalankan program setelah di-refactor
Hasilnya tetap sama!
Hal yang ingin saya tegaskan di sini adalah refactor tidak membuat code kita menjadi tidak berfungsi, atau berubah perilaku nya.
Penerapan refactor pada PPL dilakukan setelah code yang ditulis sudah lulus test (berfungsi dengan baik). Hal yang biasa saya dan teman teman lakukan pada refactoring adalah memperbaiki styling seperti penamaan variabel, dan pengaturan posisi potonga code.
Design Pattern merupakan solusi umum untuk masalah masalah yang sering terjadi dalam proses pengembangan software. Design pattern bukanlah solusi akhir yang bisa langsung diterapkan ke dalam code. Design pattern lebih megarah ke template yang dapat digunakan untuk memecahkan beberapa masalah yang serupa.
Design pattern dibagi menjadi tiga kategoi sebagai berikut
- Creational — Mengatasi masalah yang berhubungan dengan inisiasi kelas atau objek
- Structural — Membantu kita untuk mengorganisir kelas dan objek berbeda untuk membuat sebuah struktur baru yang lebih besar
- Behavioral — Berguna untuk mengidentifikasi pola hubungan antara objek
Kesimpulan
Code smell merupakan indikasi bahwa code yang ditulis bukanlah code yang baik, walaupun tidak merubah fungsionalita sada baiknya kita hindari.
Refactor & Design pattern hadir sebagai solusi untuk membantu kita menghindari code smell dengan membuat code kita lebih rapih.
Sebagai saran, kita bisa menggunakan tool seperti “Linter” untuk membantu kita menghindari code smell.








