การออกแบบการขับเคลื่อนด้วยโดเมนเป็นวิธีการและขั้นตอนการสั่งซื้อเพื่อการพัฒนาระบบที่ซับซ้อนซึ่งมุ่งเน้นคือการทำแผนที่กิจกรรมงานกิจกรรมและข้อมูลภายในโดเมนปัญหาไปยังสิ่งประดิษฐ์ทางเทคโนโลยีของโดเมนโซลูชัน
ความสำคัญของการออกแบบโดเมนขับเคลื่อนคือการเข้าใจโดเมนปัญหาเพื่อสร้างแบบจำลองนามธรรมของโดเมนปัญหาซึ่งสามารถนำไปใช้ในชุดของเทคโนโลยี การออกแบบโดเมนขับเคลื่อนเป็นวิธีการให้แนวทางสำหรับวิธีการพัฒนารูปแบบและการพัฒนาเทคโนโลยีนี้จะส่งผลให้ระบบที่ตอบสนองความต้องการของผู้ใช้งานในขณะที่ยังมีความแข็งแกร่งในการเผชิญกับการเปลี่ยนแปลงในโดเมนปัญหา
ด้านกระบวนการของการออกแบบการขับเคลื่อนด้วยโดเมนเกี่ยวข้องกับการทำงานร่วมกันระหว่างผู้เชี่ยวชาญด้านโดเมนผู้ที่รู้โดเมนปัญหาและผู้เชี่ยวชาญด้านการออกแบบ / สถาปัตยกรรมผู้ที่รู้จักโดเมนโซลูชัน แนวคิดคือการมีรูปแบบที่ใช้ร่วมกันกับภาษาที่ใช้ร่วมกันเพื่อให้ผู้คนจากทั้งสองโดเมนที่แตกต่างกันที่มีมุมมองที่แตกต่างกันทั้งสองของพวกเขาหารือเกี่ยวกับวิธีแก้ปัญหา
การขาดความเข้าใจโดเมนปัญหาร่วมกันระหว่างผู้ที่ต้องการระบบเฉพาะและผู้ที่กำลังออกแบบและใช้ระบบดูเหมือนจะเป็นอุปสรรคสำคัญต่อโครงการที่ประสบความสำเร็จ การออกแบบการขับเคลื่อนด้วยโดเมนเป็นวิธีการในการจัดการกับปัญหานี้
มันเป็นมากกว่าการมีโมเดลวัตถุ การมุ่งเน้นนั้นเกี่ยวกับการสื่อสารที่ใช้ร่วมกันและการปรับปรุงการทำงานร่วมกันเพื่อให้ความต้องการที่แท้จริงภายในโดเมนปัญหาสามารถค้นพบและโซลูชั่นที่เหมาะสมที่สร้างขึ้นเพื่อตอบสนองความต้องการเหล่านั้น
การออกแบบที่ขับเคลื่อนด้วยโดเมน: ข้อดีและข้อเสียให้ภาพรวมโดยย่อพร้อมกับความคิดเห็นนี้:
DDD ช่วยค้นพบสถาปัตยกรรมระดับบนสุดและแจ้งเกี่ยวกับกลไกและการเปลี่ยนแปลงของโดเมนที่ซอฟต์แวร์ต้องการทำซ้ำ เป็นที่เข้าใจกันว่าการวิเคราะห์ DDD ที่ทำได้ดีช่วยลดความเข้าใจผิดระหว่างผู้เชี่ยวชาญด้านโดเมนและสถาปนิกซอฟต์แวร์และลดจำนวนคำขอราคาแพงสำหรับการเปลี่ยนแปลงในภายหลัง ด้วยการแบ่งความซับซ้อนของโดเมนในบริบทที่เล็กลง DDD หลีกเลี่ยงการบังคับให้สถาปนิกโครงการออกแบบโมเดลวัตถุป่องซึ่งเป็นที่ที่เสียเวลามากในการหารายละเอียดของการใช้งาน - ส่วนหนึ่งเป็นเพราะจำนวนหน่วยงานที่เกี่ยวข้องกับการเติบโตมักจะเกิน ขนาดของบอร์ดสีขาวในห้องประชุม
ดูบทความนี้การออกแบบโดเมนขับเคลื่อนสำหรับสถาปัตยกรรมบริการซึ่งมีตัวอย่างสั้น ๆ บทความแสดงคำอธิบายรูปขนาดย่อต่อไปนี้ของการออกแบบการขับเคลื่อนโดเมน
การออกแบบโดเมนขับเคลื่อนสนับสนุนการสร้างแบบจำลองบนพื้นฐานของความเป็นจริงของธุรกิจที่เกี่ยวข้องกับกรณีการใช้งานของเรา เนื่องจากตอนนี้อายุมากขึ้นและลดระดับลงมากพวกเราหลายคนลืมว่าแนวทาง DDD ช่วยในการทำความเข้าใจปัญหาที่เกิดขึ้นจริงและออกแบบซอฟต์แวร์ไปสู่ความเข้าใจร่วมกันของโซลูชัน เมื่อสร้างแอปพลิเคชัน DDD จะพูดถึงปัญหาเป็นโดเมนและโดเมนย่อย มันอธิบายขั้นตอน / พื้นที่อิสระของปัญหาตามบริบทที่ถูกล้อมรอบเน้นภาษาทั่วไปเพื่อพูดคุยเกี่ยวกับปัญหาเหล่านี้และเพิ่มแนวคิดทางเทคนิคมากมายเช่นเอนทิตีวัตถุตามตัวอักษรและกฎรากรวมเพื่อสนับสนุนการดำเนินงาน
มาร์ตินฟาวเลอร์ได้เขียนบทความจำนวนหนึ่งซึ่งกล่าวถึงการออกแบบโดเมนที่ขับเคลื่อนด้วยวิธีการ ตัวอย่างเช่นบทความนี้BoundedContextให้ภาพรวมของแนวคิดบริบทที่ถูกผูกไว้จากการพัฒนาไดรฟ์โดเมน
ในวันที่น้อยกว่านี้เราได้รับคำแนะนำให้สร้างแบบรวมของธุรกิจทั้งหมด แต่ DDD ตระหนักดีว่าเราได้เรียนรู้ว่า "การผนวกรวมของแบบจำลองโดเมนสำหรับระบบขนาดใหญ่จะไม่เป็นไปได้หรือคุ้มค่า" [ 1 ] ดังนั้น DDD จึงแบ่งระบบขนาดใหญ่ออกเป็นบริบทที่ถูกผูกไว้ซึ่งแต่ละอันสามารถมีโมเดลแบบรวมเป็นหลักซึ่งเป็นวิธีหนึ่งในการสร้าง MultipleCanonicalModels