นั่นเป็นข้อผิดพลาดของรูปแบบ DDD หรือไม่?
ก่อนอื่นให้ฉันลบความเข้าใจผิดบางประการ
DDD ไม่ใช่รูปแบบ และมันไม่ได้กำหนดรูปแบบจริงๆ
คำนำหน้าสถานะหนังสือDDD ของ Eric Evan :
นักออกแบบซอฟต์แวร์ชั้นนำยอมรับการสร้างแบบจำลองโดเมนและการออกแบบเป็นหัวข้อสำคัญเป็นเวลาอย่างน้อย 20 ปี แต่มีการเขียนเพียงเล็กน้อยเกี่ยวกับสิ่งที่ต้องทำหรือวิธีการทำ แม้ว่าจะไม่เคยมีสูตรชัดเจน แต่ปรัชญาก็กลายเป็นกระแสในชุมชนวัตถุ แต่ปรัชญาที่ฉันเรียกว่าการออกแบบที่ขับเคลื่อนด้วยโดเมน
[ ... ]
คุณลักษณะทั่วไปที่นำไปสู่ความสำเร็จคือโมเดลโดเมนที่มีการพัฒนาผ่านการทำซ้ำการออกแบบและกลายเป็นส่วนหนึ่งของโครงสร้างของโครงการ
หนังสือเล่มนี้มีกรอบสำหรับการตัดสินใจในการออกแบบและคำศัพท์ทางเทคนิคเพื่อพูดคุยเกี่ยวกับการออกแบบโดเมน มันเป็นการสังเคราะห์แนวปฏิบัติที่ดีที่สุดที่เป็นที่ยอมรับอย่างกว้างขวางพร้อมกับข้อมูลเชิงลึกและประสบการณ์ของฉันเอง
ดังนั้นจึงเป็นวิธีการเข้าถึงการพัฒนาซอฟต์แวร์และการสร้างแบบจำลองโดเมนรวมถึงคำศัพท์ทางเทคนิคบางอย่างที่สนับสนุนกิจกรรมเหล่านั้น (คำศัพท์ที่มีแนวคิดและรูปแบบที่หลากหลาย) มันไม่ใช่สิ่งใหม่อย่างสมบูรณ์
โปรดทราบอีกอย่างหนึ่งคือโมเดลโดเมนไม่ใช่การนำ OO ไปใช้ซึ่งสามารถพบได้ในระบบของคุณนั่นเป็นเพียงวิธีหนึ่งในการแสดงหรือเพื่อแสดงบางส่วนของมัน รูปแบบโดเมนคือวิธีที่คุณคิดเกี่ยวกับปัญหาที่คุณพยายามแก้ไขด้วยซอฟต์แวร์ มันเป็นวิธีที่คุณเข้าใจและรับรู้สิ่งต่าง ๆ คุณพูดถึงมันอย่างไร มันเป็นความคิด แต่ไม่ใช่ในความหมายที่คลุมเครือ มันลึกซึ้งและละเอียดอ่อนและเป็นผลมาจากการทำงานอย่างหนักและการรวบรวมความรู้ มีการปรับปรุงเพิ่มเติมและมีแนวโน้มที่จะพัฒนาไปตามกาลเวลาและเกี่ยวข้องกับการพิจารณาการนำไปปฏิบัติ (บางอันอาจ จำกัด โมเดลไว้) ควรมีการแบ่งปันให้กับสมาชิกทุกคนในทีม (และผู้เชี่ยวชาญด้านโดเมนที่เกี่ยวข้อง) และควรผลักดันวิธีที่คุณใช้งานระบบเพื่อให้ระบบสะท้อนให้เห็นอย่างใกล้ชิด
ไม่มีอะไรเกี่ยวกับสิ่งนั้นที่เป็น pro-or anti-SQL โดยเนื้อแท้แม้ว่าผู้พัฒนา OO อาจจะดีกว่าในการแสดงแบบจำลองในภาษา OO และการแสดงออกของแนวคิดโดเมนจำนวนมากได้รับการสนับสนุนที่ดีกว่าโดย OOP แต่บางครั้งบางส่วนของแบบจำลองจะต้องแสดงในกระบวนทัศน์ที่แตกต่างกัน
สิ่งที่ฉันสงสัยคือจะเกิดอะไรขึ้นเมื่อฉันมีข้อความค้นหาที่ซับซ้อนมาก [... ]?
โดยทั่วไปการพูดมีสองสถานการณ์ที่นี่
ในกรณีแรกบางแง่มุมของโดเมนต้องการการสืบค้นที่ซับซ้อนจริง ๆ และบางทีการแสดงผลที่ดีที่สุดในกระบวนทัศน์ SQL / เชิงสัมพันธ์ - ดังนั้นควรใช้เครื่องมือที่เหมาะสมสำหรับงาน สะท้อนมุมมองเหล่านั้นในการคิดโดเมนของคุณและภาษาที่ใช้ในการสื่อสารแนวคิด หากโดเมนมีความซับซ้อนอาจเป็นส่วนหนึ่งของโดเมนย่อยที่มีบริบทแบบ จำกัด
อีกสถานการณ์หนึ่งคือความต้องการที่รับรู้ในการแสดงออกบางอย่างใน SQL เป็นผลมาจากการคิดที่ จำกัด หากบุคคลหรือทีมมีฐานข้อมูลที่มุ่งเน้นในการคิดอยู่เสมออาจเป็นเรื่องยากสำหรับพวกเขาเนื่องจากความเฉื่อยที่จะเห็นวิธีการที่แตกต่างของการเข้าใกล้สิ่งต่างๆ สิ่งนี้กลายเป็นปัญหาเมื่อวิธีเดิมล้มเหลวในการตอบสนองความต้องการใหม่และต้องใช้ความคิดนอกกรอบ DDD ซึ่งเป็นแนวทางในการออกแบบนั้นเป็นส่วนหนึ่งเกี่ยวกับวิธีค้นหาทางออกของคุณโดยการรวบรวมและกลั่นความรู้เกี่ยวกับโดเมน แต่ดูเหมือนว่าทุกคนจะไม่สนใจส่วนนั้นของหนังสือและมุ่งเน้นไปที่คำศัพท์ทางเทคนิคและรูปแบบที่ปรากฏ