كيف كنت عاملا لديك المجال (النطاقات)، في المجال يحركها التصميم؟
-
03-07-2019 - |
سؤال
وكيف عامل الخاص المجال (النطاقات)، في تصميم مدفوعة المجال؟
ولقد تم الانتقال إلى المفهوم التالي:
Project.Entity
Project.Entity.Abstracts
Project.Entity.Entities
Project.Entity.Extensions
Project.Entity.Immutables
Project.Entity.Interfaces
Project.Entity.Repositories
وعلى سبيل المثال، لدي كيان في CMS يسمى "المحتوى". لذلك، وأود أن إنشاء مشروع يسمى Project.Content، وعامل الطبقات لتبدو وكأنها:
interface IContent
class Content : IContent
interface IContentRepository
class ContentRepository : IContentRepository
وهذا "المحتوى" نموذج الكيان سيكون له مساحة خاصة بها.
ولكن، أنا وجدت أنه لا مقياس جيد في بيئة المشاريع الكبيرة مع ما يزيد على اثنتي عشرة مشاريع (محاولة 18) من نماذج "الكيان". أنا في نهاية المطاف مع حل مع أكثر من اثني عشر مشروعا، بعضها لا تملك إلا 2 أو 3 فئات (أي UrlRewriter). أيضا، أجد نفسي الرجوع مشاريع أخرى لمجرد واجهات بهم. أشعر هذا poluting نطاقي. بينما المراجع لا الخرسانة، فإنه من الصعب في بعض الأحيان للحفاظ على من المراجع الدائرية.
وهكذا، وأنا يرتد إلى "طبقة" مفهوم في بعض الأحيان ...
وأنا يريد أن يعرف كيف الخبراء DDD الآخرين العوملة تطبيقات حجم المؤسسة. لا تتردد أن يوصي الكتب والمقالات.
ويرجع الفضل في ذلك مسبقا!
المحلول
ويعتقد المرء أن أقوم به هو أن أضيف شيئا أن يحدد سياق يحدها إليها.
وفرع فلسطين. للتأكد من أنه من الواضح لماذا، التحقق من كل الروابط على السياق يحدها: http://dddcommunity.org/discussion/messageboardarchive/BoundedContext.html و <ل أ href = "http://devlicio.us/blogs/casey/archive/2009/02/11/ddd-bounded-contexts.aspx" يختلط = "نوفولو noreferrer"> http://devlicio.us/blogs/casey/ أرشيف / 2009 / 11/02 / DDD-يحدها-contexts.aspx
نصائح أخرى
وأنا استخدم اتباع . NET المبادئ التوجيهية أ >. أجد لهم بديهية جدا وأنها تسمح لك بمساحات الإعداد بحيث لا تحتاج لاستيراد أي شيء لا تحتاج.
وأنا لن فرض اصطلاح التسمية صارمة لمستوى الميزة. تصميم كل مشروع آخر ينبغي أن يوجه ذلك.
وأنا similarily لكنت قد وجدت أن وجود حمولة من مشاريع يصبح الألم لإدارتها. لكنني أفضل
Project.Domain
Project.DataAccess
Project.Presentation (presenters and such)
Project.Gui (in case of a winforms app)
والإعداد.
في طريقة جعل الامور بسيطة تساعد كثيرا عندما تسوء الأمور.
والسؤال هو ماذا تكسب أنت حسنات عند إنشاء مشروع آخر؟ (فمن السهل جدا للقيام بذلك، وتقريبا إلى السهل)
هل تريد من أي وقت مضى لاستخدام هذا المشروع بشكل مستقل أم لا؟ قد ينتهي بك الأمر مع .dlls أدى ذلك إلى جانب لا يمكنك حتى نشرها دون أن يكون بالضبط نفس الإصدارات وما إلى ذلك في هذه الحالة ليس هناك ما يدعو لتقسيمه والتبعثر IDE الخاص بك)
ويمكنك دائما تحريك الأمور إلى مشروع جديد في وقت لاحق إذا دعت الحاجة إلى ذلك، فمن مؤلم إلى حد ما، ولكن بحلول ذلك الوقت سيكون لديك سبب وجيه للقيام بذلك بصرف النظر عن مجرد شعور أن هذه هي الطريقة يتم ذلك.