عن المشروع
Gatsby هو إطار عمل للويب مجاني ومفتوح المصدر يعتمد على React، تم إصداره بموجب ترخيص MIT ويتم توزيعه على npm كحزمة `gatsby`. وفقاً لملف README الخاص به، يهدف إلى الجمع بين التحكم والقابلية للتوسع للمواقع التي يتم رندرتها ديناميكياً مع سرعة توليد المواقع الثابتة، مما يساعد المطورين على بناء مواقع وتطبيقات غنية بالمحتوى وعالية الأداء.
**طبقة البيانات**
يمكن لـ Gatsby سحب المحتوى من أي مصدر بيانات: ملفات Markdown، أو أنظمة headless CMS مثل Contentful أو WordPress، أو واجهات REST و GraphQL APIs. تقوم إضافات المصدر (Source plugins) بتحميل البيانات، ثم يعمل المطورون من خلال واجهة GraphQL موحدة بغض النظر عن الواجهة الخلفية.
**خيارات الرندرة**
يوثق المشروع ثلاثة مناهج للرندرة يمكن اختيارها على أساس كل صفحة: توليد المواقع الثابتة (SSG)، والتوليد الثابت المؤجل (DSG)، والرندرة من جهة الخادم (SSR). يقدم ملف README هذه الدقة كوسيلة للموازنة بين الأداء والإنتاجية لكل صفحة بدلاً من تطبيقها بشكل عام.
**ما وراء المواقع الثابتة**
توصَف مواقع Gatsby بأنها تطبيقات React كاملة الوظائف، لذا يمكن لنفس إطار العمل أن يخدم المدونات، ومواقع التجارة الإلكترونية، ولوحات تحكم المستخدمين. وبما أن المخرجات ثابتة، يمكن استضافة المواقع على CDN بدون خادم، ويشير ملف README إلى أن العديد من المواقع يمكن استضافتها مجاناً على Netlify وخدمات مماثلة.
**ميزات الأداء**
يذكر ملف README أن Gatsby يقوم بأتمتة تقسيم الكود (code splitting)، وتحسين الصور، ودمج الأنماط الحرجة (inlining of critical styles)، والتحميل الكسول (lazy-loading)، وجلب الموارد مسبقاً (prefetching)، بحيث يكون ضبط الأداء مدمجاً إلى حد كبير بدلاً من أن يكون يدوياً.
**البدء**
تم توثيق مسارين سريعين. عبر الإنترنت: يقوم زر "Deploy to Netlify" بإنشاء موقع يعمل بالإضافة إلى مستودع مرتبط يعيد البناء تلقائياً عند الدفع (push). محلياً: قم بتشغيل `npm init gatsby` لإنشاء هيكل المشروع، ثم `cd my-gatsby-site/` و `npm run develop` لبدء خادم تطوير على `http://localhost:8000` مع تحديثات مباشرة عند تحرير ملفات مثل `src/pages/index.js`. كما توجد روابط لصفحات البدء السريع، والدروس التعليمية، والإضافات، والقوالب الجاهزة (starters)، ونماذج الأعمال في أعلى ملف README.
**التوثيق والمجتمع**
يشير ملف README إلى درس تعليمي متعمق لا يفترض وجود مستوى سابق من القدرات، بالإضافة إلى أقسام توثيق لأدلة "كيفية القيام بـ"، والمواد المرجعية، والأدلة المفاهيمية. كما توجد روابط لملاحظات الإصدار وتوثيق الدعم لكل نسخة، وتغطي أدلة الهجرة الترقية من v2 إلى v3، ومن v3 إلى v4، ومن v4 إلى v5. يتم توفير ميثاق سلوك ودليل للمساهمة، ويتم تنظيم المستودع كـ monorepo مدار بواسطة Lerna يحتوي على حزم متعددة يتم نشرها على npm بشكل منفصل. وتعد المشكلات والمناقشات وطلبات السحب (pull requests) جزءاً من سير عمل المجتمع الموصوف.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.