الكود القابل للاستبدال هو كذبة
يقول الناس إن استمرارية الكود قد انتهت في عصر الذكاء الاصطناعي. يزعمون أن الذكاء الاصطناعي يعيد كتابة الكود بسرعة تزيد بمقدار 10 أضعاف. يتساءلون لماذا يجب عليك كتابة كود يدوم طويلاً إذا كان بإمكانك ببساطة إعادة إنتاجه لاحقاً.
هذه الفكرة مجرد وهم. وهي تأتي غالباً من أشخاص لا يقومون بصيانة البرمجيات.
تبدو هذه الحجة منطقية. تحصل على قاعدة كود فوضوية، فتقرر التخلص منها وتطلب من الذكاء الاصطناعي شيئاً أكثر نظافة. يبدو الأمر وكأنه تقدم، لكنه في الواقع فشل هندسي.
إليك ما ينساه الناس بشأن قاعدة الكود الراسخة: إنها أكثر من مجرد منطق برمجي؛ إنها سجل لكل خطأ قمت بإصلاحه.
تلك العبارة الشرطية if الغريبة في السطر 412 موجودة لسبب ما. فهي تعالج خطأً معيناً من مزود خدمة دفع أثناء تغيير المنطقة الزمنية. هذا المنطق ليس موجوداً في تذكرة (ticket)، بل يعيش داخل الكود.
كل عملية إعادة كتابة تسبب فقداناً للذاكرة. تفقد المعرفة الضمنية ومعالجة الحالات الاستثنائية (edge cases). يمكن للذكاء الاصطناعي كتابة الكود بسرعة، لكنه لا يستطيع إعادة إنشاء القرارات السابقة لفريقك. لا يمكنه إعادة إنشاء شهور العمل التي بذلتها في منطق إعادة المحاولة (retry logic) بعد فشل النظام.
سرعة الإنتاج ليست سرعة الاستيعاب. يمكنك إنشاء ألف سطر من الكود في دقائق، لكن قراءة ألف سطر من الكود لا تزال تستغرق ساعات. الذكاء الاصطناعي لا يغير هذه النسبة.
لم تكن الكتابة يوماً هي الجزء الصعب، بل كان التفكير فيما يجب كتابته هو الجزء الصعب.
اعتبار الكود قابلاً للاستبدال يعني أنك تنظر أيضاً إلى مستخدميك ووقت تشغيل نظامك (uptime) على أنهما قابلان للاستبدال. كل إعادة كتابة تخلق نافذة مخاطرة، وكل نافذة مخاطرة تؤدي إلى تراجعات (regressions)، وكل تراجع يضر بمستخدم يثق بك.
إذا كنت تبني مشروعاً لعطلة نهاية الأسبوع، فأعد كتابته متى شئت، فلا أحد يهتم.
ولكن إذا كنت تدير منتجاً يعتمد عليه الناس، فلا يمكنك تحمل هذا الترف. لا يمكنك تحمل كسر الأشياء في الساعة الثانية صباحاً في يوم عطلة.
إعادة الكتابة لا تعالج الديون التقنية (tech debt)، بل تعيد فقط ضبط الساعة للبدء في اكتشافها مجدداً.
هذا السرد يخدم الأشخاص الذين يبدأون المشاريع فقط ولكنهم لا يقومون بصيانتها أبداً. يخدم الأشخاص الذين يروجون لفكرة أن الذكاء الاصطناعي يجعل كل شيء قابلاً للاستبدال. إنه لا يخدم المهندس الذي يتم استدعاؤه عند فشل عملية إعادة الكتابة، ولا يخدم المستخدم.
الصيانة هي واقع البرمجيات. أما الكود القابل للاستبدال فهو فلسفة لا تنجح إلا إذا لم تكن مضطراً أبداً لإبقاء الأنظمة تعمل.
استخدم الذكاء الاصطناعي لمساعدتك في كتابة كود أفضل وأكثر متانة، ولا تستخدمه كعذر لإعادة بناء كل شيء من الصفر.
المتانة تجعل المرونة مستدامة.
ما هي أقدم قطعة برمجية في نظامك؟ ماذا ستفقد إذا قمت بحذفها؟
المصدر: https://dev.to/adioof/disposable-code-is-a-psyop-by-people-who-dont-maintain-anything-33kg
مجتمع تعليمي اختياري: https://t.me/GyaanSetuAi