عن المؤسس22 سبتمبر 20264 دقائق قراءة

عبدالله عبدالرحيم سنكر: ليش مشروعك يحتاج بيئة تطوير واختبار وإنتاج؟

عبدالله عبدالرحيم سنكر يشرح ليش يحتاج مشروعك ثلاث بيئات: تطوير يكسر فيه المبرمج بحرية، واختبار يشبه الإنتاج، وإنتاج ما يُجرَّب فيه شي، مع علامات الفصل الحقيقي بينها.

عبدالله عبدالرحيم سنكر — بيئة الاختبار
AZHAL

بيئة الاختبار

عبدالله عبدالرحيم سنكر

تعديل صغير على صفحة الدفع. المطوّر جرّبه على جهازه واشتغل، فرفعه مباشرة للموقع الحي. بعد ساعة يتصل عليك عميل يقول إنه ما قدر يدفع. هذي القصة تتكرر في مشاريع كثيرة، وسببها مو مطوّر سيئ، سببها إن المشروع ما فيه مكان آمن يتجرّب فيه التعديل قبل ما يوصل للناس. عبدالله عبدالرحيم سنكر يبدأ مشاريعه بثلاث بيئات منفصلة، وفي هذي المقالة يشرح وش شغلة كل وحدة، وليش ما تقدر وحدة منها تغني عن الثانية.

البيئة نسخة كاملة من نظامك تشتغل لحالها: كود، وقاعدة بيانات، وإعدادات، وخدمات خارجية مربوطة فيها. نفس الكود يقدر يشتغل في ثلاث بيئات، والفرق بينها في الإعدادات والبيانات ومين يستخدمها. التقسيم المعروف: بيئة التطوير (Development) اللي يشتغل فيها المبرمج، وبيئة الاختبار أو ما يسمّونها Staging وهي نسخة تشبه الإنتاج قدر الإمكان، وبيئة الإنتاج (Production) اللي يستخدمها عملاؤك الحقيقيون. بعض الفرق تضيف بيئات أكثر، لكن هذي الثلاث هي الحد الأدنى اللي يحمي مشروعك.

التطوير: مكان الخربطة المسموحة

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

الاختبار: البروفة قبل الافتتاح

هذي البيئة اللي يتجاهلها كثير من المشاريع الصغيرة عشان يوفّرون تكلفة خادم، وهي غالباً أهم الثلاث. وظيفتها تجاوب سؤالاً واحداً: لو نزّلنا هذا التعديل الحين، وش بيصير؟ وعشان تجاوب صح، لازم تشبه الإنتاج في كل شي ممكن: نفس نظام التشغيل، ونفس إصدار قاعدة البيانات، ونفس طريقة النشر، ونفس إعدادات الخادم. الفرق المسموح: بيانات غير حقيقية، ومفاتيح خدمات تجريبية، وعدد مستخدمين محدود.

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

الإنتاج: المكان اللي ما يُجرَّب فيه

في بيئة الإنتاج عملاء حقيقيون، وفلوس حقيقية، وبيانات ما ترجع لو انحذفت. فقواعدها عكس بيئة التطوير تماماً:

  • ما أحد يعدّل فيها يدوياً. أي تغيير يمشي نفس الطريق: كود مراجَع، اختُبر في Staging، ثم نُشر بخطوات معروفة.
  • الصلاحيات ضيقة: عدد قليل يقدر يوصل لقاعدة البيانات مباشرة، وكل وصول مسجّل.
  • نسخ احتياطية دورية، وتجربة استرجاع فعلية بين فترة وثانية، لأن النسخة اللي ما جرّبت ترجّعها مجرد أمل.
  • مراقبة للأخطاء والأداء، عشان تدري بالمشكلة قبل ما يدق جوالك.
  • خطة رجوع: لو النسخة الجديدة فيها مشكلة، ترجع للي قبلها خلال دقائق، مو ساعات.

علامات الفصل الحقيقي، مو الشكلي

وجود ثلاث روابط ما يكفي. فيه مشاريع عندها Staging بالاسم، لكنه مربوط بنفس قاعدة بيانات الإنتاج، فأي «تجربة» فيه تكتب على بيانات العملاء الحقيقيين. الفصل اللي يحميك له علامات واضحة:

  • قاعدة بيانات مستقلة لكل بيئة، وما فيه بيئة تقرأ من قاعدة غيرها.
  • أسرار منفصلة: مفتاح بوابة الدفع الحقيقي موجود في الإنتاج فقط، ومحفوظ في إعدادات الأسرار للخادم، مو في ملف داخل المستودع.
  • تمييز بصري: شريط ملوّن أعلى الصفحة مكتوب فيه «بيئة اختبار»، عشان ما يخلط أحد بين تبويبين ويحذف شي حقيقي وهو يحسب نفسه يجرّب.
  • بيانات واقعية بدون ما تكون حقيقية: لو احتجت نسخة من بيانات الإنتاج لاختبار الأداء، تُخفى فيها الأسماء والجوالات والإيميلات قبل ما تنتقل.
  • منع الفهرسة: بيئة الاختبار خلف كلمة مرور، أو على الأقل ممنوعة من محركات البحث، عشان ما تطلع نسخة ناقصة من موقعك في نتائج جوجل.
  • إشعارات معزولة: رسائل Staging وإيميلاتها تروح لصندوق اختبار، ما توصل لجوال عميل الساعة ثلاث الفجر.

