Architecture Decision Record

Active theme: Light

← أمثلة على سجلات القرارات

سجل قرار البنية المعمارية لإطار Python Django

تاريخ القرار: 2021-07-15

الحالة: مقبول

السياق

تخطط مؤسستنا لتطوير تطبيق ويب يدير بيانات العملاء. وقد اخترنا Python لغةَ برمجة، وننظر في Django إطارَ ويب لتطوير التطبيق.

القرار

قررنا استخدام إطار الويب Django لتطوير تطبيق الويب. يوفر Django مجموعة متينة من الأدوات والميزات لبناء تطبيقات الويب بسرعة وكفاءة.

العوامل

من العوامل التي أثرت في قرارنا:

  1. الربط الكائني العلائقي (ORM): لدى Django ORM مدمج يتيح لنا التفاعل مع قاعدة البيانات دون كتابة استعلامات SQL. وهذا يسهّل تطوير التطبيق وصيانته على المدى البعيد.

  2. إطار MVC: يتبع Django بنية النموذج-العرض-المتحكم (MVC)، مما يسهّل فصل منطق الأعمال عن طبقات العرض في التطبيق.

  3. قابلية التوسع: يُعرف Django بقدراته على التوسع، مما يجعله خيارًا ممتازًا لتطوير التطبيقات واسعة النطاق.

  4. الأمان: لدى Django ميزات أمان مدمجة، مثل الحماية من هجمات الويب الشائعة كالبرمجة عبر المواقع (XSS) وحقن SQL.

  5. دعم المجتمع: لدى Django مجتمع كبير ونشط يقدم الدعم ويسهم في تطوير الإطار.

البدائل المدروسة

نظرنا في أطر ويب أخرى مثل Flask وPyramid. غير أننا وجدنا أن Django إطار أنضج وأكثر رسوخًا، وله مجموعة متينة من الميزات.

وناقشنا أيضًا تطوير التطبيق دون إطار ويب، باستخدام مكتبات مثل SQLAlchemy وFlask-RESTful. غير أننا وجدنا أن Django يوفر وظائف أوسع، مما يجعله خيارًا أفضل لتطبيق ويب متكامل.

العواقب

سيؤدي اعتماد Django إلى العواقب التالية:

  1. سيكون تطوير التطبيق وصيانته أسهل بفضل أدوات Django وميزاته المدمجة.

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

  3. قابلية توسع التطبيق ومتانته.

  4. ميزات أمان مدمجة تساعد على حماية التطبيق من هجمات الويب الشائعة.

  5. الوصول إلى مجتمع كبير ونشط للحصول على الدعم.

ندرك أن لدى Django منحنى تعلم أشد انحدارًا من الأطر الأخرى، لكننا نرى أن الاستثمار يستحق العناء بالنظر إلى الفوائد بعيدة المدى التي يقدمها.

الخلاصة

استنادًا إلى العوامل التي جرى النظر فيها، قررنا استخدام إطار الويب Django لتطوير تطبيق الويب. ونعتقد أن ميزات Django ودعم مجتمعه وقدراته على التوسع تجعله الخيار الأفضل لبناء تطبيق ويب متكامل. وسندرّب مطورينا على استخدام Django لضمان استخدام الإطار بفعالية وكفاءة.