Mark Stratmann
ABout Background

حول هذا الموقع

لماذا أنشأت هذا الموقع

لماذا يوجد هذا الموقع؟

مشكلة قديمة في تعلّم أي تقنية جديدة هي أن معظم الوثائق والأمثلة التي قد تحصل عليها على الإنترنت أو من أنظمة الذكاء الاصطناعي تكون سطحية جدًا لدرجة أنها لا تعطيك أي فكرة عمّا إذا كانت التقنية — أو طريقتك في تنفيذها — ستصمد أمام عبء عمل حقيقي ومعقّد. ومن أمثلة ذلك كثرة أمثلة قوائم المهام.

لديّ مشروع SASS مخطط له قائم على عدة افتراضات تقنية تحتاج إلى اختبار قبل محاولة بناء المشروع الحقيقي أساسًا، وموقع ملف شخصي كهذا، مدفوع بواجهة خلفية كاملة لنظام إدارة محتوى (CMS)، معقّد بما يكفي ليستحق إعدادًا إنتاجيًا مناسبًا وبسيط بما يكفي ألا يستغرق تجميعه وقتًا طويلًا؛ ومع فائدة إضافية: إذا سارت الأمور على ما يرام فسأحصل على موقع ملف شخصي يعمل بكفاءة وسيكون منصة اختبار جيدة لتجارب تقنية إضافية.

Cloudflare كهدف للنشر

Cloudflare Workers https://workers.cloudflare.com/ تبدو، للوهلة الأولى، طريقة رخيصة للغاية لنشر تطبيق معقّد. يبدو تطوير الواجهة الخلفية بسيطًا ومتينا، وتبدو حزمة OpenNext https://opennext.js.org/ وكأنها توفّر طريقة فعّالة لتطوير واجهتك الأمامية في Next.js https://nextjs.org/ والنشر على Cloudflare.

لا أظن أن هذا الموقع سيجذب الكثير من الزيارات البشرية؛ ومع ذلك، سأحاول دفع أكبر قدر ممكن من زيارات البحث على الويب وزيارات زواحف الذكاء الاصطناعي إليه. بهذه الطريقة، يفترض أن أتمكن من معرفة التكلفة الفعلية لتشغيل موقع مزدحم على منصة Cloudflare.

تعقيد هذا الموقع أكثر مما ينبغي

الواجهة الخلفية لإدارة المحتوى (CMS)

بكل صراحة، هذا الموقع، بصورته الحالية، يمكن تجميعه باستخدام وكيل برمجة خلال بضع ساعات؛ لكن النظام الجاد لا ينبغي أن يحتاج إلى عملية نشر لتغيير المحتوى الأساسي. لذلك، يستخدم هذا الموقع نظام إدارة محتوى كاملًا مبنيًا على Payload CMS (https://payloadcms.com/) ويتم نشره كـ Cloudflare Worker منفصل.

Payload نفسه يستخدم قاعدة بيانات SQL، والتي بدورها تحتاج إلى نشرها كنسخة CloudFlare D1 SQLite database instance https://developers.cloudflare.com/d1/، وإدارتها بشكل صحيح عبر ترحيلات قاعدة البيانات لدعم دورة حياة التطوير.

الترجمات المؤتمتة

يدعم هذا الموقع 20 لغة. وبما أن الموقع مجرد هيكل بسيط لمحتوى الـ CMS، فإن جانب i18n يتم التعامل معه بواسطة وكيل برمجة (Co-pilot و Claude Opus 4.5) أثناء التطوير.

ويبقى أن كل محتوى الـ CMS الحالي والمستقبلي يحتاج إلى ترجمة تلقائية كلما تم تغيير أي محتوى باللغة الإنجليزية.

عامل قائم على الطوابير والـ Cron

يتطلب شرط الترجمة عملية معقولة التعقيد تقوم بما يلي:

  • ستعمل وفق مؤقّت Cron.
  • تحديد أي محتوى يحتاج إلى ترجمة جديدة.
  • تنفيذ الترجمة بشكل موثوق.
  • التعافي بشكل موثوق من أي فشل.

لذلك، تُستخدم نسخة CloudFlare D1 أخرى لتتبع أعمال الترجمة، وتُستخدم Cloudflare queues (https://developers.cloudflare.com/queues/) مع نمط منتِج-مستهلك قائم على cron لإدارة المهام وتوسيعها. يتم استدعاء واجهة OpenAI’s gpt-5.2 API لإجراء الترجمات وAI.SDK https://ai-sdk.dev/ يربط كل ذلك معًا.

بالنسبة لهذا الموقع فهذا مبالغة، لكن أي نظام إنتاجي، بأي حجم، يحتاج إلى نمط متين لتنسيق المعالجة في الخلفية.

الإصدارات السابقة من هذا الموقع

لقد أنجزت هذا الموقع مرتين بالفعل كأداة لتعلّم تقنيات جديدة:

2013 - تعلّم Ruby و AWS

  • Ruby on Rails v4.0.0.
  • تنسيق Bootstrap v3.
  • CoffeeScript لواجهة المستخدم.
  • نمط واجهة أمامية Backbone Marionette VMC.
  • تم نشره على مضيف AWS.

2017 - تعلّم React

  • React v16.0.0 لواجهة المستخدم.
  • Redux و Thunk للعمليات غير المتزامنة.
  • Semantic UI للتنسيق.

ما التالي

تم ربط الموقع بشكل صحيح لتحسين محركات البحث (SEO)، وهناك حاجة إلى وتيرة منتظمة من المحتوى الجديد لدفع زيارات الزواحف. سأقوم بنشر مقالات أكثر تفصيلًا حول التقنيات والحلول المختلفة المستخدمة.