محمد النعمان
محمد النعمان

@mhdprog

9 تغريدة Jan 15, 2024
هل تخيلت في مرة من المرات ان اختيارك لطريقة البرمجة في تطبيقك تحدد امكانية نجاحك من فشلك ؟
في البرمجة لدينا طريقتين لا ثالثة لهما وهم:
- Tactical Programming
- Strategic Programming
لكل منهما استخدام في وقت و طريقة مناسبة ولا يجب الخلط بينهما في أي حال من الأحوال...
ماهي الـ Tactical Programming ؟
هذه الطريقة تعتمد على مفهوم "دام الكود شغال فاتركه على ماهو" و يكون التركيز على تصميم كود برمجي شغال بدون اخطاء او مشاكل.
يكون العامل الاساسي في هذه الطريقة هو "توفير الوقت"، فيتم قضاء وقت اطول في البرمجة و أقصر في التحليل والتخطيط.
فمثلا، تتناسب هذه الطريقة عندما نجد مشكلة في التطبيق ويجب حلها بشكل فوري لان المشكلة تعطّل جزئية مهمة في دورة حياة المستخدم داخل التطبيق ومن الصعب تأجيل حلها، فتكون طريقة Tactical Programming مناسبة جدا.
ويمكن الرجوع إليها بعد إصدار التحديث الجديد لكتابتها بشكل مختلف بدون النظر للوقت.
لكن توجد مشكلة...
إستخدام هذه الطريقة بشكل متكرر و مستمر يجعل من تطبيقنا الحالي بمستوى تعقيد عالي جدا يجعله من الصعب علينا التطوير عليه او التعديل مستقبلا!
وهذا يهدد بقائك في السوق و استحواذك على حصص اكبر، ويرفع من مستوى الـ Complexity الموجودة في نظامك ويعقّد أي عملية تطوير مستقبلية من ناحية التكلفة و الوقت.
للإستزادة اكثر من مصطلح Complexity، ممكن الاطلاع على هذه التغريدات: x.com
إذا، ماهي الـ Strategic Programming ؟
هذه الطريقة تقوم على مبدأ ابراهام لينكولن عندما قال: أعطني ست ساعات لقطع شجرة، وسأقضي الأربع ساعات الأولى في شحذ الفأس.
يتم في هذه الطريقة قضاء وقت اطول في التخطيط و التحليل بدلا من الكتابة وهو عكس النهج الذي تتبعه طريقة الـ Tactical Programming.
ماهي النتيجة التي ممكن ان نحصل عليها عندما نستخدم هذه الطريقة؟
بما اننا نعمل على التخطيط والتحليل، فبطبيعة الحال سوف ينتج لدينا تطبيق ذو بنية تقنية قوية واستدامة طويلة الأمد.
وتعتبر هذه الطريقة هي الأنسب عندما نريد ان نبني تطبيقا من الصفر تماما.
وعلى عكس الـ Tactical Programming...
من الصعوبة استخدام طريقة الـ Strategic Programming عندما يكون لدينا حالة طارئة او عطل حساس في انظمة التطبيق و دورة حياة المستخدم بشكل اساسي لأن هذه النوعية من الأعطال يحتاج سرعة في التنفيذ وقضاء وقت وجهد اقل في التخطيط والتحليل
تعتبر طريقة الـ Strategic Programming كالإستثمار بعيد المدى و يسمح لك بقضاء وقت و جهد أقل في التحديث مستقبلا أو إصلاح الأعطال التي قد تطرأ بشكل مفاجئ.
واختيارها لبناء التطبيق أمر مهم جدا و ممكن استخدام الطريقة الأخرى لاحقا عندما يكون عامل الوقت مهم في اطلاق ميزة او خاصية جديدة
كخلاصة، سوف اذكر الفروقات بين الطريقتين بشكل بسيط في الأسفل:
طريقة Strategic Programming:
- ضرورية في بداية البرمجة لبناء نظام مستدام
- تأخذ وقت وجهد اكبر في مرحلة التحليل والتخطيط
- تأخذ وقت اقل مستقبلا عند التطوير و التحسين
- غير مناسبة عندما يكون هنالك عطل طارئ
طريقة Tactical Programming:
- غير ضرورية في بداية البرمجة ولا يُنصح استخدامها
- تأخذ وقت وجهد أكبر في مرحلة البرمجة و أقل في مرحلة التحليل
- سوف تخلق لك المشاكل مستقبلا في حال كررت استخدامها
- ترفع مستوى التعقيد الخاص بتطبيقك داخليا
- مناسبة جدا عندما يكون هنالك عطل طارئ او مشكلة تتطلب حل سريع

جاري تحميل الاقتراحات...