إعادة تطوير التطبيقات القديمة
«نعيد بناءه من الصفر» أغلى إجابة، وليست دائمًا الصحيحة. بين ترك التطبيق كما هو وإعادة بنائه كاملًا أربعة مسارات، لكل منها تكلفته ومخاطره. نقيّم تطبيقك ونحدد أي أجزائه تحتاج إلى أي مسار، ثم ننفذ الانتقال دون أن يتوقف عملك.
علامات أن تطبيقك يحتاج إلى إعادة تطوير
تقنية أو إطار عمل لم يعد مدعومًالا تحديثات أمنية، ولا مطورون يعرفونه.
كل ميزة جديدة تستغرق أضعاف المتوقعلأن الكود متشابك.
مشكلات أداء لا يحلها التحسينلأن السبب في البنية نفسها.
المتاجر ترفض التحديثاتلعدم التوافق مع المتطلبات الحديثة.
قواعد العمل مكتوبة داخل الكودكل تغيير في سعر أو سياسة يحتاج إلى مبرمج.
تجربة مستخدم قديمةلا تنافس، والعملاء يتركون.
حالات نعالجها في إعادة التطوير
التقنية
- تطبيق قديم Legacy
- إطار عمل قديم
- مكتبات لم تُحدَّث
- عدم التوافق مع المتاجر
الكود
- كود يصعب صيانته
- منطق عمل مدمج في الكود
- لا توثيق
- لا اختبارات
الأداء والتوسع
- مشكلات أداء
- اختناقات في الـ Backend
- مشكلات توسع
- تصميم قاعدة بيانات ضعيف
الأمن
- ثغرات في مكتبات قديمة
- مصادقة ضعيفة
- أسرار داخل الكود
- غياب سجلات التدقيق
التجربة
- تجربة مستخدم ضعيفة
- تصميم لا يناسب الأجهزة الحديثة
- دعم عربي ناقص
- إمكانية وصول ضعيفة
التشغيل
- نشر يدوي
- لا بيئة اختبار
- لا مراقبة
- اعتماد على خادم واحد
Refactoring أم Re-platforming أم Re-engineering أم Rebuilding؟
لكل مسار مكانه، وكثيرًا ما يجمع المشروع أكثر من مسار لأجزاء مختلفة:
| المسار | ما هو | متى يناسب | التكلفة والمخاطرة |
|---|---|---|---|
| Refactoring: إعادة الهيكلة | تحسين بنية الكود دون تغيير سلوكه | الكود صالح لكنه متشابك، والتقنية ما زالت مدعومة | الأقل، ويُنفذ تدريجيًا مع العمل |
| Re-platforming: نقل المنصة | نقل النظام إلى منصة أو بنية أحدث بتعديلات محدودة | التقنية أو الاستضافة هي المشكلة لا المنطق | متوسطة، والمنطق يبقى كما هو |
| Re-engineering: إعادة الهندسة | إعادة تصميم أجزاء من النظام وبنيته مع الحفاظ على وظائفه | المعمارية تمنع التوسع أو الأداء | أعلى، ويُنفذ جزءًا بعد جزء |
| Rebuilding: إعادة البناء | بناء جديد بالكامل بناءً على فهم القديم | القديم لا يمكن إنقاذه أو تغيرت متطلبات العمل جذريًا | الأعلى، ويحتاج إلى خطة انتقال دقيقة |
ما تستلمه
- تقرير التقييمحالة كل جزء والمسار المقترح له.
- توثيق المنطق الحاليالقواعد المدفونة في الكود، مكتوبة.
- خطة الانتقالمراحل، وانتقال للبيانات، وتشغيل موازٍ.
- النظام المطوربتقنية وبنية حديثتين.
- ترحيل البياناتمع التحقق من سلامتها.
- الوثائق والاختباراتلما بُني.
ما يمكن ربطه بالخدمة
كيف ننتقل دون أن يتوقف عملك
طبقة أمام النظام القديم تنقل الوظائف إلى الجديد واحدة تلو الأخرى، حتى لا يبقى من القديم شيء.
نستخرجها من الكود والبيانات وسلوك النظام، ونوثقها ونعتمدها معك قبل إعادة كتابتها.
ترحيل مختبر على نسخة، ومطابقة للأرقام، وتشغيل موازٍ قبل الإيقاف.
الإصدار الجديد يُنشر تحديثًا للتطبيق نفسه في المتجر، فلا يفقد المستخدمون حساباتهم أو تقييمات التطبيق.
نبدأ بالجزء الأعلى أثرًا والأقل مخاطرة، فتظهر النتيجة مبكرًا.
مراحل التنفيذ
- تقرير التقييم
التقييم
الكود والبنية والبيانات والأعمال.
- قرار معتمد
المسار لكل جزء
من المسارات الأربعة.
- وثيقة المنطق
توثيق المنطق
قواعد العمل الحالية.
- خطة معتمدة
خطة الانتقال
المراحل والبيانات والتشغيل الموازي.
- أجزاء منقولة
التنفيذ المرحلي
جزء بعد جزء.
- نظام حديث
إيقاف القديم
بعد التحقق الكامل.
ما نحتاجه منك للبدء
لا يلزم أن يكون كل ذلك جاهزًا. ما ينقص نستكمله معك في جلسة التحليل.
- الوصول إلى الكود والبيانات: والبيئات.
- المشكلات الحالية: ما يدفعك إلى إعادة التطوير.
- خطط العمل القادمة: لأن النظام الجديد يُبنى لها.
- من يعرف النظام القديم: إن وجد، لتوثيق المنطق.
أسئلة تحسمها قبل التنفيذ
نساعدك على الإجابة عنها، لأن كل إجابة تغير النطاق والتكلفة.
مشكلات نمنعها من البداية
الجودة والأمن والتشغيل
الجودة
بنية حديثة بمعايير كود واختبارات من البداية.
الأمن
معالجة الثغرات القديمة، وضوابط حديثة.
قابلية التوسع
بنية تستوعب خطط العمل القادمة.
الاختبارات
مقارنة سلوك الجديد بالقديم قبل الانتقال.
التوثيق
المنطق والمعمارية والتشغيل.
الدعم
مراقبة بعد الانتقال وتطوير مستمر.
أسئلة شائعة
حين تصبح تكلفة صيانته وتطويره أعلى من تكلفة بديله، أو حين تمنعه التقنية من الاستمرار. التقييم يضع ذلك بالأرقام.
لا في الانتقال التدريجي. القديم يعمل حتى يحل الجديد محل كل جزء.
لا. نرحل البيانات، ونحدّث التطبيق في المتجر نفسه.
من الأخف إلى الأثقل: تحسين الكود، ثم نقل المنصة، ثم إعادة تصميم أجزاء، ثم بناء جديد. التفاصيل في الجدول أعلاه.
نعم، وهي فرصة جيدة، مع مراعاة ما اعتاده المستخدمون.
خدمات مرتبطة
أخبرنا بما يدفعك إلى إعادة التطوير
ونقترح تقييمًا يحدد المسار الأنسب لكل جزء من تطبيقك.