Refactoring and Design Pattern
Refactoring adalah proses menyusun ulang kode yang sudah kita buat. Pada paradigma TDD, tujuan awal kita adalah membuat kode sehingga lulus semua test (GREEN). Dalam prosesnya, seringkali kita membuat kode yang kurang rapih dan terstruktur, serta belum mengikuti best practice yang ada sehingga kode tsb perlu dilakukan proses refactoring.
Refactoring dilakukan supaya kode lebih maintainable dan optimum. Dalam hal ini, kelebihan TDD adalah kita tidak perlu khawatir kode yang kita refactor akan rusak fungsionalitasnya karena kita bisa melihat test sebagai patokan fungsionalitas kode. Artinya, ketika kita melakukan refactor, lalu ada test yang failed, berarti ada bagian kode yang setelah di-refactor fungsionalitasnya rusak. Kalau sudah terjadi seperti itu, kita bisa memperbaikinya sehingga bisa lulus semua test lagi dan melakukan refactor kembali. Jika setelah refactor kode yang kita buat sudah lulus semua test, berarti refactor yang dilakukan sudah sukses.
Proses refactoring sangat erat kaitannya dengan restrukturisasi. Oleh sebab itu, kita memerlukan panduan supaya hasil restrukturisasi yang kita lakukan kualitasnya tidak sama saja bahkan lebih buruk. Panduan ini kita kenal dengan design pattern.
Design pattern (dalam konteks software engineering) adalah solusi yang dapat dilakukan secara berulang-ulang terhadap permasalahan umum dalam software design. Dengan pengaplikasian design pattern yang tepat, kode yang kita buat bisa lebih terstruktur dan maintainable, serta bisa lebih adaptif terhadap perubahan yang bisa terjadi kedepannya.
Berikut ini adalah contoh refactoring yang saya terapkan di PPL Salemba :
Berdasarkan gambar 1.1, variabel yang tadinya bernama “config” diubah jadi “body_req” supaya bisa lebih bermakna karena isinya merupakan body request yg akan diikutsertakan pada request POST.
Gambar 1.2 s/d 1.4 menunjukkan potongan kode antara sebelum dan sesudah refactoring (membuat potongan kode menjadi lebih modular dengan cara membungkusnya dengan fungsi).
Sekian dari apa yang bisa saya sampaikan dan terima kasih.