ฉันคิดว่าสิ่งนี้ขึ้นอยู่กับโครงการเฉพาะ
ตัวอย่างเช่นหากโดเมนธุรกิจที่แตกต่างกันมีความเป็นอิสระต่อกันฉันจะจัดระเบียบตามโดเมนธุรกิจ
แต่ถ้ามีการใช้ร่วมกันรหัสระหว่างโดเมนธุรกิจหรือมากกว่าโดเมนธุรกิจที่แตกต่างกันหลากหลายรูปแบบของฐานรหัสเดียวกันแล้วดูเหมือนว่าตรรกะมากขึ้นในการจัดระเบียบตามโดเมนทางเทคนิค และถ้าคุณใช้ภาษา Object Oriented ใด ๆ คุณก็สามารถซับคลาสคอนโทรลเลอร์ทั่วไปโมเดลของคุณและอื่น ๆ ในไฟล์เฉพาะธุรกิจของคุณเพื่อทำให้มันบางลง
นอกจากนี้ยังมีกึ่งกลาง (ทอง) ระหว่างทั้งสอง - ดึงรหัสที่ใช้ร่วมกันออกเป็นโดเมนของตัวเองและใช้ในโดเมนอื่น สิ่งนี้จะช่วยให้คุณมีโครงร่างที่ขับเคลื่อนด้วยความรู้สึก แต่อนุญาตให้ใช้รหัสที่แชร์ระหว่างโดเมนธุรกิจ
Domain1 # This domain changes bits of standard MVC code
controllers
models
views
Domain2 # this domain only modifies views, all else is standard
views
Shared # Here is the better part of code base
controllers
models
views
PS ฉันคิดว่ากรอบงานส่วนใหญ่จัดระเบียบตามโดเมนทางเทคนิคเพียงเพราะพวกเขามีแนวโน้มที่จะคาดหวังว่าคุณจะรวมโดเมนธุรกิจที่แตกต่างกันเป็นโครงการเดียวก็ต่อเมื่อคุณมีรหัสที่ใช้ร่วมกันและจะสร้างโครงการแยกต่างหาก
แก้ไข:
ตัวอย่างเช่นสมมติว่ามีเว็บแอปที่จัดการคลังสินค้าของ บริษัท ในรูปแบบทั่วไปสิ่งนี้อาจนำไปใช้กับหลาย ๆ บริษัท แต่แต่ละ บริษัท อาจมีรายละเอียดบางอย่างที่ไม่ได้พบและห้ามไม่ให้ซื้อตัวอย่างเช่นหนึ่งในนั้นได้ปรับใช้แท็บเล็ตกับรถยกและต้องการมุมมองพิเศษสำหรับพวกเขา เพื่อจัดระเบียบรายการเป็นสามระดับแทนที่จะเป็นค่าเริ่มต้นของสอง
แน่นอนคุณสามารถแยกโครงการสำหรับแต่ละ บริษัท เหล่านี้ แต่ถ้าเฟรมเวิร์ก / ภาษาอนุญาตคุณสามารถใช้คลาสย่อยหรือปลั๊กอิน ฯลฯ เพื่อกำหนดบิตและชิ้นส่วนของโครงการทั่วไปตามความต้องการของลูกค้าทุกคนและจัดระเบียบพวกเขาในเลย์เอาต์ Business Domain
เช่นถ้าโครงการทั่วไปส่งออกไปยัง JSON เฉพาะรายการเท่านั้น Domain1 สามารถแบ่งคลาสตัวควบคุมและทำให้การส่งออกเป็นปัญหาการส่งล่าสุด
และหากคุณพบภายหลังว่า Domain1 มีส่วนประกอบที่ใช้ได้กับ Domain2 ด้วยคุณสามารถแยกรุ่นทั่วไปไปยัง Shared ได้
อย่างที่คุณได้กล่าวมาแล้วหลายเฟรมเวิร์คจัดโดยโดเมนทางเทคนิคและนั่นคือสิ่งที่ฉันใช้ตอนนี้เพียงเพราะ FW ที่ฉันเลือกทำให้มันง่ายขึ้น แต่ด้วยเล็กน้อย (หรือมาก) ของข้อศอกไขมันฉันคิดว่าฉันสามารถเขียนเส้นทางรวมเพื่อสนับสนุนเค้าโครงโดเมนธุรกิจได้เช่นกัน