تتمتع بعض الأسئلة في عالم تطوير الحفرة بالقوة السحرية لتربية جيوش كاملة من الناس وتوجيههم إلى حرب مقدسة وإجبارهم على رمي بعضهم بعضًا بأكوام كاملة من الحجج والحسابات وأجزاء من التعليمات البرمجية. في بعض الأحيان ، عندما تنتهي الحجة ، تتحرك الجيوش المتحاربة بسرعة إلى الحرب بإلقاء أكوام من البراز اللفظي.
المواضيع الشائعة تشمل:
- هل يجب علي كتابة هذا المشروع في بايثون؟
- ما الإطار الذي يجب اتخاذه من أجل التنمية؟
- من هو أسرع ، مكتبة X أو مكتبة Y؟
اليوم سأحاول اختيار واحد فقط من هذه الموضوعات السحرية بلطف - السؤال "كيفية إدارة التكوينات في مشروع؟".

من الواضح ، هناك الكثير من الطرق لتكوين برنامج مباشر.
- متغيرات البيئة (مع ملفات .env إلى الكومة).
- جميع أنواع الملفات المتخصصة بتنسيقات yaml و json و xml و ini.
- * .py الملفات مع فئات أو "الثوابت".
- configparser من مكتبة بيثون القياسية.
- حلول مكتوبة ذاتيًا على أساس الفئات أو الوحدات النمطية أو الملفات أو التخاطر أو السحر الأسود (أو الكل معًا).
- مديري التكوين المضمنة في الإطار (على سبيل المثال ، في قارورة).
هناك طرق كافية ، يمكنك اختيار أي شيء واستخدامه. لكن التقدم سيتوقف إذا لم يحاول الأشخاص تحسين كل شيء على التوالي وتحسينه (بما في ذلك ما كان يعمل لفترة طويلة وبجودة مقبولة). وصلت أيدي المتحمسين أخيرًا إلى تكوينات تطبيقات بيثون.
لذلك كان هناك dynaconf
لم يكن المطورون قلقين بشكل خاص من اختراع أساليبهم الماكرة وجمعوا كل الطرق الشائعة للعمل مع الإعدادات تحت سقف واحد.
- يمكنك قراءة الملفات (.json و .ini و yaml و .toml الجديدة ، والتي تستحق أيضًا التعرف عليها)
- يمكنك التقاط متغيرات البيئة وملفات .env
- يمكنك استخدام التخزين والخدمات الخارجية (من Redis البسيط إلى التخزين الآمن الخاص بكلمات المرور)
- كل هذا يندمج بنجاح مع تكوينات Flask و Django.
وبالطبع ، أضفنا مجموعة من الكعك الذي يجعل الحياة أسهل في أي مشروع
- من السهل تحويل بيئات ديف / التدريج / اختبار / الإنتاج.
- الإعدادات الافتراضية.
- تشغيل وإيقاف الميزات في الكود (سيكون المسوِّقون ومديرو المنتجات والمختبرون سعداء).
- أداة مساعدة لوحدة التحكم تسمح لك بتغيير إعدادات المشروع أثناء التنقل دون لمس الرمز.