domain driven design

domain driven design

Domain-driven design adalah sebuah konsep dalam arsitektur perangkat lunak yang berfokus pada beberapa tujuan penting, seperti: menempatkan fokus utama pada inti domain dan logika domain, merancang desain kompleks berdasarkan model domain, memulai kolaborasi antara ahli teknis dan domain untuk secara iteratif merancang model konseptual, dan lain sebagainya. DDD merupakan pendekatan desain berbasis model yang bertujuan untuk menangkap logika bisnis yang kompleks dan menyatukan kesenjangan antara realitas bisnis dan kode. DDD adalah seperangkat aturan yang memungkinkan pengembang untuk membuat keputusan desain yang tepat dalam menciptakan sistem objek yang optimal di domain yang tidak familier. Dalam DDD, kita belajar menggunakan model domain, logika bisnis, dan poin kunci untuk merancang aplikasi perangkat lunak dalam domain yang tidak dikenal. DDD adalah pendekatan pengembangan perangkat lunak yang mengarahkan pengembangan pada memprogram model domain yang memiliki pemahaman yang kaya tentang proses dan aturan domain. Nama DDD sendiri diambil dari buku tahun 2003 karya Eric Evans yang menggambarkan pendekatan DDD melalui katalog pola. Selain itu, DDD juga merupakan metodologi dan resep proses untuk pengembangan sistem kompleks yang berfokus pada pemetaan aktivitas, tugas, acara, dan data dalam domain permasalahan ke dalam artefak teknologi dalam domain solusi. Dalam pengembangan arsitektur mikroserbis dengan DDD, terdapat suatu pola sentral bernama Bounded Context yang berfungsi untuk berurusan dengan model yang besar dan tim. DDD melakukan pembagian model menjadi beberapa Bounded Contexts dan menjelaskan secara eksplisit mengenai hubungan di antara mereka. Prinsip DDD juga sangat penting dalam arsitektur SOA, karena membantu dalam mengenkapsulasi logika dan aturan bisnis dalam objek domain. Bagi perusahaan, business goal juga sangat penting bagi pengguna bisnis dengan antarmuka dan fungsi yang jelas dan terdefinisi dengan baik.