المرحلة 1: إعداد المشروع والهندسة المعمارية
الحزمة التقنية: لماذا FastAPI + PostgreSQL + Docker
3 دقيقة للقراءة
ماذا سنبني
مرحبا بك في TaskFlow — واجهة REST API لإدارة المهام بمستوى إنتاجي. بنهاية هذه الدورة، ستكون قد بنيت واجهة برمجية متكاملة تتعامل مع:
- إدارة المستخدمين — التسجيل، تسجيل الدخول، مصادقة JWT
- المشاريع — إنشاء وإدارة مساحات العمل للمشاريع
- المهام — عمليات CRUD كاملة مع تتبع الحالة والأولويات والتعيينات
- التحكم بالوصول حسب الأدوار — مالكون ومديرون وأعضاء بصلاحيات مختلفة
هذا ليس مشروعا تجريبيا. يستخدم TaskFlow نفس أنماط الهندسة المعمارية التي تجدها في الشركات التي تشحن برمجيات حقيقية.
لماذا هذه الحزمة التقنية في 2026
| التقنية | الإصدار | لماذا تتفوق |
|---|---|---|
| FastAPI | 0.128.x | غير متزامن أولا، توثيق OpenAPI تلقائي، تحقق Pydantic مدمج. أحد أسرع أطر عمل Python نموا مع منظومة ضخمة. |
| PostgreSQL | 18.2 | المعيار الصناعي لقواعد البيانات العلائقية. الإصدار 18.2 (صدر في 12 فبراير 2026) يجلب تحسينات مستمرة في الأداء والموثوقية. |
| SQLAlchemy | 2.0.46 | واجهة 2.0 ناضجة بالكامل — استعلامات مكتوبة حديثة، دعم غير متزامن، وأكثر ORM اختبارا في Python. |
| Alembic | 1.18.4 | ترحيلات قواعد البيانات بالشكل الصحيح. يتتبع تغييرات المخطط في التحكم بالإصدارات حتى تتطور قاعدة بياناتك جنبا إلى جنب مع الكود. |
| Pydantic | 2.12.x | التحقق من البيانات بسرعة Rust. نواة Pydantic v2 مكتوبة بلغة Rust، مما يجعلها أسرع بأضعاف مضاعفة من v1. |
| Docker Compose v2 | v2 | تنسيق الحاويات مدمج في Docker CLI. وصل Compose v1 إلى نهاية عمره في يوليو 2023 — v2 هو المعيار. |
| Redis | 7.x (redis-py 7.1.1) | التخزين المؤقت في الذاكرة وتحديد المعدل. سنستخدمه لتخزين الاستعلامات المتكررة مؤقتا وتقييد إساءة استخدام الواجهة البرمجية. |
| Python | 3.12+ | تحسينات في الأداء، رسائل خطأ أفضل، ودعم عبارة type. |
لماذا ليس Django REST Framework؟
Django REST Framework ممتاز، لكن FastAPI يمنحنا:
- دعم أصلي للتنفيذ غير المتزامن — التعامل مع آلاف الاتصالات المتزامنة
- توثيق تلقائي للواجهة البرمجية — Swagger UI وReDoc يتم إنشاؤهما من الكود مباشرة
- تحقق يعتمد على الأنواع أولا — نماذج Pydantic تفرض عقود البيانات عند كل حدود
- حمل أقل — لا آراء ORM مفروضة، لا لوحة إدارة، لا محرك قوالب — فقط طبقة الواجهة البرمجية
لمشروع REST API مركّز، يتيح لك FastAPI بناء ما تحتاجه بالضبط دون حمل ما لا تحتاجه.
هيكل المشروع
إليك تخطيط المجلدات الذي سنبنيه خلال هذه الدورة:
taskflow/
├── docker-compose.yml # الخدمات: التطبيق، postgres، redis
├── Dockerfile # بناء متعدد المراحل للواجهة البرمجية
├── requirements.txt # التبعيات المثبتة
├── .env # متغيرات البيئة (لا ترفعها أبدا)
├── alembic.ini # إعدادات Alembic
├── alembic/ # سكربتات الترحيل
│ └── versions/
├── app/
│ ├── __init__.py
│ ├── main.py # نقطة دخول تطبيق FastAPI
│ ├── core/
│ │ ├── __init__.py
│ │ ├── config.py # الإعدادات عبر Pydantic
│ │ ├── database.py # محرك وجلسة SQLAlchemy
│ │ ├── security.py # JWT وتجزئة كلمات المرور
│ │ └── redis.py # اتصال Redis
│ ├── api/
│ │ ├── __init__.py
│ │ ├── deps.py # حقن التبعيات
│ │ └── v1/
│ │ ├── __init__.py
│ │ ├── auth.py # تسجيل الدخول والتسجيل
│ │ ├── users.py # نقاط نهاية المستخدمين
│ │ ├── projects.py # نقاط نهاية المشاريع
│ │ └── tasks.py # نقاط نهاية المهام
│ ├── models/
│ │ ├── __init__.py
│ │ ├── user.py # نموذج SQLAlchemy للمستخدم
│ │ ├── project.py # نموذج المشروع
│ │ └── task.py # نموذج المهمة
│ ├── schemas/
│ │ ├── __init__.py
│ │ ├── user.py # مخططات Pydantic للمستخدم
│ │ ├── project.py # مخططات المشروع
│ │ └── task.py # مخططات المهمة
│ └── tests/
│ ├── __init__.py
│ ├── conftest.py # الأدوات المساعدة وقاعدة بيانات الاختبار
│ ├── test_auth.py
│ ├── test_users.py
│ ├── test_projects.py
│ └── test_tasks.py
كل مجلد له مسؤولية واضحة:
core/— الإعدادات، اتصالات قاعدة البيانات، أدوات الأمانapi/— معالجات المسارات منظمة حسب الإصدارmodels/— نماذج SQLAlchemy ORM (جداول قاعدة البيانات)schemas/— نماذج Pydantic (التحقق من الطلبات والاستجابات)tests/— مجموعة اختبارات pytest
ماذا ستملك بعد هذه الوحدة
بنهاية المرحلة 1، سيكون لديك:
- حزمة Docker Compose عاملة مع FastAPI وPostgreSQL 18 وRedis
- نقطة نهاية فحص الصحة في
GET /healthتؤكد أن جميع الخدمات متصلة - هيكل مشروع نظيف جاهز لنماذج قاعدة البيانات ونظام المصادقة ومسارات الواجهة البرمجية التي سنبنيها في الوحدات التالية
- تبعيات مثبتة حتى تكون بيئتك قابلة للتكرار في أي مكان
هذا هو الأساس الذي يُبنى عليه كل شيء آخر. لنبدأ.
التالي: معمل تطبيقي — تهيئة مشروع TaskFlow :::