تحية طيبة ومرحبا بكم في عالم بايثون وجانغو! 😃 أنت الآن تنطلق في رحلة لتعلم إحدى لغات وأطر البرمجة الأكثر شهرة واستخدامًا. باستخدام Python، يمكنك إنشاء مجموعة واسعة من التطبيقات، بدءًا من البرامج النصية البسيطة وحتى تطبيقات الويب المعقدة باستخدام Django. الاحتمالات لا حصر لها، وستكون تجربة التعلم صعبة ومجزية. أطيب التمنيات لك برحلتك، ولا تتردد في طلب المساعدة عندما تحتاجها.
لماذا يجب أن نتبع أفضل ممارسات جانغو؟ 🤔
تعتبر أفضل ممارسات Django مهمة لأنها تساعد على ضمان أن التعليمات البرمجية الخاصة بك قابلة للصيانة وقابلة للتطوير وآمنة وفعالة. يساعدك الالتزام بهذه الممارسات على كتابة تعليمات برمجية نظيفة ومنظمة يسهل فهمها وتعديلها، حتى بالنسبة للمطورين الآخرين. بالإضافة إلى ذلك، تساعدك أفضل الممارسات على تجنب الثغرات الأمنية الشائعة واختناقات الأداء. باتباع هذه الإرشادات، يمكنك إنشاء تطبيقات قوية وموثوقة ومناسبة تمامًا للاستخدام على المدى الطويل.🤗
▪ استخدام البيئات الافتراضية
يساعد استخدام البيئات الافتراضية في عزل التبعيات ويساعد على منع تعارض الإصدارات.
▪ قراءة المتغيرات من البيئة
توفر متغيرات البيئة طريقة جيدة لتعيين معلمات تنفيذ التطبيق التي تستخدمها العمليات بحيث يمكنك التحكم في تدفق تنفيذ التطبيق قبل بدء تشغيل التطبيق.
▪ استخدام التحميل المخزن مؤقتا
لتحسين أداء موقع الويب عن طريق تخزين البيانات التي يتم الوصول إليها بشكل متكرر في الذاكرة، بدلاً من جلبها من قاعدة البيانات في كل مرة يتم طلبها. يؤدي ذلك إلى تقليل الحمل على خادم قاعدة البيانات وتسريع موقع الويب، مما يجعله أكثر استجابة للمستخدمين. يمكن أن يكون التخزين المؤقت مفيدًا بشكل خاص لمواقع الويب الديناميكية التي تتلقى قدرًا كبيرًا من حركة المرور.
إستخدم العروض المستندة إلى الفئات
توفر العروض المستندة إلى الفئات في Django طريقة لتحديد العروض المعيارية القابلة لإعادة الاستخدام لتطبيقك. حيث توفر العديد من المزايا مقارنة بالعرض التقليدي القائم على الدوال، مثل إمكانية إعادة استخدام التعليمات البرمجية، وسهولة القراءة، والبنية الأفضل، والمرونة، ومبدأ DRY (لا تكرر نفسك).
▪ استخدام هيكل التطبيق الجيد
يمكنك أيضًا تنظيم بنية Django إلى مكونات أصغر وقابلة لإعادة الاستخدام لجعل تطبيقك أكثر قابلية للصيانة. من المهم اتباع أفضل الممارسات والحفاظ على بنية تطبيقك منظمة وسهلة الفهم. يمكنك أيضًا المراجعة بناءً على حاجتك.
فيمايلي بنية التطبيق 👇
project/apps/dashboards/
├── __init__.py
├── api
│ ├── __init__.py
│ ├── urls.py
│ ├── views.py
│ └── serializers.py
├── admin.py
├── apps.py
├── management
│ ├── __init__.py
│ └── commands
│ ├── __init__.py
│ └── seed_random_data.py
├── migrations
│ └── __init__.py
├── models.py
├── services
│ ├── __init__.py
│ ├── business_logic_1.py
| └── business_logic_n.py
├── static
│ └── dashboards
│ ├── css
│ ├── img
│ └── js
├── templates
│ └── dashboards
│ └── index.html
├── templatetags
│ ├── __init__.py
│ └── temp_1.py
├── tests
│ ├── test_urls.py
│ ├── test_models.py
│ ├── test_templates.py
│ └── test_views.py
├── urls.py
└── views.py
هيكل المشروع👇
.
├── docs
├── logs
├── media
├── project
│ ├── apps
│ │ ├── apiv1
│ │ ├── audits
│ │ ├── authorizations
│ │ ├── dashboards
│ │ ├── notifications
│ │ └── users
│ ├── common
│ │ ├── __init__.py
│ │ ├── exceptions.py
│ │ ├── helpers.py
│ │ ├── models.py
│ │ ├── pagination.py
│ │ ├── utils.py
│ │ └── validators.py
│ ├── config
│ │ ├── asgi.py
│ │ ├── __init__.py
│ │ ├── settings
│ │ | ├── __init__.py
│ │ | └── django.py
│ │ ├── urls.py
│ │ └── wsgi.py
│ └── staticfiles
│ ├── admin
│ ├── apiv1
│ ├── rest_framework
│ └── dashboards
├── decision_logs
│ └── v1_db_schema.png
├── Dockerfile
├── manage.py
├── Pipfile
├── Pipfile.lock
├── pytest.ini
└── README.md
▪ استخدام مولد قالب ذاكرة التخزين المؤقت
حيث يلتقط النسخة المجمعة من القالب في الذاكرة بحيث يمكن تقديم الطلبات اللاحقة لنفس القالب بسرعة أكبر. يمكن أن يؤدي ذلك إلى تحسين أداء موقع الويب الخاص بك بشكل كبير، خاصة بالنسبة للمواقع ذات حركة المرور العالية والتي تحتوي على العديد من القوالب.
▪اكتب منطق عمل منفصل عن العروض✨
إن فصل منطق الأعمال عن العروض يجعل تطبيق Django الخاص بك أكثر تنظيماً وقابلية للصيانة وقابلة للتطوير.
▪ تخزين الجلسات في ذاكرة التخزين المؤقت
افتراضيًا، يقوم Django بتخزين جميع جلسات المستخدم في قواعد البيانات. لذلك يتعين على المطورين تنفيذ واحد أو أكثر من استعلامات SQL من أجل استرداد بيانات جلسة المستخدم من قاعدة البيانات الخاصة بها واسترداد معلومات كائن المستخدم المطلوبة للمستخدم🔥. كما يجب على المطورين تنظيف جلسات المستخدم القديمة المخزنة بالفعل في قاعدة البيانات، ويجب أن يتم هذا التنظيف على فترات زمنية منتظمة. لكن كمطور، لا يزال لديك خيار تخزين بيانات الجلسة مؤقتًا في شكل ذاكرة تخزين مؤقت عن طريق تمكين خيار Memcached أو بمساعدة أدوات مثل Redis💡. عندما يتم تخزين بيانات الجلسة في ذاكرة التخزين المؤقت، يمكن لاستعلام SQL تجاوز التنفيذ في كل مرة يتم فيها إنشاء التطبيق وتقديم طلب. ومع ذلك، لا يزال المطورون بحاجة إلى تخزين بيانات الجلسة في قاعدة البيانات الخاصة بهم على المدى الطويل.
▪ اتصالات قاعدة بيانات قوية ومستمرة
في قاعدة بيانات Django، يظل الاتصال مفتوحًا لفترة طويلة من الوقت، بدلاً من إغلاقه بعد كل طلب🔥. يمكن أن يؤدي ذلك إلى تحسين أداء تطبيق Django عن طريق تقليل العبء الناتج عن إنشاء اتصال قاعدة بيانات جديد لكل طلب. يمكنك تحقيق ذلك عن طريق تحديث قيمة المتغير CONN_MAX_AGE
باستخدام إعدادات قاعدة بيانات Django، حيث القيمة الافتراضية هي 0، مما يعني أنه سيتم إغلاق الاتصال بعد كل طلب.
ملاحظة ✍️: اتصالات قاعدة البيانات المستمرة ليست مناسبة لجميع أنواع التطبيقات، وقد لا تكون الخيار الأفضل للتطبيقات ذات حركة المرور العالية أو للتطبيقات التي تتطلب درجة عالية من اتساق البيانات. قبل تنفيذ اتصالات قاعدة البيانات المستمرة، يوصى بإجراء اختبار شامل لأداء وسلوك التطبيق الخاص بك للتأكد من أنه يلبي متطلباتك.
هذا كل شيء من جانبي يا رفاق 🧑💻. آمل أن تكون هذه المدونة مفيدة لك في إعطائك فهمًا أفضل لأفضل ممارسات جانغو. حتى المرة القادمة، ابقَ آمنًا واستمر في التعلم!
اكتشاف المزيد من بايثون العربي
اشترك للحصول على أحدث التدوينات المرسلة إلى بريدك الإلكتروني.