سؤال

سأبدأ مشروعًا خاصًا بي ، والذي سيكون ASP.NET MVC + Fluent Nhibernate. أريد استخدام النهج الأول لأكبر قدر ممكن. لذا ، من أين أبدأ بالضبط؟ مخطط قاعدة البيانات؟ نموذج المجال؟ رسم خرائط فئات نموذج المجال لقاعدة البيانات؟

هل كانت مفيدة؟

المحلول

إذا كان لديك خبرة قليلة في الاختبارات في الكتابة ، فمن الأسهل البدء من نموذج المجال (أو مستوى أعلى أسفل واجهة المستخدم). عندما تكون قد دفعت تصميم نموذج المجال باستخدام TDD ، فستعرف أن مخطط قاعدة البيانات يجب أن يكون عليه الحال. قد يكون من الجيد تأجيل تقديم قاعدة بيانات للنظام ، لأن التعامل مع مخطط قاعدة البيانات سيضيف بعض النفقات العامة إلى التطوير. وسيؤدي ذلك أيضًا إلى تصميم أفضل ، لأنه سيتم فصل نموذج المجال من طبقة قاعدة البيانات بشكل أفضل.

إذا كنت ماهرًا في اختبارات الكتابة وفي TDD ، فقد يكون من المفيد البدء من اختبار من طرف إلى طرف (في هذه الحالة ، سيتم كتابتها ضد واجهة المستخدم على الويب) وإنتاج شريحة رقيقة من الوظائف التي تلمس جميع الأجزاء المعمارية من النظام (كما هو موصى به في Goos). بمعنى آخر ، إنشاء أ الهيكل العظمي المشي. الفوائد من هذا النهج هي أن (1) ستتمكن من معالجة وحل مشاكل التكامل في البداية ، (2) عند استخدام الاختبارات الشاملة لقيادة التصميم ، يمكن أن تساعدك على تجنب التنفيذ الأجزاء الزائدة ، و (3) صعوبات كتابة الاختبارات الشاملة تضغط عليك لتحسين الهندسة المعمارية وإضافة خطافات المراقبة ، والتي قد تكون مفيدة أيضًا في مراقبة النظام في الإنتاج. (ستظل هناك حاجة إلى اختبار الوحدة المركزة ، لأنها توفر ضغط التصميم على مستوى الفصل ، بالإضافة إلى أنها تعمل بشكل أسرع وبالتالي توفر ردود فعل أسرع.)

لقد كتبت المزيد عن هذا النهج الأخير في تصميم من أجل التكامل.

نصائح أخرى

جمع المتطلبات.

ابدأ بنموذج وهمي/أولي (مثل Balsamiq يسخر) للتطبيق ، ثم كتب وجهات النظر ، وسخرية وحدات التحكم أثناء المضي قدمًا ، ثم اكتب منطق وحدة التحكم ، وسخرت من DAO/المستودعات على طول الطريق. بحلول الوقت الذي تبدأ فيه في كتابة DAO/مستودعاتك ، سيكون لديك فكرة جيدة عن كائناتك المطلوبة. ضرب هؤلاء خارج واستخدام nhibernate بطلاقة لإنشاء قاعدة البيانات الخاصة بك.

على الأقل هذه هي الطريقة التي أحاول بها القيام بالأشياء.

أوصيك S#ARP Architecture المشروع الذي يستخدم أفضل الممارسات الجمع:

  • nhibernate
  • Fluentnhibernate
  • TDD / DDD مع نهج FIRTS النموذج مع قاعدة بيانات SQLITE لاختبار الوحدة
  • السخرية
  • نمط المستودع

يمكنك أيضًا تثبيت S#arp Arch. قالب للبصرية الاستوديو IDE.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top