حينما نقوم بإنشاء برنامج أو تطبيق ما، لحلّ مشكلة وتقديم خدمة مفيدة، فنحن نواجه تحديات عديدة في جعل هاته البرامج والتطبيقات تعمل بسرعة وكفاءة على مختلف أنواع الأجهزة والمنصات، وهذا راجع إلى العديد من الأسباب الخارجة عن نطاقنا كمبرمجين، قد تكون تلك اﻷجهزة المستهدفة ذات مواصفات مختلفة وضعيفة، من حيث الذاكرة العشوائية، المعالج، الشاشة، البطارية والإتصال بالشبكة، وغيرها!! كما يمكن أن تكون المنصة التي قمنا بإستخدامها لتصميم برامجنا تستخدم لغات برمجية محددة، أطر عمل ومكتبات خاصة بها، فكيف يمكن لنا أن نضمن أن هاته البرامج لا تؤثر على أجهزة المستخدمين وأدائها، بينما تستغل أفضل مواردها، من معالج، شاشة وذاكرة؟!

لقد قرأت كثيرا عن هذا الأمر ووجدت بأنه توجد مجموعة من العوامل والمبادئ التي تؤثر على سرعة وكفاءة برمجياتنا وتطبيقاتنا، فتوجد ثلاثة مستويات يمكن العمل عليها لتحسين أداء هاته البرامج: المستوى البرمجي، الهندسي والتشغيلي، وهي كالآتي:

  • المستوى البرمجي: هو المستوى الذي يتعلق بكتابة الشفرة البرمجية واختيار الخوارزميات والبيانات المناسبة لحل المشكلة، عبر:
  1. اختيار خوارزمية فعالة وسريعة لحل المشكلة، وذلك بقياس التعقيد الزمني والمكاني للخوارزمية ومقارنتها مع خوارزميات أخرى ممكنة.
  2. اختيار بنية بيانات مناسبة لتخزين ومعالجة المعلومات، وذلك بأخذ في الحسبان حجم ونوع وترتيب البيانات، وكذلك عمليات الإدخال والإخراج والبحث والتحديث التي تطبق عليها.
  3. اتباع مبادئ البرمجة النظيفة والصحية، مثل تسمية المتغيرات والدوال بشكل واضح، تعليق الشفرة بشكل مناسب، تجنب التكرار والتضخم، استخدام التجزئات والوظائف المساعدة، إلخ.
  • المستوى الهندسي: هو المستوى الذي يتعلق بتصميم وهندسة البرنامج أو التطبيق ككل، وذلك بأخذ في الاعتبار متطلبات المستخدم والسوق.
  • المستوى التشغيلي: هو المستوى الذي يتعلق بتشغيل البرنامج أو التطبيق على الجهاز المستهدف، وذلك بأخذ في الاعتبار موارد الجهاز وظروف التشغيل.

أرى بأن الإهتمام بهذه المستويات مهم جدا، من أجل الحرص على أداء جيد وذا كفاءة على مختلف الأجهزة، خاصة المستوى البرمجي، ماذا تعرفون عن الخطوات المندرجة ضمن المستويين الهندسي والتشغيلي؟ وكيف تحافظون على سلاسة عمل برامجكم وأدائها على مختلف الأجهزة؟