Your Code Stinks and You Should Refactor it

Pada suatu hari anda mencoba mengimplementasikan sebuah fitur pada proyek anda. Setelah berjam-jam waktu yang anda lalui akhirnya usaha anda berhasil dan fitur tersebut terlihat baik, tidak peduli bagaimana dan dengan cara apa anda membuat bagian per bagian kode bisa berjalan.

Besoknya anda mendapati sebuah bug pada kode yang telah anda rancang kemaren. Anda mencoba untuk memperbaikinya, namun naas…

Hal yang anda temukan adalah kode yang telah anda buat sulit untuk dibaca, atau bahkan tidak bisa dibaca dan dipahami. Akan lebih parah lagi jika kolega sesama pengembang anda yang ditugaskan untuk mengatasi bug tersebut. Jika anda sendiri kesulitan membaca kode anda, maka teman anda bisa saja tidak bisa membacanya sama sekali dan memutuskan untuk membuat ulang dari awal. Tentunya hal ini akan menguras waktu dan biaya yang lebih besar. Untuk mencegahnya, setiap Software Engineer perlu paham tentang refactoring.

Refactoring

Jika anda sudah pernah menerapkan Test Driven Development (TDD), maka istilah refactoring sudah tidak asing lagi bagi anda. Refactoring menjadi langkah ketiga pada siklus TDD.

Ilustrasi Siklus TDD

Pada langkah ini biasanya anda akan mencoba melihat dan memperbaiki kembali kode yang sudah lolos test. Hal-hal yang dapat diimprove bisa saja mencakup code smell, code duplication, atau hal-hal lain yang dapat mengurangi readability dari kode anda. Dari yang sudah dijelaskan di atas tentunya refactoring tidak jauh dari penerapan clean code. Selain itu hal yang baik untuk diterapkan (namun tidak wajib jika tidak terlalu dibutuhkan) adalah Design Pattern. Bahkan, hal-hal kecil seperti memperkecil sebuah fungsi atau memfokuskan sebuah fungsi untuk mengerjakan satu hal kecil saja sudah terbilang refactoring.

Sonarqube

Logo Sonarqube

Salah satu tools yang cukup berguna untuk refactoring adalah Sonarqube. Sonarqube adalah sebuah tools yang menganalisis kode yang telah dirancang. Hal-hal yang dapat dilakukan oleh Sonarqube mencakup deteksi code smells, potensi bug dan vulnerability. Kemudian Sonarqube juga dapat mengetahui code coverage dan code duplications pada kode. Hal yang tidak dapat dideteksi oleh Sonarqube adalah Design Pattern yang diterapkan.

Contoh Summary dari Sonarqube

Design Pattern

Ringkasnya, design pattern adalah solusi dari problem general yang sering muncul. Design Pattern biasanya diterapkan pada bahasa pemrograman yang mendukung paradigma pemrograman berbasis obyek (PBO/OOP) seperti Java ataupun C#, namun tidak menutup kemungkinan untuk diterapkan pada bahasa pemrograman yang tidak/kurang menerapkan paradigma OOP. Selama digunakan secara wajar dan tidak dipaksakan, design pattern akan meningkatkan readability dari kode.

Kesimpulan

Refactoring terbilang menguntungkan, tidak hanya untuk diri sendiri, namun juga tim yang bekerja dengan anda dan bahkan orang-orang di masa depan yang akan melanjutkan pekerjaan anda. Dengan refactoring maka clean code akan tercapai, yang dapat meningkatkan performa kerja tim.

Sekian artikel ini saya tulis. Semoga membantu.

Referensi

--

--

Not a Writer :)

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store