سؤال

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

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

الآن أن لدي هائما على تعيين المرحلة ، وهنا أسئلة:

  1. ما هو الغرض الحقيقي من التكوين الملف ؟
  2. يجب محاولة بذل للحفاظ على ملفات التكوين بسيطة ؟
  3. الذين يجب أن تكون مسؤولة عن جعل التغييرات لهم (المطورين والمستخدمين ، مدراء ، الخ) ؟
  4. ينبغي أن تكون مصدر التحكم (انظر السؤال 3)?

كما قلت سابقا الأجوبة على هذه الأسئلة shift باستمرار ، ولكن الآن أنا أفكر:

  1. أن تسمح لغير المبرمجين إلى تغيير قطع كبيرة من السلوك بسرعة
  2. نعم أي شيء غير خشنا الحبيبات يجب أن يكون في كود
  3. المستخدمين يجب أن تكون مسؤولة عن ملفات التكوين و المبرمجين أن تكون مسؤولة عن تكوين طبقة بين التكوين الملفات البرمجية أن يعطي المزيد من السيطرة غرامة الحبيبات التطبيق
  4. لا, لكن الدقيقة الحبيبات طبقة وسطى يجب أن يكون
هل كانت مفيدة؟

المحلول

أسئلة مثيرة جدا للاهتمام!

أنا أميل إلى الحد من تكوين ملفات بسيطة جدا "key=قيمة" التنسيق لأن أنا أتفق معك تماما على أن التكوين الملفات يمكن أن تصبح بسرعة كبيرة كاملة من البرامج.على سبيل المثال, أي شخص الذي حاول من أي وقت مضى إلى "تكوين" OpenSER يعرف الشعور الذي تتحدث عنه:ليس التكوين ، إنه (مؤلمة) البرمجة.

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

لذا للإجابة على الأسئلة الخاصة بك:

  1. ما هو الغرض الحقيقي من config الملف ؟

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

  2. يجب محاولة بذل للحفاظ على ملفات التكوين بسيطة ؟

    بالتأكيد.كما اقترح "البرمجة" في ملف التكوين هو رهيبة.وأعتقد أنه ينبغي تجنبها.

  3. الذي يجب أن يكون مسؤولا عن إجراء تغييرات لهم (المطورين والمستخدمين ، مدراء ، الخ) ؟

    عموما أود أن أقول مدراء الذي نشر التطبيق.

  4. ينبغي أن تكون مصدر التحكم (انظر السؤال 3)?

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


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

نصائح أخرى

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

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

فسوف نلاحظ أنه أساسا key=قيمة البيانات ، حيث يمكن أن تكون القيمة أي لوا المدمج في أنواع.الشيء الأكثر تعقيدا هناك قوائم ، وأنها ليست معقدة حقا (انها مجرد مسألة بناء الجملة).

الآن أنا فقط في انتظار شخص ما أن أسأل كيفية تعيين الملقم منفذ قيمة عشوائية في كل مرة بدء الأمر...

في الآونة الأخيرة كنت أعمل على مشروع أدركت أن أردت أن يكون الشرطية داخل ملف التكوين - الذي كان في السابق فقط تم بسيط جدا من شكل:


key = val
key2 = val
name = `hostname`

لم أكن أريد أن أكتب مصغرة اللغة, لأن إلا إذا فعلت ذلك بعناية فائقة لم أستطع تسمح المرونة التي من شأنها أن تكون مفيدة.

بدلا من ذلك قررت أن يكون شكلين:

  1. إذا كان الملف بدأت مع " # " و كان قابل للتنفيذ أود تحليل نتيجة تشغيله.

  2. وإلا كنت أقرأها كما هي

هذا يعني أنه يمكنني الآن أن تسمح للناس أن يكتب "ملفات التكوين" التي تبدو مثل هذا:

 #!/usr/bin/perl
if ( -x /bin/foo ) 
{
   print <<EOF;
foo=me
bar=you
EOF
}
else
{
   print <<EOF;
foo=bar
bar=foo
EOF
}

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

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

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

أنا فقط استخدام ملفات التكوين إلى نقطة في مخازن البيانات.

هل يمكن أن تتحول إلى نظرية الحساب لتحديد ما يهم لغة البرمجة.إذا كان الخاص بك في تنسيق ملف التكوين هو تورينج كاملة ثم معقولة تعتبر لغة البرمجة.من خلال هذا التعريف, تنسيق ملف لوصف مستويات Sokoban تعتبر لغة البرمجة (انظر هنا).هناك مستويات أخرى من التعقيد أدناه تورينج كاملة التي يمكن أن نعول أيضا, مثل العادية قواعد النحو و Pushdown الباردون.

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

