Apa yang akan kita pelajari di tutorial ini, dapat diterapkan di setiap jenis kode apapun yang kita tulis. Ada begitu banyak patterns dan principles diluar sana. Ada patterns dan principles yang dibuat khusus untuk bahasa pemrograman tertentu. Ada patterns dan principles yang dibuat khusus untuk framework tertentu. Ada juga patterns dan principles yang dibuat untuk paradigma pemrograman tertentu. Apa hubungannya patterns dan principles dengan gagasan dari penulisan clean code? Apakah kita harus mengikuti semuanya untuk memastikan kita menulis kode yang bersih?

Clean Code vs Patterns Principles

Penting untuk diingat bahwa clean code adalah kode yang dapat dengan mudah untuk dibaca dan dipahami. Itu adalah hal utama yang perlu kita ingat dalam menulis clean code.

Semua patterns dan principles diluar sana berfokus untuk memastikan kode yang kita tulis dapat dikembangkan dan dipelihara. Jadi tentu saja ada hubungannya antara patterns dan principles dengan clean code. Tentunya jika kita mengikuti patterns dan principles yang ada, akan membantu kita dalam menulis clean code.

Disisi lain, jika kita memberikan sebuah nama yang buruk, jika kita menggunakan format yang buruk, jika kita memiliki fungsi yang sangan membingungkan dan berantakan apalagi sulit dibaca, kemudian kita mengikuti semua patterns dan principles yang kita ketahui, belum tentu kita akan memiliki clean code. Karena hal itu lah, tutorial ini berfokus pada apa yang menjadikan clean code. Bukan berfokus kepada semua patterns dan principles yang dapat kita pelajari. Kita hanya akan mempelajari patterns dan principles yang dapat membantu kita dalam menulis clean code. Kita tidak akan belajar patterns dan principles yang tidak penting menurut perspektif clean code.

Clean Code vs Clean Architecture

Ada perbandingan lain yang akan kita bahas, yaitu perbedaan antara clean code dan clean architecture. Kita akan membandingkan clean code dengan clean architecture seperti kita membandingkan clean code dengan patterns dan principles. Tentu saja ada hubungan antara clean code dan clean architecture. Akan tetapi, clean code hanya terbatas tentang menulis kode. Dan sebenarnya, clean code itu memang hanyalah tentang menulis kode.

Clean Architecture adalah tentang bagaimana kita membuat struktur di proyek kita, bagaimana kita memisahkan setiap entitas, bagaimana kita menyimpan data. Pada akhirnya, kita bisa bilang “dimana kita harus menulis kode kita”.

Apakan kita menggunakan dependency injection atau tidak? Itu adalah pertanyaan yang kita tanyakan pada diri kita sendiri ketika perfikir tentang clean architecture. Itu adalah hal berbeda dengan clean code. Clean architecture juga sangan bergantung pada paradigma pemrograman yang kita terapkan, dan bahasa pemrograman yang kita gunakan.

Clean code berfokus kepada sebuah potongan kode, atau sebuah file kode saja. Clean architecture berfokus kepada proyek secara keseluruhan, bagaimana membuat model untuk data kita, dan bagaimana caranya kita melakukan pendistribuan kode. Tutorial ini menawarkan pembelajaran mengenai clean code. Kita tidak akan perfokus kepada hal-hal lain seperti pola repository atau hal yang lainnya, karena hal tersebut tidak ada hubungannya jika dilihat dari perspektif clean code. Sebagai contoh, dari perspektif clean code, tidak penting dimana kita mengakses database. Sedangkan bisa jadi hal tersebut menjadi penting jika dilihat dari perspektif clean architecture. Jika itu adalah hal kamu cari, maka kamu perlu mencari tutorial yang lain. Tutorial ini hanya akan membahas terkait clean code saja.