تطبيقات Laravel وPHP
تطبيقات Laravel مبنية لكي تُسلَّم.
بوابات العملاء، والفوترة بالاشتراك، والأدوات الداخلية، وواجهات API التي تربطها بكل ما تستخدمه غيرها. مكتوبة بأنواع محددة، ومختبَرة حيث يهم ذلك، وموثّقة بما يكفي لتستطيع استبدالي دون متاعب — وهذا هو التعريف الصادق الوحيد لمشروع مكتمل.
01النطاقما أبنيه
أنواع التطبيقات التي يعنيها هذا عادةً.
بوابات العملاء والشركاء
مكان يسجّل فيه عملاؤك الدخول ليروا بياناتهم الخاصة — الطلبات والفواتير والمستندات والاستهلاك والصلاحيات. نادرًا ما تكون الشاشات هي الجزء الصعب. الصعب هو نموذج الصلاحيات وسجل التدقيق وما يحدث حين يحتاج حساب واحد إلى ستة مستخدمين بصلاحيات مختلفة.
الفوترة بالاشتراك وبالفواتير
الخطط، والاحتساب التناسبي، وشروط الدفع، ومتابعة المتأخرات، والضرائب، وفواتير PDF، وتقرير المطابقة الذي يثق به فريقك المالي فعلًا. أبني الفوترة على دفتر قيد مزدوج لا على إجمالي تراكمي، لأن الإجمالي التراكمي يستحيل تدقيقه في اليوم الذي يعترض فيه أحد على خصم.
أدوات داخلية تحل محل جدول بيانات
سير العمل الذي يعيش اليوم في جدول بيانات مشترك، بتعارضات النسخ فيه والشخص الوحيد الذي يفهمه. تحويله إلى تطبيق غالبًا ما يكون أعلى الأعمال عائدًا يمكن لشركة أن تطلبه، وعادةً أصغرها حجمًا.
واجهات API والتكاملات
نقاط نهاية REST أو GraphQL لواجهتك الأمامية أو تطبيقك للجوال أو أحد شركائك. إضافة إلى أعمال التكامل التي تربط Laravel بكل ما تستخدمه غيره — نظام ERP أو CRM أو مزوّد دفع أو نظام مستودعات.
تسلّم قاعدة شيفرة لشخص آخر
أبدأ هذه المشاريع بأسبوع من القراءة فقط: أشغّل الاختبارات إن وُجدت، وأرسم خريطة نماذج المجال، وأكتب ما أجده — بما في ذلك الأجزاء التي تقلقني. تحصل على هذا التقييم سواء واصلت أم لا، فلا تدفع أبدًا لمجرد أن يُقال لك إن الشيفرة جيدة.
02المنهجأين تذهب الأموال
على ماذا أنفق ميزانيتك.
تضيع معظم ميزانيات التطبيقات في المواضع الثلاثة نفسها، لذا يذهب الاهتمام إليها لا إلى الأجزاء التي تبدو جميلة في العرض التجريبي.
نموذج البيانات قبل أي شيء
قرارات بنية قاعدة البيانات هي القرارات التي لا يمكن التراجع عنها بتكلفة زهيدة. عملية نقل تقسم جدولًا واحدًا إلى ثلاثة بعد ثمانية عشر شهرًا، مع بيانات عملاء حقيقية ومجموعة تقارير تعتمد عليه، هي أغلى يوم في حياة المشروع. أفضّل أن أقضي يومين إضافيين على بنية البيانات على أن أقضي أسبوعين إضافيين في تلك العملية.
كل ما يمسّ المال أو الصلاحيات
الفوترة والأدوار وكل ما يكتب في دفتر حسابات تحظى باختبارات. ليس من أجل شارة تغطية، بل حتى يستطيع الشخص التالي تغيير منطق التسعير دون أن يفسد فواتير الربع الماضي بصمت. وفي ما عدا ذلك أختبر المسارات الشائكة وأترك البديهية.
ما يحدث حين يتعطل شيء آخر
لا يكتمل التكامل حين يعمل. بل يكتمل حين يتصرف بعقلانية بينما لا يستجيب النظام الآخر. وهذا يعني مهامّ في طوابير، ومحاولات إعادة محدودة، ومفاتيح عدم تكرار، وسجل أخطاء يستطيع إنسان قراءته — حتى تؤخّر ظهيرةٌ سيئة لدى مورّد بياناتِك بدلًا من أن تُضيّعها.
لا شيء من هذا غريب. إنه Laravel عادي مكتوب بعناية. ويظهر الفرق الذي يصنعه في السنة الثانية — وهي بالضبط الفترة التي تكون فيها معظم الوكالات قد رحلت، وتكتشف فيها ما الذي اشتريته فعلًا.
03التسليمما تملكه في النهاية
المُخرَج ليس مجرد تطبيق يعمل.
- 01
المستودع
- في مؤسستك لا في مؤسستي، منذ أول عملية حفظ. بسجل كامل، ورسائل حفظ تشرح لماذا، لا ماذا فقط.
- 02
وثيقة البنية
- بضع صفحات تغطي نماذج المجال، والقرارات التي اتخذتها، والبدائل التي رفضتها ولماذا. هذه الوثيقة توفّر على مطوّرك التالي أسبوعين.
- 03
بيئة محلية قابلة للتشغيل
- يجب أن ينتقل المطوّر الجديد من نسخ المستودع إلى تطبيق يعمل في أقل من ساعة، مع بيانات أولية واقعية. إن استغرق ذلك يومًا، فالمشروع لم يكتمل.
- 04
ملاحظات النشر والتراجع
- كيف يُنشر، وما متغيرات البيئة، وأين تذهب النسخ الاحتياطية، وكيف تتراجع في الثانية فجرًا دون أن تتصل بي.
04الأسئلةأسئلة متكررة، وإجابات صريحة
ما يسأل عنه الناس قبل التعاقد معي.
هل يجب أن يكون هذا تطبيق Laravel أم موقع WordPress؟
إن كانت المهمة الأساسية نشر صفحات يحررها أشخاص غير تقنيين، فإن WordPress عادةً أرخص وأسرع. وإن كانت المهمة الأساسية أن يسجّل المستخدمون الدخول ليفعلوا شيئًا — يطلبون أو يحجزون أو يوافقون أو يستخرجون تقارير — فهذا تطبيق. وحشر تطبيق داخل WordPress يكلّف عمومًا على مدى عامين أكثر من بنائه كما ينبغي مرة واحدة.
هل يمكنك تسلّم قاعدة شيفرة قائمة؟
نعم، وهذا جزء كبير من عملي. يبدأ بأسبوع من القراءة فقط يُنتج تقييمًا مكتوبًا: ما الموجود، وما الخطِر، وما الذي سأفعله أولًا. تحتفظ بهذه الوثيقة أيًّا كان قرارك بعدها.
هل تكتب اختبارات؟
لكل ما يتعلق بالمال أو الصلاحيات أو سلامة البيانات، نعم. لا ألهث وراء نسبة تغطية — فمجموعة مليئة باختبارات تتحقق من أن دوال القراءة تُرجع قيمًا هي تكلفة صيانة تتظاهر بالجودة. وجود الاختبارات هو لكي يستطيع أحدهم تغيير فوترتك دون أن يكسرها.
كيف تتعامل مع النشر والاستضافة؟
بما لديك بالفعل — خادم VPS أو Forge أو Ploi أو Vapor أو حاويات. وإن لم يكن لديك شيء بعد، فسأوصي بأبسط ما يناسب حجم زياراتك. ولمعظم تطبيقات الأعمال، يكون ذلك خادمًا واحدًا مهيّأً جيدًا مع نسخ احتياطية مُدارة لقاعدة البيانات، لا عنقودًا من الخوادم.
هل يمكنك الربط مع نظام ERP أو CRM لدينا؟
عادةً نعم. والسؤال الحقيقي ليس أبدًا إن كان ذلك ممكنًا، بل كيف يتصرف الربط حين يكون النظام الآخر بطيئًا أو متوقفًا. مهامّ في طوابير بمحاولات إعادة محدودة وسجل أخطاء مقروء، حتى يؤخر تعطّلهم بياناتك بدلًا من أن يضيّعها.
ماذا لو احتجت إلى تغييرات بعد الإطلاق؟
المستودع والتوثيق ملكك، فتستطيع التعاقد مع من تشاء. وإن فضّلت الاستمرار معي، فأقدّم باقة ساعات شهرية. ما أحاول تجنبه هو أن أصبح ضروريًا بنيويًا — فالتطبيق الذي لا يستطيع صيانته أحد سواي عبء عليك، لا حصن لي.
الخطوة التالية
صِف سير العمل الذي تريد استبداله.
حتى الوصف التقريبي يكفيني لأخبرك إن كان العمل يستغرق أسبوعين أم ربعين من السنة — وأي الأجزاء يمكنك تأجيلها في النسخة الأولى.