Belajar Teknik Refactoring : Extract Method

Belajar Teknik Refactoring : Extract Method.

Istilah Refactoring pertama diperkanalkan oleh Martin Fowler dalam bukunya “Refactoring : Improving The Design of Existing Code”. Secara singkat Refactoring adalah merubah struktur code tanpa merubah perilakunya. Refactoring tidak menambahkan fungsionalitas terbaru dari sebuah code, hanya memperbaiki struktur nya. Refactoring membutuhkan displin yang kuat mengenai prinsip-prinsip Object Oriented dan Design Pattern. Saya tidak akan terlalu membahas tentang apa itu Refactoring karena disini saya akan membahas salah satu methode/teknik yang dipakai dalam melakukan refactoring yaitu Extract Method.

Mengapa melakukan Refactoring dengan teknik ini?

Alasan sederhananya adalah semakin banyak baris kode yang ada pada suatu method, semakin sulit untuk mencari tahu apa yang sebenarnya method kerjakan. Ini adalah alasan utama untuk mengapa kita harus menggunakan teknik refactoring Extract Method.

Selain menghilangkan sisi kasar pada sebuah kode, extracting methods juga merupakan salah satu langkah dalam banyak pendekatan yang ada pada teknik refactoring lainnya.

Manfaat menggunakan Extract Method

– Code yang anda buat akan jauh lebih Readable, Pastikan setiap pemberian nama baru pada method adalah mencerminkan apa yang method kerjakan, contohnya adalah ketika kita ingin membuat method yang tugasnya untuk membuat order baru, maka kita buat nama method tersebut menjadi createOrder(), begitu juga dengan yang lain.

– Lebih sedikit terjadi duplikasi code. Seringkali code yang ditemukan dalam suatu method dapat digunakan kembali di tempat lain dalam program anda. Jadi anda dapat mengganti duplikat dengan call ke method baru Anda.

– Mengisolasi bagian-bagian code yang independen, yang berarti bahwa kesalahan akan dapat dimilimalisir (seperti jika variabel yang salah dimodifikasi).

Bagaimana Cara Melakukan Refactoring Dengan Teknik Ini?

1. Buat method baru dan pastikan setiap pemberian nama baru pada method adalah mencerminkan apa yang method kerjakan seperti yang saya singgung diatas.

2. Salin fragment code yang relevan ke method baru Anda. Hapus fragment dari lokasinya yang lama dan letakkan panggilan untuk method baru di sana.
Cari semua variabel yang digunakan dalam fragment code ini. Jika variable tersebut dideklarasikan di dalam fragment dan tidak digunakan di luar, maka cukup biarkan variable tersebut dan jangan ubah-ubah. variable tersebut akan menjadi variabel lokal untuk method baru.

3. Jika variabel dideklarasikan sebelum code yang Anda extract, anda harus mengoper variabel-variabel ini ke parameter di method baru untuk menggunakan nilai yang sebelumnya terdapat di dalamnya. Kadang-kadang lebih mudah untuk menyingkirkan variabel-variabel ini dengan beralih ke Ganti Replace Temp with Query.

4. Jika anda melihat bahwa variabel lokal berubah dalam code yang anda ekstrak dengan cara tertentu, ini mungkin berarti bahwa nilai yang diubah ini nantinya akan diperlukan dalam method utama Anda. Periksa ulang! Dan jika memang demikian halnya, kembalikan nilai variabel ini ke method utama untuk menjaga semuanya berfungsi dengan baik.

Contoh Teknik Refactoring : Extract Method dengan menggunakan bahasa PHP


function printOwing() {
$this->printBanner();

//print details
print("name: " . $this->name);
print("amount " . $this->getOutstanding());
}

pada potongan code diatas memiliki fragment kode yang sebenarnya dapat dikelompokkan bersama. Solusinya adalah pindahkan kode ini ke method baru yang terpisah (atau fungsi) dan ganti code lama dengan melakukan panggilan ke metode yang baru.


function printOwing() {
$this->printBanner();
$this->printDetails($this->getOutstanding());
}

function printDetails ($outstanding) {
print("name: " . $this->name);
print("amount " . $outstanding);
}


Software Developer | Backend Engineer | Contact Me : alfinandika@outlook.com

%d bloggers like this: