الأنظمة الخلفية وواجهات API
منطق التطبيق والتكاملات
- PHP 8
- Laravel
- Python
- REST وJWT
أبدأ من أصل المشكلة، ثم أبني ما يلزم لمعالجتها فقط.
في السادسة عشرة بدأت بإعداد الشبكات المنزلية وتعلّمت العتاد وثبّتُّ Linux وكتبت نصوصًا صغيرة يدويًا. منذ 2014 أبني تطبيقات ويب وواجهات API بـ PHP وأتعامل مع قواعد البيانات. ما زلت أقرأ الشيفرة وخطط الاستعلام والسجلات بنفسي. أبني وكلاء ذكاء اصطناعي وروبوتات لأتمتة المهام المتكررة وتقليل الوقت والكلفة.
خارج الكود، أعشق الكتب.
بدأت بالشبكات المنزلية والعتاد وLinux في السادسة عشرة، وكتبت نصوصًا صغيرة يدويًا. ثم انتقلت إلى تطوير الويب بـ PHP عام 2014.
أجزاء من الويب أتعامل معها يوميًا.
منطق التطبيق والتكاملات
التخزين واسترجاع المعلومات
الخدمات والشبكات خلف التطبيق
الصفحات المعروضة وشيفرة المتصفح
مهام متكررة مع مراجعة بشرية
تغييرات يستطيع الفريق متابعتها
نماذج من مشكلات تقنية عملت عليها.
كانت نتائج البحث بالفارسية متفاوتة ويتأخر الفهرس عن قاعدة البيانات. وحّدت النص والترتيب وأبقيت Elasticsearch متزامنًا مع المصدر.
كان النموذج العلاقي يخدم كل أنماط القراءة. فصلت مصدر الحقيقة عن نموذج القراءة، واستخدمت keyset pagination وراجعت خطة الاستعلام.
رفعت المسارات المتكررة زمن الاستجابة واستهلاك الموارد. تتبعت السبب، وفصلت cache عن الطوابير، وحددت ميزانية لكل خدمة واستخدمت Octane حيث ناسب.
أبطأت التنبيهات المزدحمة والنشر المحفوف بالمخاطر الاستعادة. أضفت فحص صحة خفيفًا وتنبيهات مركزية وخطوات تراجع ومراجعة بلا لوم.
اختلف المرور حسب المسار وبرنامج الزحف. ضبطت proxy وحدود الطلبات، وقيّمت أثر CDN، وتتّبعت MTU وPMTUD في تشخيص المسارات الدولية.
لم تكن حدود وصول API والتنزيل واضحة. راجعت البيانات، واستخدمت روابط موقعة وصلاحيات لكل مستخدم، ووثقت الإبلاغ عن الثغرات.
وصلت بيانات المصادر العامة بتنسيقات مختلفة. استخدمت زواحف محدودة المعدل وطوابير، ووحدت السجلات في SQL، وجعلت المعالجة قابلة للتكرار.
احتاج عمل الوكلاء حدودًا للكلفة والموافقة. قارنت التشغيل الدفعي والمباشر، واستخدمت خطوات متعددة الوكلاء حين ناسبت، وأبقيت مراجعة الشيفرة والموافقة البشرية.
خطوات صغيرة وقرارات مكتوبة.
السجلات وخطة الاستعلام وcurl أولًا؛ ثم تغيير صغير قابل للتراجع، أوثقه في commit نفسه.
أراجع السجلات وخطة الاستعلام أو نتيجة الطلب قبل تغيير الشيفرة.
أجعل التغيير محددًا كي يستطيع زميل قياسه أو التراجع عنه.
أدوّن المهمة والقرار، وأضع الملاحظات مع commit نفسه.
أختار أبسط أداة تكفي، ثم أراجع كلفة تشغيلها.
ينفذ الوكيل الخطوات المتكررة؛ ويبقى الحكم والموافقة النهائية للإنسان.
أرفق runbook والمراقبة والتنبيهات والملاحظات كي يتابع الفريق العمل من دوني.
أمثلة على مواضع يمكنني المساعدة فيها.
إذا
ما أفعله
أوضح الخطوات وأؤتمت ما يتكرر، مع إبقاء المراجعة وسجل التنفيذ.
إذا
ما أفعله
أضبط فهرس البحث أو نموذج القراءة أو مسار المعالجة وفق طريقة استخدام البيانات.
إذا
ما أفعله
أتتبع الطلب وأعمل على تطبيق Laravel أو الطابور أو التكامل الذي يحتاج إلى تعديل.
إذا
ما أفعله
أحدد موضع الاختناق بالقياس وأقلل العمل أو الموارد المهدرة.
إذا
ما أفعله
أراجع الاعتمادية والمراقبة والاستعادة وضوابط الوصول.
إذا
ما أفعله
أبني الإضافة أو الأتمتة الناقصة في مسار النشر أو البيع.
مشكلتك غير موجودة هنا؟ اكتبها كما هي.
نطاق واضح وتسليم يستطيع الفريق مواصلته.
تذكر النتيجة المطلوبة والقيود والميزانية المتوقعة.
أعرض مسارين أو ثلاثة، مع كلفة كل منها وما يتضمنه.
نبني جزءًا يمكن تشغيله ومراجعته قبل توسيع النطاق.
نترك التوثيق والمراقبة والتنبيهات والخطوات التالية مع العمل.
يشمل عملي الأنظمة الخلفية وواجهات API والبحث والبيانات والأداء والكلفة والاعتمادية والأمن وأتمتة المهام. إذا لم تكن مشكلتك ضمن القائمة، اكتبها في النموذج.
يفيد في المهام المتكررة ذات المدخلات الواضحة والنتائج التي يمكن مراجعتها. تبقى القرارات ذات الأثر والموافقة النهائية للإنسان. إذا تجاوزت كلفة فحص النتيجة كلفة إنجاز المهمة، فالوكيل غير مناسب لها.
أبدأ بالسجلات وخطط الاستعلام واستهلاك الموارد. أعالج موضع الاختناق المقاس، وأختار أبسط أداة مناسبة، ثم أقارن النتيجة بكلفة التشغيل.
نعم. نتفق قبل البدء على طريقة كتابة المهام والمراجعة والصلاحيات والتسليم.
تبقى التغييرات قابلة للمراجعة في Git. وقد يشمل التسليم runbook ومراقبة وتنبيهات وقرارات مكتوبة وخطوات تالية.
أرسل المشكلة والنتيجة المطلوبة والقيود والميزانية المتوقعة. أكتب الخيارات ومقايضاتها لنناقشها.
أعمل عن بُعد مع فرق من أي مكان في العالم. أرسل الهدف والقيود والوضع الحالي ونطاق الميزانية، ونبدأ بتقييم مكتوب.