المرحلة 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، سيكون لديك:

  1. حزمة Docker Compose عاملة مع FastAPI وPostgreSQL 18 وRedis
  2. نقطة نهاية فحص الصحة في GET /health تؤكد أن جميع الخدمات متصلة
  3. هيكل مشروع نظيف جاهز لنماذج قاعدة البيانات ونظام المصادقة ومسارات الواجهة البرمجية التي سنبنيها في الوحدات التالية
  4. تبعيات مثبتة حتى تكون بيئتك قابلة للتكرار في أي مكان

هذا هو الأساس الذي يُبنى عليه كل شيء آخر. لنبدأ.

التالي: معمل تطبيقي — تهيئة مشروع TaskFlow :::

اختبار

اختبار الوحدة 1: إعداد المشروع والهندسة المعمارية

خذ الاختبار