«إذا كان يعمل، لا تلمسه» — ما هو، جوهر المبدأ والمخاطر

المؤلف: IT Sectr نُشر: 2026-07-30 وقت القراءة: 9 دق

«إذا كان يعمل، لا تلمسه» — هي قاعدة غير مكتوبة في التطوير تنص على أنه لا ينبغي تغيير الكود الذي يعمل دون سبب وجيه، حتى لو بدت هيكليته غير مثالية. يستند المبدأ إلى الملاحظة التجريبية: أي تغيير يحمل خطر إدخال خطأ جديد، وقد لا تبرر فائدة إعادة الهيكلة الجهد المبذول. وفقًا لـ ويكيبيديا (2026)، يُستخدم هذا التعبير على نطاق واسع في الهندسة والسياسة والبرمجة كاستراتيجية محافظة لإدارة التغييرات.

الخلاصة

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

ما هو مبدأ «إذا كان يعمل، لا تلمسه»؟

«إذا كان يعمل، لا تلمسه» — هي قاعدة تجريبية تحذر المطورين من إجراء تغييرات على الكود الذي يعمل بدون أسباب كافية. يعتمد المبدأ على إحصائيات بسيطة: الغالبية العظمى من العيوب تُدخل أثناء تعديل الكود الموجود.

المبدأ ليس عقيدة — بل هو استرشاد يساعد في اتخاذ القرارات في ظروف عدم اليقين. كلما كانت قاعدة الكود أكثر تعقيدًا وتشابكًا، زادت احتمالية أن يكسر تغيير «بريء» شيئًا لم يتوقع أحد كسره.

وفقًا لدراسة أجرتها شركة Microsoft (2024)، حوالي 60% من جميع الحوادث الحرجة في الإنتاج مرتبطة بتغييرات حديثة في الكود تم إجراؤها بنوايا حسنة ولكن لم يتم اختبارها بشكل كافٍ في ظروف التحميل الحقيقي.

تاريخ وأصل المبدأ

التعبير «إذا كان يعمل، لا تلمسه» يعود إلى ثقافة الهندسة الأمريكية في منتصف القرن العشرين. يُنسب أول استخدام موثق إلى بيرت لانس (1977)، الذي كان يعمل في لجنة المالية بمجلس الشيوخ الأمريكي وكان يعارض التنظيم المفرط.

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

من المثير للاهتمام أنه في البرمجة، للمبدأ جانب معاكس — «يعمل، لكن الأفضل عدم لمسه» غالبًا ما يصبح مبررًا لتجنب إعادة الهيكلة، مما يؤدي على المدى الطويل إلى تراكم حرج للديون التقنية. وفقًا لشركة الاستشارات Thoughtworks (2023)، حوالي 40% من المشاريع تواجه مشكلات خطيرة بسبب التحفظ المفرط تجاه التغييرات.

متى يتم تطبيق المبدأ

مبدأ «إذا كان يعمل، لا تلمسه» مناسب بشكل خاص في حالات معينة حيث يتجاوز تكلفة الخطأ الفائدة المحتملة من التغييرات.

المشاريع القديمة بدون اختبارات

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

الأنظمة الحرجة

في الأنظمة حيث التوقف غير مقبول أو تكلفة الخطأ هائلة — البرمجيات الطبية، إلكترونيات الطيران، المعاملات المالية — مبدأ «إذا كان يعمل، لا تلمسه» هو المعيار الفعلي. أي تغيير يمر عبر موافقة واختبار متعدد المراحل.

المواعيد النهائية الضيقة

إذا كان الإصدار غدًا والكود يعمل — لا تحاول تحسين بنيته. غير فقط ما يؤثر بشكل مباشر على وظائف الإصدار. أرجئ إعادة الهيكلة إلى السباق التالي (لكن لا تنساها).

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

مخاطر اتباع المبدأ

اتباع المبدأ «إذا كان يعمل، لا تلمسه» بشكل أعمى يحمل مخاطر لا تقل عن إعادة الهيكلة التي لا نهاية لها. دعنا نستعرض المخاطر الرئيسية.

تراكم الديون التقنية

إذا كان كل مطور يتبع هذا المبدأ، تتحول قاعدة الكود بسرعة إلى «كعكة طبقات» من الحلول القديمة والتعديلات المؤقتة والخوارزميات غير المثلى. عاجلاً أم آجلاً، يصبح الدين التقني غير محتمل — أي تغيير يتطلب أسابيع من التحليل.

فرص التحسين الضائعة

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

فقدان الكفاءات

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

