Drogon C++: دليل شامل مع أمثلة عملية

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

Drogon C++: دليل شامل مع أمثلة عملية

مرحبًا بك في عالم تطوير الويب عالي الأداء بلغة C++ باستخدام إطار العمل Drogon. إذا كنت معتادًا على الإمكانيات غير المتزامنة لـ Node.js أو سهولة استخدام Flask أو Django، ولكنك تحتاج إلى أداء على مستوى الكود الأصلي، فإن Drogon هو الخيار الأمثل لك. في هذه المقالة، سنشرح بالتفصيل كيفية تثبيت Drogon، وكتابة أول تطبيق لك، واستخدام أساليبه الرئيسية، وتجنب الأخطاء الشائعة.

1. ما هو Drogon ولماذا تحتاجه؟

Drogon هو إطار عمل ويب عالي الأداء ومتعدد المنصات للغة C++. على عكس العديد من الحلول الأخرى، فهو مبني على نموذج الإدخال/الإخراج غير المتزامن (IO) باستخدام حلقة الأحداث الخاصة به. يتيح ذلك معالجة آلاف الاتصالات المتزامنة دون إنشاء خيط منفصل لكل منها، مما يقلل بشكل كبير من الحمل الزائد على الذاكرة وتبديل السياق.

لماذا تستخدم Drogon؟ أولاً، السرعة. بفضل لغة C++ المترجمة والإدخال/الإخراج غير المحظور، يمكن لـ Drogon معالجة الطلبات بتأخير في نطاق الميكروثانية، مما يجعله خيارًا مثاليًا لواجهات برمجة التطبيقات (REST API) عالية التحميل، والخدمات المصغرة، وتطبيقات الوقت الفعلي. ثانيًا، الوظائف الغنية "خارج الصندوق": ORM للعمل مع قواعد البيانات، ودعم WebSocket، وJSON، وSSL/TLS، والبرمجيات الوسيطة (middleware)، ومحرك القوالب (ctemplate)، وعميل HTTP مدمج.

الإطار قيد التطوير النشط، وله وثائق واضحة ومجتمع ودود. إذا كنت بحاجة إلى إنشاء خلفية (backend) تعمل بأقصى إمكانيات الأجهزة، ولا تريد التضحية بوضوح الكود، فإن Drogon سيكون أداتك الموثوقة.

2. التثبيت

لا يتم تثبيت Drogon عبر مدير حزم مثل pip أو npm. يجب بناؤه من المصدر. ومع ذلك، فإن العملية مؤتمتة إلى أقصى حد باستخدام CMake و vcpkg.

الطريقة 1: التثبيت عبر vcpkg (موصى به)

# استنساخ vcpkg إذا لم تكن قد فعلت ذلك بالفعل
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh  # أو bootstrap-vcpkg.bat على ويندوز

# تثبيت Drogon
./vcpkg install drogon

الطريقة 2: البناء من المصدر يدويًا

# تثبيت التبعيات (أوبونتو/ديبيان)
sudo apt-get install git cmake build-essential libssl-dev libjsoncpp-dev libboost-all-dev libsqlite3-dev libmariadb-dev libpq-dev

# استنساخ المستودع
git clone https://github.com/drogonframework/drogon.git
cd drogon

# إنشاء مجلد للبناء
mkdir build && cd build

# التكوين والبناء
cmake ..
make -j$(nproc)

# التثبيت في النظام
sudo make install

بعد التثبيت، يمكنك ربط Drogon في مشاريع CMake الخاصة بك:

find_package(Drogon REQUIRED)
target_link_libraries(my_app PRIVATE Drogon::Drogon)

3. البداية السريعة — مثال عملي بسيط

لنكتب خادم HTTP بسيطًا يرد بـ "Hello, World!" على أي طلب GET.

// main.cpp
#include <drogon/drogon.h>

int main() {
    // إنشاء نسخة من التطبيق
    drogon::app().registerHandler("/", [](const drogon::HttpRequestPtr& req,
                                          std::function<void (const drogon::HttpResponsePtr&)> &&callback) {
        // إنشاء استجابة
        auto resp = drogon::HttpResponse::newHttpResponse();
        resp->setBody("Hello, World!");
        callback(resp);
    });

    // تشغيل الخادم على المنفذ 8080
    drogon::app().addListener("0.0.0.0", 8080).run();
    return 0;
}

البناء والتشغيل:

g++ -std=c++17 -o hello main.cpp -ldrogon -ljsoncpp -lssl -lcrypto -lpthread
./hello

الآن افتح المتصفح وانتقل إلى http://localhost:8080. سترى العبارة المرجوة "Hello, World!".

4. الأساليب الأساسية

توصيات