So Klin Code

Adib yusril Wafi
sinadin
Published in
4 min readApr 15, 2019

Dalam penulisan sebuah kode program, kita tidak boleh hanya mengutamakan aspek fungsionalitasnya saja, melainkan juga harus memperhatikan aspek readability dari kode tersebut.

Sebuah kode yang memiliki aspek readability yang baik sering kita sebut dengan clean code. Ada beberapa keuntungan yang bisa dicapai dengan menerapkan clean code, di antaranya sebagai berikut :

  • Mempercepat proses development secara signifikan, terutama ketika proses tersebut dijalankan oleh tim development yang tidak sama karena mereka lebih mudah memahami kode yang dikerjakan oleh tim development sebelumnya.
  • Memudahkan proses debugging. Karena kode tersebut mudah dipahami, proses debugging pun akan menjadi lebih mudah.

Things to Remember

Ada beberapa hal yang harus dilakukan untuk menerapkan prinsip clean code, di antaranya sebagai berikut :

  1. Penamaan variable dan function yang jelas.

Penamaan variable dan function yang dilakukan harus sesuai dengan isi dan tujuan dari variable dan function tersebut. Function biasanya menggunakan nama berbentuk kata kerja dan variable menggunakan kata benda. Penamaan yang bagus dapat memudahkan kita dalam memahami kode dengan cepat.

2. Pengkodean Error dan Exception Handling.

Antipasi diperlukan untuk handling error sehingga aplikasi tidak rusak saat runtime.

3. D.R.Y

Penulisan kode yang berulang-ulang sangat tidak efektif dan hanya akan membuat aplikasi berjalan lama.

4. Layout Formatting.

Penulisan kode yang rapih akan enak dipandang, karena penulisan yang berantakan akan membuat developer lain pusing saat melihat kode kita.

REFACTORING

TDD Cycle

Refactoring adalah proses menata ulang struktur kode yang telah kita buat. Dalam proses TDD, tujuan pertama kali kita menulis sebuah kode adalah agar kode yang kita buat dapat lulus dalam semua tests (GREEN). Karena tujuan inilah biasanya kita menulis kode dalam struktur yang buruk dan tidak mengikuti best practice yang ada. Oleh karena itu, dilakukanlah refactoring.

Refactoring berguna agar kode yang kita buat lebih maintainable dan lebih optimal. Disinilah tests yang telah kita buat akan menjadi sangat berguna. Ketika kita melakukan refactoring, kita tidak perlu khawatir akan merusak fungsionalitas dari code yang sudah kita tulis. Berikut salah satu refactoring yang telah saya lakukan.

  • Before Refactoring.

Pada proses awal penambahan super_nip pada tabel users saya hanya mengganti migration tabel users saja. Hal ini tidak baik dilakukan karena dapat menyebabkan konflik pada pekerjaan teman saya yang lain.

super_nip still masih di migration tabel users
  • After Refactoring.

Saya melakukan refactoring dengan cara membuat sebuah migration baru yang akan menambahkan kolom super_nip pada tabel users. Sehingga tidak akan terjadi konflik pada migration tabel users pada branch yang lain.

super_nip berada di migration baru.

Design Pattern

  • Factory Pattern.

menyediakan interface yang dapat digunakan untuk membuat objek tanpa harus menspesifikasikan concrete class nya.

Using View Factory
View Factory
  • Facade Pattern.

Sebuah kelas yang membungkus kelas lain yang lebih kompleks agar memudahkan penggunaan kelas lain tersebut.

Facade Class for Storage
Using the Storage Facade Class
  • Model-View-Controller Pattern.

pattern ini lebih bersifat architectural, penggunaannya sendiri merupakan dasar dari framework laravel. Dimana terdapat Models sebagai pengatur relasional database, Controllers yang menghandle input dari user dan fungsi-fungsi yang digunakan aplikasi, serta Views yang menjadi jembatan antara user dengan aplikasi berupa sebuah User Interface.

Models
Controllers
Views

--

--