سؤال

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

على الرغم من أنني أعتقد أنني لن أعطيك ما يكفي من التفاصيل على الذهاب ، هل لديك أي موارد أو المشورة بشأن كيفية التعامل تقسيم المجالات حتى منطقيا?في حالة أنه يساعد معظم هذه الوظيفة سوف يتم الكشف عنها عبر خدمات الويب, و نحن مايكروسوفت تسوق مع جميع أحدث الأدوات والأجهزة والأدوات.

  • أنا أناقش أحد ضخمة الحل مع المشاريع الفرعية لجعل الإشارات أسهل, ولكن هذا الأمر غير عملي جدا?
  • يجب أن يختتم إرث وظائف التطبيق ، أو ترك ذلك تماما الملحد في مساحة الاسم (صنع OurCRMProduct.Customer الطبقة مقابل عام Customer الفئة ، على سبيل المثال)?
  • يجب على كل الخدمات/المشاريع الخاصة BAL و DAL, أو يجب أن تكون منفصلة تماما الجمعية أن كل شيء من المراجع ؟

ليس لدي خبرة في تنظيم مثل هذه مشاريع بعيدة المدى فقط العرضية واحد ، لذلك أنا أبحث عن أي توجيه يمكنني الحصول على.

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

المحلول

هناك مليون طريقة لقطة الجلد.ومع ذلك ، فإن أبسط واحد هو دائما أفضل.الطريقة التي هي أبسط لك ؟ يعتمد على الاحتياجات الخاصة بك.ولكن هناك بعض القواعد العامة من الإبهام أتابع.

أولا تخفيض إجمالي عدد المشاريع قدر الإمكان.عند تجميع عشرين مرة في اليوم ، دقيقة اضافية تضيف ما يصل.

إذا كان التطبيق الخاص بك تم تصميمه من أجل التوسعة ، النظر في تقسيم الجمعيات على غرار تصميم مقابلالتنفيذ.ضع واجهات فئات أساسية في الجمعية العامة.إنشاء تجميع الشركة تطبيقات من هذه الفئات.

للتطبيقات الكبيرة ، واجهة المستخدم المنطق و منطق الأعمال منفصلة.

تبسيط الحل الخاص بك.إذا كان يبدو معقدة للغاية ، فإنه على الأرجح.الجمع بين الحد.

نصائح أخرى

نصيحتي شرعت في مشروع مماثل ، هو لا تتعذب اسم المساحات..

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

لا تضيع الوقت في الحديث كثيرا حول المشروع الخاص بك.فقط تفعل ذلك.

لقد شهدت في الآونة الأخيرة نفس في العمل.الكثير من المخصص التعليمات البرمجية التي تحتاج إلى هيكلة و تنظيم.

الحقيقي صعب في البداية, لأن هناك الكثير.أعتقد أن أفضل نصيحة أستطيع أن أعطي هو فقط استثمار الوقت في ذلك على الرياح إلى أسفل بعد ظهر يوم الجمعة ، لبضعة أسابيع كنت مجرد اختيار التطبيق/قطعة من التعليمات البرمجية ، ودراسة ما كان هناك, التفكير في ما يمكن أن نجعل عامة ، نسخ هذا ووضعه في المكتبة الجديدة أينما أعتقد أنه ينبغي أن يكون.مرة واحدة كان كل رمز في تطبيق هاجر ، ثم العمل على إعادة بيع ديون تطبيق العمل من الإطار المشترك..هذا في بعض الأحيان تسبب مشاكل في حاجة إلى أن تكون ثابتة ، ولكن طالما الخاص بك دقيق فإنه لا ينبغي أن تكون كبيرة جدا صفقة.

قطعة قطعة, هذا هو السبيل الوحيد للقيام بذلك.

من حيث الهيكل ، حاولت نوع من تقليد MS namespacing منذ معظمها جميلة المنطقية (على سبيل المثال الشركة.البيانات , الشركة.ويب , الشركة.ويب.واجهة المستخدم وهلم جرا.

واحدة من الفوائد الرئيسية هي على الأرجح من خداع إزالتها.نعم القليل من إعادة بيع ديون المطلوبة في التطبيقات ، ولكن رمز قاعدة الكثير أصغر حجما ، في نواح كثيرة "أكثر ذكاء".

شيء آخر لاحظته هو أن كنت في كثير من الأحيان لديهم مشاكل في محاولة لمعرفة حيث إلى وضع الاشياء (من حيث namespacing) منذ لم أكن متأكدا ما أنه ينتمي إلى.الآن هذا حقا قلق لي, لقد كان ينظر إليها على هذا النحو رائحة سيئة.منذ إعادة org كل ما يقع الآن في الفضاء أكثر من ذلك بكثير لطيف.و (الآن كمية صغيرة جدا) من تطبيق specfic رمز ، وأنها تحصل على وضعه في الشركة.التطبيقات.اسم التطبيق هذا يساعد حقا لي التفكير في عمل الأشياء أكثر بكثير منذ أنا لا أميل كثيرا في هذا الاسم لذا تأتي مع أكثر مرونة التصاميم.

آسف على وظيفة طويلة..انها نوع من المشي على الأقدام!

نحن لدينا اسم الجمعيات .صافي التالية طريقة الشركة.المشروع.XXXX.YYYY حيث XXXX هو المشروع YYYYY هو فرعي ، على سبيل المثال:

  • نظام الإجراءات الجزائية.AdmCom.المشتركة
  • نظام الإجراءات الجزائية.AdmCom.BusinessObjects
  • نظام الإجراءات الجزائية.AdmCom.المشتركة.الدال

ونحن نأخذ هذا من كتاب الدعوة إطار المبادئ التوجيهية تصميم قبل كريستوف Cwalina (الكاتب), براد أبرامز (مؤلف)

للمشاريع الكبيرة النهج أود أن أغتنم أن مساحة اسم المجال لعملي الكائنات ومن ثم استخدام نقل البيانات الكائنات (DTO) في طبقات بلدي حيث التخزين و استرجاع الكائن الأعمال المطلوبة.DTO هو كائن بسيط لا يحتوي على أي منطق الأعمال.

هنا هو الرابط الذي يشرح DTO:

http://martinfowler.com/eaaCatalog/dataTransferObject.html

الحلول الكبيرة مع الكثير من المشاريع التي يمكن أن تكون بطيئة جدا لتجميع لكن أسهل لإدارة معا.

أنا غالبا ما يكون اختبار وحدة الجمعيات في نفس الحل ومنها أنهم إذا كنت تميل إلى إجراء تغييرات عليها معا.

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