Code Refactoring

Novi Handayani
4 min readApr 10, 2022

--

Sumber: https://medium.com/quick-code/refactoring-an-ode-to-code-6ca522f23462

“ Progress is more important than perfection.” — Simon Sinek

Seperti kutipan di atas, dalam pengembangan software pada umumnya tidak selalu langsung mencapai kata sempurna. Perbaikan pada kode yang sudah dibuat merupakan hal yang umum dilakukan. Bahkan programmer handal sekalipun selalu ingin meng-improve kode-kode yang ditulisnya. Hal tersebut merupakan hal yang penting agar kode yang dihasilkan lebih berkualitas.

Apa itu code refactoring?

Dalam hal ini terdapat suatu istilah yang disebut code refactoring. Code refactoring merupakan suatu proses untuk melakukan restrukturisasi pada kode yang telah ada tanpa mengubah perilaku eksternal dan fungsionalitasnya. Refactoring dilakukan dengan tujuan untuk memperbaiki kualitas kode dengan membuatnya menjadi lebih efisien, lebih mudah dibaca, serta mudah di-maintain. Dengan melakukan refactoring, kita dapat mengurangi technical cost dengan mencegah error yang mungkin terjadi di kemudian hari.

Kapan melakukan refactoring?

Pada agile development, refactoring merupakan salah satu dari tiga komponen pada siklus Test Driven Development (TDD) yang dilakukan setelah step RED dan GREEN, yaitu seletah pembuatan test untuk suatu fungsionalitas yang spesifik dan implementasinya yang memenuhi test tersebut. REFACTOR dilakukan untuk meng-improve code tanpa mengubah behavior-nya.

Sumber: https://www.thinktocode.com/2018/02/05/what-is-tdd/

Biasanya, refactoring juga dilakukan setelah produk di-deploy sebelum berpindah ke proyek selanjutnya. Namun, waktu yang lebih baik untuk melakukan refactoring adalah sebelum menambahkan pembaruan atau fitur baru ke kode yang telah ada. Pada saat tersebut, refactoring memudahkan developer untuk membangun kode yang ada karena mereka akan kembali dan menyederhanakan kode, serta membuatnya lebih mudah dibaca dan dipahami.

Cara melakukan refactoring

Ada banyak cara dalam melakukan refactoring pada kode, diantaranya yaitu

  • Memperbaiki metode penulisan pada kode dengan tujuan untuk menghapus duplikasi dan membuat perubahan di masa mendatang jauh lebih mudah dilakukan.
  • Menyederhanakan ekspresi kondisional dan pemanggilan metode sehingga lebih mudah dipahami.
  • Memindahkan fitur antar objek untuk mendistribusikan fungsionalitas antar kelas dengan lebih baik. Hal ini juga termasuk memindahkan fungsionalitas, membuat class baru, dan menyembunyikan detail implementasi.
  • Mengatur data untuk meningkatkan handling dan asosiasi class sehingga kelas dapat digunakan kembali.

Melakukan refactoring pada proyek PPL

Pada proyek PPL, code refactoring dilakukan mengikuti siklus Test Driven Development (TDD), yaitu setelah step RED dan GREEN. Berikut adalah beberapa refactoring yang saya lakukan.

Saya melakukan refactoring untuk mengubah parameter data yang dikirim sesuai dengan detail mainan yang dipilih. Refactoring yang dilakukan pada kode tersebut tidak mengubah hasil test yang ditunjukkan pada pipeline berikut.

Refactoring lainnya yang saya lakukan yaitu melakukan pengambilan data daftar bank melalui API yang sebelumnya hanya diimplementasikan secara hard-coded. Perubahan ini tidak mengubah external behavior dari kode karena fungsionalitas dari program menginginkan untuk menampilkan daftar bank.

Kesimpulan

Refactoring mungkin memang terlihat tidak terlalu penting jika dibandingkan dengan task yang memiliki prioritas yang lebih tinggi. Namun, perbaikan yang diberikan saat melakukan code refactoring memiliki dampak yang signifikan terhadap kualitas kode yang dihasilkan. Refactoring pada kode juga akan meng-improve desain, struktur, dan implementasi dari software yang dibangun.

Referensi:

--

--