Dapatkah seseorang tolong jelaskan (secara ringkas) apa sebenarnya desain yang digerakkan oleh domain? Saya melihat istilah ini cukup banyak tetapi benar-benar tidak mengerti apa itu atau apa yang terlihat. Apa bedanya dengan desain yang digerakkan bukan domain?
Juga, dapatkah seseorang menjelaskan apa Objek Domain itu? Apa perbedaan domain dari objek normal?
domain-driven-design
Calanus
sumber
sumber
Jawaban:
EDIT:
Karena ini tampaknya merupakan hasil teratas di Google dan jawaban saya di bawah ini tidak, silakan lihat jawaban yang jauh lebih baik ini:
https://stackoverflow.com/a/1222488/1240557
JAWABAN LAMA (tidak begitu lengkap :))
Dari: Desain Didorong Domain oleh Eric Evans.
Buku ini cukup baik dalam menggambarkan DDD.
Daftar untuk mengunduh ringkasan buku , atau mengunduh ringkasan secara langsung .
sumber
Domain Driven Design adalah metodologi dan resep proses untuk pengembangan sistem yang kompleks yang fokusnya adalah memetakan kegiatan, tugas, peristiwa, dan data dalam domain masalah ke dalam artefak teknologi dari domain solusi.
Penekanan dari Domain Driven Design adalah untuk memahami domain masalah untuk membuat model abstrak dari domain masalah yang kemudian dapat diimplementasikan dalam serangkaian teknologi tertentu. Desain Domain Driven sebagai metodologi memberikan pedoman untuk bagaimana pengembangan model ini dan pengembangan teknologi dapat menghasilkan sistem yang memenuhi kebutuhan orang-orang yang menggunakannya sementara juga kuat dalam menghadapi perubahan dalam domain masalah.
Sisi proses Desain Domain Driven melibatkan kolaborasi antara pakar domain, orang yang tahu domain masalah, dan pakar desain / arsitektur, orang yang tahu solusi domain. Idenya adalah untuk memiliki model bersama dengan bahasa bersama sehingga ketika orang-orang dari dua domain berbeda ini dengan dua perspektif berbeda mendiskusikan solusi, mereka sebenarnya mendiskusikan basis pengetahuan bersama dengan konsep bersama.
Kurangnya pemahaman domain masalah bersama antara orang-orang yang membutuhkan sistem tertentu dan orang-orang yang merancang dan menerapkan sistem tampaknya menjadi penghalang inti untuk proyek-proyek yang sukses. Desain Berbasis Domain adalah metodologi untuk mengatasi hambatan ini.
Ini lebih dari sekedar memiliki model objek. Fokusnya adalah tentang komunikasi bersama dan peningkatan kolaborasi sehingga kebutuhan aktual dalam domain masalah dapat ditemukan dan solusi yang tepat dibuat untuk memenuhi kebutuhan tersebut.
Desain yang Didorong oleh Domain: Yang Baik dan Menantang memberikan tinjauan singkat dengan komentar ini:
Juga lihat artikel ini Desain Didorong Domain untuk Arsitektur Layanan yang memberikan contoh singkat. Artikel ini menyediakan uraian thumbnail Desain Domain Driven berikut.
Martin Fowler telah menulis sejumlah artikel di mana Desain Domain Driven sebagai metodologi disebutkan. Misalnya artikel ini, BoundedContext , memberikan tinjauan umum tentang konsep konteks terbatas dari Pengembangan Berbasis Domain.
sumber
Anda HANYA BISA memahami desain yang digerakkan oleh Domain dengan terlebih dahulu memahami apa yang berikut ini:
Diambil dari sini
sumber
Berikut ini adalah artikel bagus lainnya yang dapat Anda periksa di Domain Driven Design . jika aplikasi Anda adalah sesuatu yang serius daripada tugas kuliah. Premis dasarnya adalah struktur segala sesuatu di sekitar entitas Anda dan memiliki model domain yang kuat. Bedakan antara layanan yang menyediakan hal-hal terkait infrastruktur (seperti mengirim email, data tetap) dan layanan yang benar-benar melakukan hal-hal yang merupakan persyaratan bisnis inti Anda.
Semoga itu bisa membantu.
sumber
Seperti dalam TDD & BDD Anda / tim paling fokus pada pengujian dan perilaku sistem daripada implementasi kode.
Mirip dengan cara ketika analis sistem, pemilik produk, tim pengembangan dan tentu saja kode - entitas / kelas, variabel, fungsi, proses antarmuka pengguna berkomunikasi menggunakan bahasa yang sama, yang disebut Domain Driven Design
DDD adalah proses berpikir. Saat memodelkan desain perangkat lunak, Anda perlu mempertahankan domain / proses bisnis di pusat perhatian daripada struktur data, aliran data, teknologi, dependensi internal dan eksternal.
Ada banyak pendekatan untuk memodelkan systerm menggunakan DDD
Objek domain:
Dengan kata-kata yang sangat naif, sebuah objek yang
sumber
DDD (desain berbasis domain) adalah konsep yang berguna untuk menganalisis persyaratan proyek dan menangani kompleksitas persyaratan ini. Sebelum itu orang menganalisis persyaratan ini dengan mempertimbangkan hubungan antara kelas dan tabel dan sebenarnya desain mereka didasarkan pada tabel basis data hubungan itu tidak lama tetapi memiliki beberapa masalah:
Dalam proyek-proyek besar dengan persyaratan yang kompleks, itu tidak berguna walaupun ini adalah cara desain yang bagus untuk proyek-proyek kecil.
Ketika Anda berhadapan dengan tidak ada orang teknis yang mereka tidak punya konsep teknis, konflik ini dapat menyebabkan beberapa masalah besar dalam proyek kami.
Jadi DDD menangani masalah pertama dengan mempertimbangkan proyek utama sebagai Domain dan membagi setiap bagian dari proyek ini menjadi potongan-potongan kecil yang kami terkenal dengan Bounded Context dan masing-masing tidak memiliki pengaruh pada bagian lainnya. Dan masalah kedua telah diselesaikan dengan bahasa di mana-mana yang merupakan bahasa umum antara anggota tim teknis dan pemilik Produk yang tidak teknis tetapi memiliki pengetahuan yang cukup tentang persyaratan mereka
Secara umum definisi sederhana untuk Domain adalah proyek utama yang menghasilkan uang bagi pemilik dan tim lain.
sumber
Saya percaya pdf berikut akan memberi Anda gambaran yang lebih besar. Desain Didorong Domain oleh Eric Evans
CATATAN: Pikirkan proyek yang dapat Anda kerjakan, terapkan hal-hal kecil yang Anda pahami dan lihat praktik terbaik. Ini akan membantu Anda mengembangkan kemampuan Anda terhadap pendekatan desain arsitektur layanan mikro juga.
sumber
Saya tidak ingin mengulangi jawaban orang lain, jadi, singkatnya saya menjelaskan beberapa kesalahpahaman yang umum
Anda harus menghindari menggunakannya di seluruh proyek Anda
Pada dasarnya, itu karena terlalu banyak waktu dan usaha. Jadi, disarankan untuk memecah seluruh domain menjadi subdomain dan hanya menerapkannya pada mereka yang memiliki nilai bisnis tinggi. (mis. tidak dalam subdomain umum seperti email, ...)
Ini bukan pemrograman berorientasi objek. Sebagian besar pendekatan pemecahan masalah dan ( kadang-kadang ) Anda tidak perlu menggunakan pola OO (seperti Gang of Four) dalam model domain Anda. Hanya karena tidak dapat dipahami oleh Pakar Bisnis (mereka tidak tahu banyak tentang Pabrik, Dekorator, ...). Bahkan ada beberapa pola dalam DDD (seperti The Transaction Script, Table Module) yang tidak 100% sejalan dengan konsep OO.
sumber