เนื่องจากความก้าวหน้าทางเทคโนโลยีสารสนเทศและซอฟต์แวร์ใหม่ได้รับการพัฒนา บริษัทต่างๆ กำลังมองหาวิธีต่างๆ มากขึ้นเรื่อยๆ ในการสร้างแอปพลิเคชันและระบบที่ปลอดภัยอย่างรวดเร็วซึ่งครอบคลุมทุกเงื่อนไขและทดสอบและพัฒนาได้ง่าย ผ่านการลองผิดลองถูก องค์กรจำนวนมากมองว่าเป็นวิธีที่เหมาะที่สุดในการสร้างซอฟต์แวร์
มันเกี่ยวกับการออกแบบที่ขับเคลื่อนด้วยโดเมน แนวทางการพัฒนาซอฟต์แวร์ในบริษัทนี้เป็นอย่างไรกันแน่?
Domain Driven Design (ชื่อย่อ DDD) – แนวทางนี้คืออะไร
ในตอนเริ่มต้น ควรกำหนดว่าแนวทาง DDD คืออะไร เป็นวิธีการสร้างแอปพลิเคชันและระบบที่ควรสะท้อนความต้องการของธุรกิจโดยพื้นฐาน – สมมติฐานทางธุรกิจซึ่งในขณะเดียวกันก็กลายเป็นข้อกำหนดเบื้องต้นที่รวมอยู่ในซอฟต์แวร์
อะไรคือปัจจัยการผลิตที่สนับสนุนวิธีการ DDD? ประการแรก การออกแบบซอฟต์แวร์ใดๆ ควรอยู่บนพื้นฐานความร่วมมือที่เท่าเทียมกันระหว่างโปรแกรมเมอร์และผู้ที่เกี่ยวข้องโดยตรงกับธุรกิจ ซึ่งในขณะเดียวกันก็เป็นผู้บริโภคเป้าหมายของโซลูชัน เงื่อนไขที่สองสำหรับการสร้างระบบโดยใช้วิธี DDD คือการออกแบบตรรกะของโครงการในรูปแบบของโดเมน
โดเมนคืออะไร? โดยสรุปนี่เป็นธุรกิจเฉพาะที่จำเป็นต้องดำเนินการ พื้นที่ที่ต้องปรับปรุงด้วยซอฟต์แวร์ที่สร้างขึ้นใหม่หรือที่พัฒนาขึ้น ขึ้นอยู่กับความสำคัญและสาระสำคัญของแนวคิดและการทำงานเฉพาะ เราสามารถแบ่งโดเมนออกเป็น:
- โดเมนหลัก ซึ่งเป็นส่วนที่สำคัญที่สุดของระบบและมีหน้าที่รับผิดชอบการทำงานที่สำคัญที่สุด
- โดเมนสนับสนุน ซึ่งเป็นส่วนขยายของโดเมนหลัก หากไม่มีโดเมนดังกล่าว โดเมนสนับสนุนก็ไร้ค่า
- โดเมนทั่วไปซึ่งมีความสำคัญแต่เป็นคุณลักษณะเสริม
DDD ประกอบด้วยอะไรบ้าง
กระบวนการสร้างซอฟต์แวร์ใหม่ตามหลักการของ Domain Driven Design ค่อนข้างแตกต่างจากแนวทางดั้งเดิมในการพัฒนาซอฟต์แวร์ ซึ่งรวมถึงปัญหาทางเทคนิคจำนวนหนึ่งที่เกี่ยวข้องกับการประมวลผลของกลไก การป้อนข้อมูลและการส่งออก การสื่อสารกับเซิร์ฟเวอร์ ฐานข้อมูล และบูรณาการกับเครื่องมืออื่นๆ ที่องค์กรใช้
การเขียนโปรแกรม DDD ประกอบด้วยโมเดลโดเมนส่วนใหญ่ (รูท โดเมนย่อย และโดเมนทั่วไป) ซึ่งมีการใช้งานพารามิเตอร์ทางธุรกิจขั้นพื้นฐานที่ควรรวมไว้ในซอฟต์แวร์ เป็นสิ่งสำคัญมากที่โปรแกรมเมอร์ที่รับผิดชอบในการพัฒนาโค้ดจะต้องเข้าใจวัตถุประสงค์ของการสร้างซอฟต์แวร์ใหม่และเข้าใจคุณค่าของโดเมนอย่างละเอียดถี่ถ้วน DDD ไม่สามารถทำได้โดยไม่ได้กำหนดภาษาที่จะช่วยให้ผู้เชี่ยวชาญด้านโดเมนและโปรแกรมเมอร์เข้าใจภาษานั้นได้ง่าย สำหรับแนวทางนี้ ภาษานี้เรียกว่าภาษาที่แพร่หลาย
ปัญหาที่อาจเกิดขึ้นเมื่อใช้แนวทางการออกแบบที่ขับเคลื่อนด้วยโดเมน
ปัญหาที่ใหญ่ที่สุดของการใช้วิธี DDD คืออะไร? ประการแรกคือการสื่อสารระหว่างธุรกิจกับด้านเทคนิค ตามกฎทั่วไป ควรมีช่องว่างในแนวทาง DDD สำหรับผู้เชี่ยวชาญโดเมนที่มีความรู้เชิงลึกเกี่ยวกับแนวทางนี้ และจะทำหน้าที่เป็น “ผู้เรียบเรียง” ในธุรกิจและการสื่อสารด้านไอทีตามสิทธิของตนเอง
เนื่องจากโครงการที่สร้างขึ้นโดยใช้วิธีการ DDD มีค่อนข้างน้อย จึงเป็นเรื่องยากมากที่จะหาบุคคลที่สามารถทำหน้าที่ดังกล่าวด้วยความทุ่มเทอย่างเต็มที่ การขาดประสบการณ์สำหรับโปรแกรมเมอร์ในการสร้างโดยใช้วิธีการ DDD อาจทำให้เกิดปัญหาเพิ่มเติมได้เช่นกัน
ข้อดีและข้อเสียของแนวทาง DDD
เริ่มต้นด้วยประโยชน์ของการใช้แนวทางการออกแบบที่ขับเคลื่อนด้วยโดเมนเมื่อสร้างซอฟต์แวร์ใหม่ อย่างแรกเลย เป็นโซลูชันที่ยอดเยี่ยมสำหรับโครงการที่ซับซ้อนซึ่งมีคุณลักษณะ เป้าหมายในการนำไปใช้งาน และระดับต่างๆ มากมายจนยากที่จะนำแนวคิดไปใช้ในการออกแบบแอปพลิเคชันแบบเดิม แนวทาง DDD ตอบสนองความต้องการที่แท้จริงของธุรกิจ – ไม่มีที่ว่างสำหรับมาตรการครึ่งหนึ่ง – หากโปรแกรมเมอร์ตีความโดเมนอย่างถูกต้องก็จะดำเนินการอย่างเต็มที่ตามความต้องการของผู้ใช้ปลายทาง นอกจากนี้ยังควรสังเกตต้นทุนที่ค่อนข้างต่ำในการพัฒนาแอปพลิเคชัน ซึ่งสร้างขึ้นตามแนวทาง DDD ตั้งแต่เริ่มต้น
ข้อเสียของการใช้เทคนิคนี้คืออะไร? ข้อเสียเปรียบหลักคือการฝึกฝนเพียงเล็กน้อยในการใช้วิธีนี้ในการพัฒนาซอฟต์แวร์ใหม่ ด้วยเหตุนี้ การเริ่มต้นใช้กลยุทธ์ใหม่ จากมุมมองของทีมงานโครงการ จึงมีความเสี่ยงที่จะเข้าใจผิดเกี่ยวกับแนวคิดโดยสิ้นเชิง และเป็นผลให้ความล้มเหลว
ต้นทุนการผลิตเริ่มต้นของการออกแบบและสร้างแอปพลิเคชันโดยใช้วิธีการ DDD นั้นสูงกว่า ซึ่งส่งผลกระทบต่อโครงการจำนวนเล็กน้อยที่ดำเนินการในลักษณะนี้อย่างแน่นอน
วิธีใช้ DDD ในโครงการของฉันเอง
เพื่อให้ DDD สามารถนำไปใช้ได้จริงในโครงการของเรา เราต้องเริ่มจากศูนย์ เป็นไปไม่ได้ที่จะนำแนวคิดการออกแบบที่ขับเคลื่อนด้วยโดเมนบางส่วนมาใช้ โดยที่ส่วนที่เหลือของโมเดลจะได้รับการออกแบบในลักษณะดั้งเดิม ในกรณีนี้ ความพึงพอใจกับผลิตภัณฑ์ขั้นสุดท้ายจะต่ำทั้งจากทีมไอทีและจากผู้ใช้ปลายทาง