هل هناك فرق إذا كنت تنظيف بلدي يستخدم الشرط إذا إزالة الوحدات لا تزال تستخدم في وحدات أخرى ؟

StackOverflow https://stackoverflow.com/questions/763862

  •  11-09-2019
  •  | 
  •  

سؤال

أنا شخصيا لو بلدي uses البنود صغيرة قدر الإمكان ، ولكن في كثير من التطبيقات كبيرة حقا الوحدات (من حيث النفخ القابل للتنفيذ) مثل Forms أو VirtualTrees ويلزم على الأقل وحدة أخرى على أي حال.

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

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

المحلول

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

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

CodeInsight:عند سحب إنجاز قانون المنسدلة ، وسوف نقدم خيارات استنادا إلى جميع الوحدات المتاحة حاليا.يمكنك تقليل عدد الخيارات التي قد لتصفية من خلال-وبالتالي في مقدار الوقت الذي يستغرقه لسحب الدموي الشيء!--عن طريق الحد من عدد من الوحدات التي تستخدمها.(لا, أنا لست المر.لماذا تسأل؟)

نصائح أخرى

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

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

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

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

شيء آخر يستحق الذكر هو ذلك يحدد ترتيب الوحدات المعرف الذي اختيار مترجمS عندما يكون هناك تجديد في 2 وحدات مختلفة، يمكنك الاتصال بها دون بادئة باسم الوحدة (والتي يجب أن تفعلها دائما كأفضل ممارسات).

بخلاف ذلك، كما أشار ماسون وروب، فإن أمر الوحدات يؤثر على الترتيب الذي يتم تجميعه وتسلسل التهيئة / الانتهاء.

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

أنا لا أوافق مع ميسون وروب: إنه يحدث فرقا!

تخفيض التبعية.

الفرق ليس في المشروع الحالي كما هو موضح من قبل ماسون وسرقة. بدلا من ذلك، الفرق في مشروعك التالي. إذا حافظت على الوحدات (الخادم) غير الضرورية في وحدة (العميل)، فستسحب وحدة العميل هذه في مشروع آخر في التبعيات أيضا. إذا لم تكن هناك وحدات عميل أخرى مبررة للوحدات تم سحبها للتو، فأنت قد قمت بإضافة Bloat.

استخدم محلل باسكال مجانا لمعرفة الوحدات غير المستخدمة في التعليمات البرمجية الخاصة بك.

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