Automasi Kode Review di Framework Spring Boot dengan Checkstyle dan CI/CD
Dalam mengembangkan applikasi, pastinya teman-teman ingin tetap menjaga kualitas kode bukan ? Ini merupakan salah satu hal penting untuk menjaga konsistensi dalam pembuatan kode, apalagi kalau kita berada dalam sebuah tim yang berskala besar. Nah salah satu alat yang mungkin bisa berguna buat teman teman implementasikan ketika membuat sebuah app menggunakan framework spring boot dan ingin menjaga kualitas kode adalah CheckStyle.
CheckStyle ini merupakan sebuah alat yang nantinya akan menganalisa kode, serta menegakkan aturan standar kode secara otomatis. Ini berguna agar kode tetap bersih, mudah di baca, dan bisa di sesuaikan dengan standar yang akan kita tentukan.
Nah, dalam tulisan ini akan saya bahas bagaimana caranya agar kita bisa mengintegrasikan checkstyle dalam proyek spring boot ya, di mulai dari instalasi, konfigurasi, dan cara penggunaanya. Jadinya kita bisa mempermudah proses review kode serta mencegah masalah teknis dari awal.
Apa itu CheckStyle ?
Mungkin teman-teman masih bingung soal apa sih sebenarnya itu checkstyle ? Nah, checkstyle sendiri merupakan sebuah tools atau alat bantu yang dapat di gunakan untuk mereview kode agar developer dapat mengikuti standar penulisan kode yang telah di tentukan sebelumnya.
Alat ini dapat membatu team developer yang berkolaborasi agar kode yang di buatnya tetap konsisten, bersih dan pastinya mudah di baca. Ada beberapa pelanggaran penulisan kode yang dapat di deteksi oleh alat bantu ini seperti :
- Import yang tidak di gunakan
- Panjang baris yang melebihi batas
- Penamaan variable yang tidak sesuai
Jadi ada baiknya jika kita mengimplementasikan alat bantu ini agar kode kita tetap clean dan mudah di baca dan pastinya tanpa perlu melakukan review manual untuk hal hal kecil yang seharusnya bisa di cek secara otomatis.
Mari kita langsung ke tutorial cara implementasi check style di framework spring boot.
Tools Apa Saja yang di Gunakan
- Spring Boot : Merupakan framework java yang akan kita gunakan dalam proyek.
- Check Style : Code static yang akan menganalisis kodingan yang kita buat.
- Maven : Merupakan build tool yang paling umum di gunakan dengan spring boot.
- Github actions : Keperluan untuk pipeline CI/CD
Buat Project Spring Boot
Pertama tama, pastinya anda harus membuat project spring boot terlebih dahulu. Anda bisa menggunakan website dari spring initializr https://start.spring.io/ untuk membuat struktur dasar dari project spring boot yang akan kita buat.
Setalah anda berhasil buat project nya, silahkan ekstrak file zip menjadi folder dan buka di project tersebut di teks editor tercinta anda hehe. Kalau saya sendiri sih menggunakan Intellij IDEA yaa.
Install Pluggin CheckStyle
Agar check style dapat bekerja di lingkungan spring boot yang akan di bangun, maka wajib untuk menginstall pluggin nya di pom.xml ya. Berikut adalah code konfigurasi agar check style terinstall di spring boot :
Atau anda bisa langsung copy code di atas di link github saya. link github
Saya akan jelaskan sedikit soal konfigurasi yang saya berikan ya :
- <configLocation> : ini akan menunjukan file konfigurasi checkstyle.xml yang akan kita tentukan. ( akan di jelaskan setelah tahap ini )
- <consoleOutput> : ini akan menampilkan semua pelanggaran kode di terminal.
- <violationSeverity> : menentukan tingkat pelanggaran yang di laporkan oleh checkstyle.
Buat File CheckStyle.xml
Jangan lupa untuk membuat file checkstyle.xml dan simpan di root folder project anda ( setara dengan folder src/ ). File ini merupakan file konfigurasi yang akan di gunakan oleh checkstyle untuk menentukan aturan atau gaya penulisan kode yang harus di patuhi.
Untuk isi konfigurasi checkstyle.xml dapat anda ambil di link github saya : di sini
Check style file yang saya gunakan adalah bawaan dari sun/oracle dan berfokus pada struktur kode/gaya penulisan, komentar javadoc, menghindari import *, dan masih ada beberapa aturan yang perlu di ikut didalam konfigurasi tersebut ketika membuat sebuah code.
Berikut contoh output yang gagal ketika saya menjalankan perintah mvn:checkstyle:check di terminal :
Dalam contoh ini, saya telah menyisipkan sebuah file controller bernama HelloApp, yang digunakan sebagai bahan uji coba untuk menjalankan analisis dengan Checkstyle.
Berdasarkan log error yang muncul, terlihat bahwa terdapat import HttpStatus dan ResponseEntity yang tidak digunakan di dalam class HelloApp.java. Akibatnya, saat perintah mvn checkstyle:check dijalankan, Checkstyle akan memberikan peringatan agar import yang tidak digunakan tersebut dihapus untuk menjaga kebersihan dan konsistensi kode.
Setelah saya menghapus import yang tidak digunakan, error tersebut tidak muncul lagi. Namun, saat ini muncul peringatan baru terkait metode yang diinisialisasi tanpa komentar Javadoc. Checkstyle menganggap hal ini sebagai pelanggaran karena aturan MissingJavadocMethod aktif dalam konfigurasi. Oleh karena itu, setiap metode publik sebaiknya disertai komentar Javadoc untuk menjelaskan fungsinya, agar sesuai dengan standar dokumentasi yang diterapkan
Setelah saya memperbaiki seluruh error yang terdeteksi oleh Checkstyle, kini proses mvn checkstyle:check dapat dijalankan dengan sukses tanpa menghasilkan error, seperti yang ditunjukkan pada gambar di bawah ini :
Untuk informasi lebih lengkap mengenai penggunaan dan konfigurasi Checkstyle, Anda dapat merujuk langsung ke dokumentasinya melalui situs resmi berikut: https://checkstyle.org/
Jika Anda ingin mencoba langsung aturan Checkstyle yang telah saya buat, Anda bisa meng-clone repository yang sudah saya siapkan dan melakukan pengujian secara langsung. LinkGithub
Menambahkan File YAML untuk GitHub Actions CI/CD
Setiap kali terjadi push terbaru ke branch main, pipeline CI/CD akan otomatis menjalankan proses pengecekan kode menggunakan Checkstyle. Jika semua aturan terpenuhi dan proses berhasil, Anda akan melihat hasil seperti ini:
Bagaimana jika gagal ? Berikut adalah contoh hasil pipeline CI/CD nya :
Dengan menerapkan Checkstyle dan mengintegrasikannya ke dalam pipeline CI/CD menggunakan GitHub Actions, kita dapat memastikan bahwa standar penulisan kode tetap terjaga secara otomatis di setiap perubahan yang masuk ke branch utama. Langkah ini tidak hanya membantu menjaga kualitas kode, tetapi juga meningkatkan efisiensi tim dalam melakukan review. Semoga panduan ini dapat menjadi awal yang baik untuk membangun proses pengembangan yang lebih disiplin dan terstruktur.
Posting Komentar