ممارسة سيئة لتجريد من كل تتطلب البيانات في ملف منفصل؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

وإذا كان لدي مجموعة كاملة من يتطلب في بلدي ملف التطبيق الرئيسي:

require 'a'
require 'b'
require 'c'
require 'd'
require 'e'
require 'f'
require 'g'
require 'h'
require 'i'
require 'j'

وسيكون من ممارسة سيئة لوضع الشريط كل هذه تتطلب من ووضعها في ملف منفصل ان يفعل ذلك بالضبط كل من يتطلب - دعنا نسميها "all_requires.rb" - حتى ذلك الحين ويمكنني أن أقول فقط:

require 'all_requires'

وأنا لم أر قط هذا النهج في التعليمات البرمجية الآخرين لذلك ربما هناك سبب؟

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

المحلول

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

DEPENDENCIES = %w(a b c d e f g h i j k)
DEPENDENCIES.each {|f| require f}

وبهذه الطريقة يمكنك تجنب القطار ضخمة من خطوط require ولكن لا تزال تحافظ عليه المترجمة والتعريفي.

نصائح أخرى

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

إذا يتطلب الخاص وفي ملفات أخرى، يمكن أن تصبح صعبة نوعا ما أن تعرف أين الأشياء تأتي من.

إذا كنت تحتاج عادة كل 10 من تلك الملفات في ملفات متعددة ثم نعم هذا يجعل الشعور بالكمال.

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

إذا كنت تستخدم التخزين المؤقت شفرة تشغيل (APC، eAccelerator، الخ) حتى الفرق النظري الى حد كبير يذهب بعيدا منذ تفعلونه غير المشروط يشمل.

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