الوسط الذهبي: إعادة الهيكلة بدون تعصب

الاستراتيجية المثلى — ليست اتباع المبدأ بشكل أعمى، بل تطبيقه بوعي مع مراعاة السياق. إعادة الهيكلة ضرورية، لكن يجب أن تكون آمنة.

قاعدة الكشاف

قاعدة الكشاف في البرمجة: «اترك الكود أنظف مما وجدته». إذا قام المطور بتغيير في وحدة، يجب عليه تحسين هيكليتها ولكن ضمن حدود معقولة. لا إعادة كتابة كل شيء من الصفر، ولكن على الأقل إعادة تسمية المتغيرات غير المقروءة وإضافة تعليقات.

إعادة الهيكلة تحت حماية الاختبارات

الاختبارات — هي الطريقة الوحيدة لتطبيق مبدأ «إذا كان يعمل، لا تلمسه» بأمان. إذا كان الكود مغطى بالاختبارات، تصبح أي إعادة هيكلة متوقعة: يغير المطور الكود، يشغل الاختبارات ويرى إن كان هناك شيء قد انكسر. بدون اختبارات — لا تلمس. مع اختبارات — أعد الهيكلة بثقة.

kotlin
// مثال: إعادة هيكلة آمنة تحت تغطية اختبار
class PriceCalculator {
    fun calculatePrice(basePrice: Double, discount: Double): Double {
        // كود قديم لكنه يعمل
        return basePrice - (basePrice * discount / 100.0)
    }
}

// اختبار يحمي من الانتكاس
class PriceCalculatorTest {
    fun testCalculatePrice() {
        val calc = PriceCalculator()
        assertEquals(90.0, calc.calculatePrice(100.0, 10.0))
    }
}

هذا المثال يوضح النهج الصحيح: أولاً الاختبار، ثم إعادة الهيكلة. إذا نجح الاختبار، التغيير آمن. مبدأ «إذا كان يعمل، لا تلمسه» يتحول إلى «إذا كان يعمل تحت الاختبارات، أعد الهيكلة بجرأة».

أمثلة واقعية من الممارسة

دعنا نستعرض سيناريوهات واقعية حيث كان مبدأ «إذا كان يعمل، لا تلمسه» منقذًا ومدمرًا في نفس الوقت.

حالة منقذة: مشكلة شبيهة بـ Y2K

اكتشف مطور أن كود معالجة التواريخ يستخدم تنسيق DD/MM/YY بدلاً من YYYY. كان الكود يعمل بشكل صحيح من 2000 إلى 2025. على الرغم من الرغبة في «إصلاحه»، ترك الكود كما هو مكتفيًا بتعليق. في 2026، قامت الشركة بتحديث النظام، وكان الحل الجديد يعالج القرون بشكل صحيح. التغيير المبكر كان سيكسر المنطق العامل.

حالة مدمرة: فقدان البيانات بسبب «تحسين»

قرر مهندس «تحسين» كود استيراد البيانات القديم لكنه يعمل عن طريق استبداله بمكتبة حديثة. لم يأخذ في الاعتبار أن المكتبة القديمة كانت تعالج حالة حدية محددة غير موثقة. بعد الإصدار — فقدان هائل للبيانات. تم انتهاك مبدأ «إذا كان يعمل، لا تلمسه»، وكانت تكلفة الخطأ أسبوعين من عمل الفريق للاستعادة.

الأسئلة الشائعة

هل مبدأ «إذا كان يعمل، لا تلمسه» جيد دائمًا؟

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

متى يجب بالتأكيد انتهاك المبدأ؟

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

كيف نعيد هيكلة الكود القديم بدون مخاطر؟

الطريقة الآمنة الوحيدة — أولاً تغطية الكود بالاختبارات (اختبارات التوصيف)، ثم تنفيذ إعادة الهيكلة بخطوات صغيرة مع تشغيل مستمر للاختبارات. بدون حماية الاختبارات، يجب تطبيق مبدأ «إذا كان يعمل، لا تلمسه» بصرامة.

لماذا ينتهك المطورون ذوو الخبرة هذا المبدأ غالبًا؟

المطورون ذوو الخبرة ينتهكون المبدأ بوعي — يرون العواقب غير الواضحة للتنفيذ الحالي: أخطاء مستقبلية، اختناقات في الأداء، مشاكل قابلية التوسع. قراراتهم تستند إلى الخبرة وليس الخوف من التغييرات.

كيف نجد التوازن بين الاستقرار والتطوير؟

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

الملخص

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

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا