FA AR EN

عندما تتباطأ البرمجيات مع نمو البيانات

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

إحدى تجاربي في هذا المجال كانت مع شركة إنتاج كبيرة كان لديها عدة فروع في مختلف أنحاء البلاد.

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

طلبت منهم في البداية طرح الموضوع على قسم دعم البرنامج.

أوضحوا أن مبرمج هذا البرنامج كان أحد الموظفين السابقين في الشركة، وأنه غادر المؤسسة بعد تقاعده ولم يعد متاحًا للتواصل معه.

وبناءً على هذه الظروف، طلبت منهم تزويدي بالشيفرة المصدرية للبرنامج والصلاحيات اللازمة حتى أتمكن من فحص سبب المشكلة.

بعد فحص الشيفرة المصدرية، واجهت بعض النقاط اللافتة للاهتمام.

كان حجم الشيفرة المصدرية صغيرًا نسبيًا، كما أن البرنامج كان مطورًا باستخدام تقنيات حديثة نسبيًا. لذلك، لم يكن من الواضح في البداية أن المشكلة ناتجة عن قِدم التقنيات المستخدمة.

لكن مع إجراء فحص أكثر دقة، اتضح السبب الرئيسي للتباطؤ.

كانت هناك استعلامات كثيرة تُنفذ على قاعدة البيانات في أجزاء مختلفة من البرنامج، وفي بعض الأقسام لم تكن المبادئ المناسبة في تصميم وتنفيذ أوامر قاعدة البيانات ومنطق البرنامج مطبقة بالشكل الصحيح.

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

لكن مع مرور الوقت وزيادة حجم البيانات، تغير الوضع تمامًا. وعندما وصل حجم البيانات إلى عدة مئات الآلاف من السجلات، أصبحت بعض العمليات تستغرق وقتًا طويلًا جدًا، وأصبح البرنامج عمليًا غير قابل للاستخدام بالنسبة للمستخدمين.

وهنا اتضح أن المشكلة الأساسية لم تكن في كثرة البيانات بحد ذاتها؛ بل في أن البرنامج لم يُصمم منذ البداية بطريقة تتيح له الحفاظ على أداء مناسب مع نمو حجم البيانات.

عندما تظهر المشكلة مع مرور الوقت

كان من المثير للاهتمام في هذه التجربة أن البرنامج كان على الأرجح يبدو مناسبًا تمامًا عند بداية المشروع. فعندما تكون كمية البيانات قليلة، قد لا تظهر الكثير من مشكلات التصميم وتحسين الأداء أصلًا.

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

الدرس الذي تعلمته من هذه التجربة

كانت هذه التجربة تذكيرًا لي بمبدأ مهم في تصميم البرمجيات: لا ينبغي تصميم البرمجيات لظروف اليوم فقط؛ بل يجب، قدر الإمكان، أخذ نمو حجم البيانات وعدد المستخدمين في المستقبل بعين الاعتبار.

قد يكون أحد البرامج سريعًا جدًا مع بضعة آلاف من السجلات، لكن أداء البرنامج نفسه قد يختلف تمامًا عند التعامل مع مئات الآلاف أو ملايين السجلات.

لذلك، عند تصميم نظام ما، لا ينبغي أن يكون السؤال فقط: «هل يعمل البرنامج بشكل صحيح اليوم؟» بل يجب أن نسأل:

«إذا تضاعف حجم البيانات وعدد المستخدمين عدة مرات، فهل سيظل هذا البرنامج قادرًا على تقديم أداء مقبول؟»

عادةً ما يكون نمو البيانات تدريجيًا، ولهذا قد تظل المشكلات الناتجة عن التصميم غير المناسب مخفية لفترة طويلة.

البرنامج الجيد ليس مجرد برنامج سريع عندما تكون كمية البيانات قليلة؛ بل يجب أن يكون مستعدًا لنمو الأعمال وزيادة حجم البيانات أيضًا.

تعليقك

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

0 / 3000 حرف
لم يتم تسجيل أي تعليق على هذه المقالة حتى الآن.