سؤال

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

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

المحلول

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

ومثل:

SpecialFileClass file = new SpecialFileClass( 200 ); // hard coded

SpecialFileClass file = new SpecialFileClass( DBConfig.Start().GetConnection().LookupValue("MaxBufferSizeOfSpecialFile").GetValue());

نصائح أخرى

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

والشيء الرئيسي الذي يجب أن نأخذ في الاعتبار هو إذا التغييرات في الواقع تحسين النظام الخاص بك وتجنب تسمية طفيفة شيء كما نموذج مضاد وتجنب بكل الوسائل. تكوين النظام الخاص بك وتجنب hardcoding هو علاج بسيط لمعرفة المكررة في النظام الخاص بك (انظر النقطة 11: "DRY لا تكرر نفسك" في <لأ href = "http://www.codinghorror.com/blog/files/Pragmatic ٪ 20Quick٪ 20Reference.htm "يختلط =" noreferrer "> براغماتية مبرمج الدليل المرجعي السريع ) وهذه هي الحاجة الدافعة وراء اقتراح تجنب hardcoding. بمعنى آخر. ينبغي أن يكون هناك مثالي مكان واحد فقط في النظام لكم (التي ستكون متاحة أو التكوين) التي ينبغي أن تتغير إذا كان لديك لتغيير شيء بسيط مثل رسالة خطأ.

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

http://docs.djangoproject.com/en/dev/topics/ إعدادات /

على مثال : في

وهذا يمكن أن يكون قصاصة من ملف settings.py:

num_rows = 20

وبعد ذلك ضمن واحدة من الملفات التي يمكن الوصول إلى ذلك القيمة:

from django.conf import settings
...

for x in xrange(settings.num_rows):
   ...

وفي نهاية المطاف في softcoding:

const float pi = 3.1415; // Don't want to hardcode this everywhere in case we ever need to ship to Indiana.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top