سؤال

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

سؤالي هو، هل هو المشاغب للغاية أن يكون لديك مثل هذا الاستخدام كبير مع العديد من أنواع الأدوات الأخرى في ذلك؟ يجب أن أقحمها إلى العديد من أنواع مختلفة من ملفات المرافق؟ مثل الرسومات_UTILS.C وهلم جرا ما رأيك؟

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

المحلول

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

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

نصائح أخرى

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

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

http://ifacethount.net/2006/04/15/stable-dependation-principle/

أميل إلى كسرها في العديد من الساعات الفرعية كما تقول (Graphics_Utils) عندما يصبح مناسبا.

ننفصل. ستكون الاشياء أسهل في العثور عليها، من الأسهل إعادة استخدامها، أسهل في إعادة التدوين، أسهل في اختبار الوحدة. كنت بحاجة مؤخرا للحصول على مجموعة من طرق التعامل مع تاريخ ISO-8601 من فئة المرافق Ginormous Java من الأساليب الثابتة، وكان من الصعب حقا العثور على 5٪ من التعليمات البرمجية التي احتاجها.

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

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

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

لدي مشروع (كبير إلى حد ما) مع مثل هذه الوحدة وهناك منطق البرمجة التي تصل إلى 5-6 تطبيقات (لنفس الشيء).

مثل أي شخص آخر أود أن كسرها. لكنني أميل إلى استخدام طرق التمديد الآن، لذلك سيكون لدي فئة واحدة (وملف واحد) لكل فئة تمتد (على سبيل المثال StringExtensions, SqlDataReaderExtensions, ، إلخ). أجد أن هذا يميل إلى تنفصل أساليب الأداة المساعدة بشكل جيد.

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