وفي تطبيقات الجوال؟

نفس الفكرة بأدوات مختلفة. في Flutter تبني نكهات (flavors) للتطبيق: نسخة تطوير ونسخة اختبار ونسخة إنتاج، لكل وحدة اسمها ومعرّف الحزمة حقها وأيقونتها، وكل وحدة تكلّم خادمها. فتقدر تثبّت نسخة الاختبار جنب نسخة الإنتاج على نفس الجوال بدون تعارض، وتعرفها من الأيقونة. وتوزيع نسخة الاختبار يكون عبر TestFlight في آيفون، والاختبار الداخلي في Google Play، قبل ما تنرفع النسخة النهائية للمتجر. والفرق المهم عن الويب: نسخة الجوال اللي نزلت ما تقدر تسحبها من أجهزة الناس، فالاختبار قبلها أثمن.

هل مشروعي الصغير يحتاج كل هذا؟

السؤال منطقي، والجواب غالباً نعم، لكن بحجم مناسب. بيئة الاختبار ما يلزم تكون بقوة خادم الإنتاج، يكفي إنها تشبهه في الإعدادات والإصدارات. ومنصات الاستضافة الحديثة سهّلت الموضوع: كثير منها يطلع رابط معاينة لكل فرع في المستودع تلقائياً، فتشوف التعديل وتجرّبه قبل ما يندمج. والتكلفة الإضافية في الغالب بسيطة، خصوصاً إذا قارنتها بساعة واحدة يتوقف فيها الدفع في متجرك.

في منصة أزهل الرقمية الترتيب ثابت: كل تعديل يمر بثلاث محطات، ولا يوصل للعميل شي ما شافه أحد قبله في بيئة تشبه الحقيقة. وهذا اللي يخلّي عبدالله عبدالرحيم بن سنكر الكندي ينشر بثقة بدل ما ينشر ويدعي. البيئات الثلاث مو بيروقراطية تقنية، هي الفرق بين «اكتشفنا الخطأ» و«اكتشفه عملاؤنا».

عندك فكرة؟ الاستشارة الأولى علينا

كلّم عبدالله مباشرة على واتساب — رسالتك توصل له هو، مو لرد آلي. نسمع فكرتك ونقول لك وش تحتاج وكم تكلّف، ببلاش.

مقالات ذات صلة

كل المقالات
عبدالله عبدالرحيم سنكر — الذكاء الاصطناعي للمحامين
AZHAL

الذكاء الاصطناعي للمحامين

عبدالله عبدالرحيم سنكر

22 سبتمبر 20265 دقائق قراءة

الذكاء الاصطناعي للمحامين: عبدالله عبدالرحيم سنكر يفرز الآمن من الخطر

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

اقرأ المقال
عبدالله سنكر — تسعير الخدمات التقنية
AZHAL

تسعير الخدمات التقنية

عبدالله سنكر

22 سبتمبر 20265 دقائق قراءة

عبدالله سنكر: كيف تسعّر خدماتك التقنية كمستقل بدون ما تخسر؟

طريقة عبدالله سنكر في تسعير الخدمات التقنية للمستقل: احسب أرضيتك الحقيقية، وقدّر المشروع بثلاثة أرقام، وسعّر المجهول، وحدّد وش يشمل السعر قبل ما ترسله للعميل.

اقرأ المقال
عبدالله عبدالرحيم سنكر — سرعة صفحة الهبوط
AZHAL

سرعة صفحة الهبوط

عبدالله عبدالرحيم سنكر

22 سبتمبر 20264 دقائق قراءة

عبدالله عبدالرحيم سنكر: كل ثانية تأخير في صفحتك تدفع ثمنها في الإعلان

عبدالله عبدالرحيم سنكر يتتبّع رحلة الزائر من لحظة الضغط على الإعلان إلى أول تفاعل، ويبيّن وين تضيع ميزانيتك بسبب بطء الصفحة، وكيف تقيسه وتصلحه قبل ما ترفع الميزانية.

اقرأ المقال