Pentingnya Clean Architecture

Clean architecture berbeda dengan clean code, sebuah proyek dikatakan memiliki clean architecture apabila orang lain bisa mudah mengetahui program apa yang sedang dia buat, hanya dari melihat struktur file di folder projectnya, begitu dia melihat isi folder kita, yang dia tahu bukanlah dengan framework apa program kita dibuat, bukan dengan database apa penyimpanan yang kita buat, bukan pula library apa saja yang kita gunakan, tapi yang pertama kali dia tangkap adalah, program apakah itu, apakah aplikasi keuangan, atau sistem manajemen rumah sakit, atau aplikasi gudang, atau yang lainnya. Ibaratkan sketsa arsitektur bangunan, begitu kita melihatnya, kita akan tahu itu adalah arsitektur untuk bangunan sekolah, atau rumah sakit, atau perpustakaan, hanya dari melihat sketsanya saja, dan kita tidak tahu dengan bahan apa bangunan tersebut dibuat, dengan pasir jenis apa, dengan baja ringan atau apa, yang kita tahu, hanyalah fungsi bangunannya.

Sifat-sifat Clean Architecture

1. Tidak tergantung pada framework, library atau metode penyimpanan
Pada saat memulai koding, posisikan lah bahwa framework, library, metode penyimpanan dan yang lainnya hanyalah tool/alat. Sebagaimana pada kehidupan sehari-hari, gunanya alat adalah membantu kita, bukannya kita yang bergantung pada alat, dan alat sifatnya bisa diganti, bukan kitanya yang diganti. Begitu juga pada pemrograman, pastikan kodingan kita tidak bergantung pada tool, dalam kata lain, apabila ingin mengganti framework, maka gantilah skrip penghubungnya(penghubung antara skrip original kita dengan tool-tool luar) saja, dan apabila nanti ingin mengganti metode penyimpanan dari MySQL ke Oracle dan lainnya, maka gantilah skrip penghubungnya saja, bukan sebagian besar apalagi keseluruhan kodingan kita. Tempatkan tool sebagai budak kita, bukan kita yang menjadi budak tool tersebut

2. Tidak menakutkan untuk diedit
Pernahkah Anda berpikiran untuk merapihkan kodingan project Anda, kemudian Anda mulai merapihkannya sedikit demi sedikit dengan cara edit kemudian compile, edit kemudian compile, edit kemudian compile dan seterusnya hingga akhirnya Anda menemukan pesan error, dan di keadaan itu Anda berpikir untuk berhenti merapihkan kodingan karena takut akan merusak keseluruhan project Anda. Dengan Clean Architecture, Anda bisa dengan mudah merubah-rubah suatu kodingan tanpa harus takut akan mempengaruhi keseluruhan project, hal ini karena clean architecture memaksa sang programmer untuk mengkotak-kotakkan tiap-tiap fungsi-fungsi atau fitur-fitur dengan jalur lingkaran kecil dan lingkaran besar, yakni fitur-fitur yang ada di lingkaran kecil, tidak terpengaruh oleh fitur-fitur di lingkaran yang lebih besar, sebaliknya, fitur-fitur yang lebih besar sangat tergantung dan harus mengikuti aturan-aturan yang ditetapkan oleh fitur-fitur yang lebih kecil darinya.

Sebagai contoh, fitur data user, pada fitur ini tidak peduli apakah penyimpanannya akan menggunakan database, file atau session, yang fitur ini tahu hanyalah tugasnya untuk memberikan data-data yang harus disimpan ke lingkaran yang lebih besar darinya yakni fitur basis data, disinilah ditentukan akan disimpan dengan metode apa. Dan apabila nanti akan diganti dari MySQL atau Oracle misalnya, fitur data user tidak perlu dirubah, yang perlu dirubah hanya fitur basis data

Contoh Metode Onion pada Clean Architecture


3. Mudah, portable dan cepat dites
Karena setiap fitur "terkotak-kotak", maka akan dengan mudah mengetes setiap fitur tersebut, misal kita ingin mengetes fitur yang menampilkan profil user, yang datanya diambil dari fitur basis data, maka walaupun program kita belum terkoneksi ke databaase, kita bisa merubah agar fitur basis data ini mengambil data dari hardcode array atau membaca file, sembari menunggu kesiapan database, dan jika di lain waktu nanti terjadi migrasi database (misal dari MySQL ke Oracle) maka yang perlu dirubah hanyalah dari fitur basis data ini. Yang dimaksud portable adalah misal kita membuat aplikasi android menggunakan android studio dengan bahasa JAVA, sebuah fitur disebut portable apabila bisa ditest tanpa membutuhkan android studio, yaitu karena bahasanya JAVA maka bisa ditest dengan JVM, dengan begini programmer tidak bergantung pada versi android studio tertentu atau library tertentu untuk melakukan pengetesan.

Link-link untuk belajar lebih lanjut tentang Clean Architecture

https://phutai.me/wp-content/uploads/2016/10/The-Clean-Architecture-in-PHP-Kristopher-Wilson.pdf

https://github.com/jkphl/clear-architecture

https://github.com/android10/Android-CleanArchitecture

https://medium.com/@dmilicic/a-detailed-guide-on-developing-android-apps-using-the-clean-architecture-pattern-d38d71e94029

https://proandroiddev.com/a-guided-tour-inside-a-clean-architecture-code-base-48bb5cc9fc97

http://lundgren.io/blog/clean-architecture-in-android-example-app/

https://medium.com/style-theory-engineering/android-clean-architecture-using-kotlin-48306644ada7

https://medium.freecodecamp.org/a-quick-introduction-to-clean-architecture-990c014448d2

https://proandroiddev.com/clean-architecture-data-flow-dependency-rule-615ffdd79e29

https://arsetonugroho.web.id/programming/2018/03/28/clean-architecture-konsep.html

Sekian tulisan dari saya, apabila benar datangnya dari Allah SWT, apabila salah maka harap berikan komentar di kolom komentar agar bisa saya perbaiki sesuai saran yang tertera di komentar tersebut

Syukron

Tidak ada komentar:

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.

Diberdayakan oleh Blogger.