Sistem desain adalah proses menciptakan arsitektur dan merancang komponen dan interaksi sistem perangkat lunak.

System design melibatkan pengambilan keputusan tentang struktur, perilaku, dan skalabilitas sistem untuk memenuhi persyaratan tertentu.

Berikut adalah beberapa prinsip desain yang umumnya dipertimbangkan saat merancang sistem perangkat lunak:

 

Separation of Concerns

Prinsip ini menyarankan untuk membagi sistem menjadi modul atau komponen yang berbeda, masing-masing bertanggung jawab atas module atau fungsi tertentu.
Pemisahan ini dapat membantu pengembangan sistem, kemampuan pemeliharaan, dan kemampuan pengujian sistem dengan mengurangi ketergantungan dan memungkinkan perubahan yang lebih mudah pada masing-masing komponen.

 

Single Responsibility Principle (SRP)

SRP menekankan bahwa fungsi atau modul seharusnya memiliki alasan untuk berubah.
Ini menunjukan setiap fungsi atau modul harus memiliki tanggung jawab yang jelas dan terdefinisi dengan baik, mengurangi penggabungan dan membuat sistem lebih fleksibel dan dapat dipelihara.

 

Don’t Repeat Yourself (DRY)

Prinsip DRY mendorong menghindari duplikasi kode dengan mengekstraksi kode yang dapat digunakan kembali ke dalam fungsi, modul, atau librari.
Dengan menghilangkan duplikasi, prinsip DRY meningkatkan kemudahan pemeliharaan, mengurangi kemungkinan bug, dan memudahkan dalam modifikasi fungsi / modul.

 

Scalability and Performance

Prinsip ini adalah merancang skalabilitas dan kinerja dengan pertimbangan  mengantisipasi loading, volume data, dan pertumbuhan sistem di masa mendatang.
Teknik seperti caching, load balancing, horizontal scaling, dan pengoptimalan query databse harus sering digunakan untuk memastikan sistem dapat menangani permintaan yang terus meningkat.

 

Security

Keamanan harus menjadi pertimbangan mendasar selama desain sistem.
Ini melibatkan penggabungan mekanisme untuk melindungi data sensitif, mencegah akses tidak sah, menangani otentikasi dan otorisasi pengguna, dan menjaga dari kerentanan keamanan umum.

 

sumber: berbagai sumber.