بدء مشروع جديد - من أين أبدأ؟
-
23-09-2019 - |
سؤال
سأبدأ مشروعًا خاصًا بي ، والذي سيكون 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.