Bagaimana Konsep Clean Code pada SAP ABAP?

Aditya Aufar
4 min readOct 25, 2022

--

Source: https://www.itech-progress.com/en/clean-code/

Pendahuluan

Dahulu sejak awal kita belajar pemograman, kita tahu bahwa kode program, apapun bahasa pemogramannya adalah cara kita sebagai manusia berkomunikasi dengan komputer baik secara langsung dan tidak langsung. Mulai dari bahasa pemograman yang primitif yang cenderung lebih dekat ke bahasa komputer, ke bahasa pemograman yang modern sedikit banyak kita sebagai manusia bisa memahami karena sintaks dan command-nya masih mengandung bahasa manusia.

Namun, seiring berjalannya waktu dan saat kita semakin mahir pada bahasa pemograman tertentu, produk perangkat lunak yang kita kembangkan tentunya semakin kompleks sehingga tidak menutup kemungkinan adanya kolaborasi dan kerjasama antar pengembang perangkat lunak. Arah komunikasi tidak lagi antar manusia ke komputer, namun perlu adanya tambahan interaksi dari manusia ke manusia lain sebelum akhirnya kembali ke komputer untuk pengembagan lebih lanjut.

Saat itulah dokumentasi diperlukan. Agar satu manusia dengan manusia lain mempunyai persepsi yang sama akan kode yang disusun pada suatu perangkat lunak dan dapat lebih cepat memahami bagaimana kode bekerja agar tercapainya tujuan perangkat lunak tersebut. Ya memang tidak bisa dipungkiri, semakin tinggi jam terbang tentunya berdampak pada semakin cepat seorang pengembang perangkat lunak memahami kode program tanpa mendapat petunjuk dari manapun. Namun dengan adanya dokumentasi, waktu yang diperlukan untuk memahami code base tentunya dapat lebih cepat (dengan catatan dokumentasi disusun dengan baik) dan mempunyai dampak yang positif dalam hal kolaborasi. Hal ini dikarenakan pengembang perangkat lunak dari berbagai level dapat masuk dari pintu yang sama untuk memahami code base tersebut. Intinya, dokumentasi seperti guide book atau manual book yang biasa disediakan ketika kalian membeli lemari di IKEA.

Dalam jangka panjang, hal ini dapat mempercepat proses pengembangan perangkat lunak secara keseluruhan karena dapat lebih cepat memahami code base dari satu manusia ke manusia lain. Jika seorang pengembang perangkat lunak dapat lebih cepat memahami code base, maka lebih cepat pula ia dapat melanjutkan pengembangan perangkat lunak tersebut yang menandakan efektifnya kolaborasi.

Konsep Clean Code

Selain dokumentasi, metode lain yang juga dapat mempercepat proses “pindah-tangan” kode antar pengembang perangkat lunak adalah konsep Clean Code. Berbeda dengan dokumentasi yang biasanya tertuang dalam bentuk dokumen terpisah yang isinya seperti instruksi dan petunjuk, Clean Code adalah metode yang tertuang pada kode program itu sendiri.

Sebagaimana pepatah

“Ada banyak jalan menuju Roma”

Begitu pula dengan code base untuk memecahkan masalah tertentu di suatu pengembangan perangkat lunak. Selain itu, dengan kekayaan sintaks di bahasa pemograman tertentu, tentunya setiap pengembang perangkat lunak mempunyai gayanya masing-masing. Untuk memecahkan suatu masalah, jumlah baris kode dari satu orang, bisa jauh berbeda dengan orang lainnya. Oleh karena itu optimasi kode tersebut berbeda-beda pula.

Konsep Clean Code mencoba menstandarisasi hal ini. Clean Code menyatukan berbagai macam gaya kode ke dalam satu gaya yang dianggap optimal dari segi readibility antar pengembang perangkat lunak dan dari segi performance dari kode tersebut. Tentunya hal ini tidak bisa disepakati 100% oleh seluruh pengembang perangkat lunak dikarenakan persepsi dan situasi code base yang berbeda-beda. Belum lagi skenario yang beragam yang dihadapi perangkat lunak tersebut. Namun langkah ini paling tidak adalah langkah yang signifikan dalam mengefesiensikan suatu proses pengembangan perangkat lunak.

Konsep ini dipopulerkan oleh Robert C. Martin, dalam bukunya Clean Code: A Handbook of Agile Software Craftsmanship

Sumber: https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882

Namun secara detil, tentunya setiap bahasa pemograman mempunyai konsep Clean Code nya tersendiri karena konsep penerapannya yang mencapai hingga ke level sintaks kode.

Konsep Clean Code pada SAP ABAP

Penerapan Clean Code pada SAP ABAP sudah terdokumentasi di link Github ini https://github.com/SAP/styleguides/blob/main/clean-abap/CleanABAP.md dan dapat diakses dengan berbagai bahasa lain selain bahasa Inggris, yaitu bahasa Jepang, Bahasa Perancis, Bahasa Belanda, Bahasa Spanyol, dan Bahasa Korea. Beberapa versi bahasa lain tersebut tidak lain adalah hasil dari kontribusi pengembang perangkat lunak SAP ABAP di seluruh belahan dunia. Hal inilah yang menjadi keuntungan disimpannya dokumentasi di platform Open Source Github. Peluang kontribusi masih terbuka lebar pagi pengembang perangkat lunak SAP ABAP Indonesia dikarenakan belum adanya versi dokumentasi Clean ABAP dalam bahasa Indonesia.

Selain itu, demi versi Clean ABAP yang lebih baik, kita dapat berkontribusi ke dalam hal lain contohnya memberikan cara pandang kita akan konsep Clean ABAP yang kita anggap bisa diperbaiki dengan cara berdiskusi di bagian Issues.

Selain repositori Github, Clean Code pada SAP ABAP juga tertuang dalam bentuk buku Clean ABAP: A Styleguide for Developers oleh Klaus Haeuptle

Sumber: https://www.amazon.com/Clean-ABAP-Style-Guide-Developers/dp/1493220268

Artikel lain dari penulis buku di atas tentang konsep Clean ABAP juga dapat dilihat di link ini https://blogs.sap.com/2021/03/17/why-clean-abap-a-foundation-for-improvements/

Selain itu, artikel saya yang lain juga sempat menerapkan beberapa aspek Clean ABAP ini. Artikel tersebut dapat di lihat di sini https://adityaaufar.medium.com/mvc-design-pattern-clean-abap-f2ee3527c963

Kesimpulan

Pada awal kita belajar bahasa pemograman, kita hanya fokus kepada output program tersebut bagaimanapun caranya. Bentuk kode program bukanlah hal yang prioritas bagi kita saat itu. Tapi seiring berkembangnya kita dan semakin mahirnya kita, hal berikutnya yang perlu kita pertimbangkan adalah bagaimana kita dapat mengoptimasi program tersebut baik secara performance maupun keefesienan dan kerapihan kode agar tidak hanya bisa dibaca oleh komputer, melainkan oleh manusia lain juga. Hal ini dapat membuat kolaborasi efesien sehingga berdampak pada pengembangan perangkat lunak lebih cepat secara keseluruhan. Sebagaimana quote berikut:

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler

Semoga artikel ini bermanfaat.

--

--