Tautan ke artikel di Medium
Lihat artikel untuk mempelajari lebih lanjut tentang konsep dan juga implementasi.
Arsitektur Clean adalah solusi arsitektur perangkat lunak praktis dari Robert C. Martin yang legendaris (alias "Paman Bob"). Dengan menerapkan aturan universal perangkat lunak, Anda dapat secara dramatis meningkatkan produktivitas pengembang sepanjang umur sistem perangkat lunak apa pun.
Mengapa memaksimalkan jumlah keputusan yang tidak dibuat? !! Kami sebagai pengembang tahu dengan bereksperimen bahwa kerangka kerja yang kami pilih di awal proyek (basis data atau kerangka kerja web, dll.) Sulit untuk diganti selama masa pakai proyek dan itu karena kopling yang ketat dan banyak keputusan awal lainnya, salah satu kesalahan umum adalah bahwa kami membangun proyek kami berdasarkan kerangka kerja ini dan kemudian membiarkan logika bisnis akan ditelusuri sekitar. Jawabannya adalah, kita harus membangun arsitektur yang memungkinkan perubahan, ya saya menekankan perubahan. Perubahan komponen rendah dan kerangka kerja tanpa mencapai logika inti dan komponen tingkat tinggi.
Pola ini menekankan bahwa setiap proyek perangkat lunak dibangun hanya dari dua elemen kebijakan dan rinciannya. Kebijakan (komponen tingkat tinggi) adalah inti dari sistem perangkat lunak yang mencakup semua aturan bisnis, semua entitas, dan segala sesuatu yang membuat identitas unik untuk perangkat lunak itu. Seperti entitas pelanggan atau tindakan checkout di platform e-commerce. Detail (komponen tingkat bawah) adalah cara yang dapat berinteraksi dengan manusia dengan aturan bisnis, polanya menyebutkan ini sebagai perangkat IO, basis data, server web, dll. Seperti tombol checkout yang memicu aturan bisnis yang sesuai atau bertahan bahwa entitas pelanggan dalam database atau file atau mekanisme kegigihan apa pun.
Tujuan akhir dari pola ini adalah untuk memisahkan komponen tingkat tinggi dari komponen tingkat rendah dan mencoba untuk membuat mereka bekerja bersama dan membuat kebangkitan tingkat tinggi dari perubahan detail. Biarkan saya membuat seluruh ide ini konkret dalam pikiran Anda dengan beberapa contoh. Bayangkan perangkat lunak yang dibangun di atas basis data relasional seperti MySQL dan menggunakan JS Express sebagai server web kemudian setelah satu tahun pemangku kepentingan memperkenalkan persyaratan dan fitur baru yang tidak konsisten dengan database relasional dan memerlukan database NoSQL. Jika implementasi perangkat lunak mengikuti arsitektur yang baik dengan kopling longgar antara komponen, Anda tidak perlu melakukan revolusi dengan perubahan. Cukup mudah untuk mengganti database atau server web atau detail lain dari perangkat lunak yang sesuai dengan solusi tanpa mempengaruhi aturan bisnis dan komponen tingkat yang lebih tinggi.
Paman Bob menekankan pada prinsip -prinsip padat yang digabungkan dengan pola arsitektur bersih untuk membentuk solusi perangkat lunak yang dapat dibaca, dapat dikelola, dapat diskalakan, dan mudah digunakan.