هنا هو بلدي الأفكار:

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

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

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

  4. أنا في كثير من الأحيان عنصر تحكم مصدر "الافتراضي" التكوين ، ولكن طريقة لتجاوز هذا في نظام الفعلية وقت التشغيل.

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

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

  • إما استخدام أنظمة التشغيل' config facuility (مثل plist ، أو gconf أو كل ما هو مناسب)
  • أو بسيطة مسطحة الملف, كما يمكن التعامل معها من قبل شيئا مثل الرف INI محلل.
  • لدغة الرصاصة و المكونات خفيفة الوزن لغة محلل عادة لوا أحيانا tcl في التطبيق ،
  • أو تخزين البيانات SQLite أو مماثلة قواعد البيانات العلائقية.

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

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

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

أعراض config أصبحت لغة البرمجة:

  • name=قيمة أزواج تبدأ تعتمد على بعضها البعض ،
  • تشعر بحاجة إلى التحكم في التدفق (ex. إذا كان (هذا) من)
  • وثائق ملف التكوين يصبح من الضروري من أجل مواصلة التنمية (بدلا من مجرد استخدام التطبيق)
  • قبل قيمة من التكوين هو قراءة فإنه يتطلب أن يكون بعض السياق (أيالقيم تعتمد على شيء خارجي config نفسها)

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

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

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

هنا هي بلدي يجيب على سؤالك:

  • ما هو الغرض الحقيقي من التكوين الملف ؟

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

  • يجب محاولة بذل للحفاظ على ملفات التكوين بسيطة ؟

من الناحية المثالية, أعتقد أن ملفات التكوين يجب على الأقل أن تستكمل بطلاقة واجهة لتكوين برنامج (هذا هو مفيد في كثير من النواحي).إذا كنت لا تتطلب config ثم يجب أن تبقى بسيطة جدا, لا شيء غيرها من أزواج قيمة المفتاح.

  • الذين يجب أن تكون مسؤولة عن جعل التغييرات لهم (المطورين والمستخدمين ، مدراء ، الخ) ؟

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

  • ينبغي أن تكون مصدر التحكم (انظر السؤال 3)?

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

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

num_threads = 13
hostname = 'myhost'

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

نعم, ملفات التكوين يجب أن تكون بسيطة.ينبغي أن لا تحتوي على 'المنطق' أنفسهم - نفكر بها قائمة من التعبيرات في حالة البيانات غير المشروطة البيانات في مجملها.

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

أحد الأغراض من "أوسلو" العمل في مايكروسوفت هو تصريح (وإن لم يشترط) لحل هذه المسألة.

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

وهذا يعني أن ما يعادل اليوم ملفات التكوين قد تكون غنية بما يكفي لدعم كل من النص والرسوم البيانية التحرير من التكوين.الرسومية أداة سيتم توفيره مع "أوسلو" (الاسم الرمزي "رباعي").

سوف تكون مناقضة وتقديم انها فقط لغة عندما يجسد أكثر من يمكن أن يمثله XML;أو آخر عندما XML يعتبر اللغة.

بدلا من ذلك, معظم ملفات التكوين يمكن اعتبار الطبقات ، ولكن فقط مع خصائص و لا طرق.وبدون طرق, لا أعتقد انها لغة.

في نهاية المطاف "اللغة" هو اسفنجي التجريد, ولكن نعم, حواف غامضة.

رمز من التطبيقات يصبح أقل أهمية...هناك البرمجة, هناك كل نوع من السمات التي تحدد سلوك الطبقات, طرق, طريقة الحجج و خصائص.يمكن للمستخدمين تحديد قاعدة البيانات مشغلات قاعدة بيانات القيود.لا يمكن أن تكون معقدة للغاية ملفات التكوين.في بعض الأحيان يمكن للمستخدم تحديد XSLT stylsheets التعامل مع المدخلات والمخرجات لأن أنظمتنا تحتاج إلى أن تكون مفتوحة (SOA).و هناك أشياء مثل BizzTalk يحتاج إلى تكوين معقد جدا.يمكن للمستخدمين تحديد المعقدة سير العمل.

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

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

Config:"ما هو هدفي؟"
لك:"تكوين الزبدة."
Config:"حسنا..."
Config:"ما هو هدفي؟"
لك:"تكوين الزبدة."
Config:"يا إلهي."

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

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

  3. مرة أخرى ، من يجب أن يكون تعديل ملفات التكوين هو تماما تطبيق تعتمد.ولكن أنا أتفق مع miniquark ، أيا كان من هو نشر التطبيق يجب أن يكون المسؤول عن التكوين.

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

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