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

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

تعقد المناقشات بانتظام حول ما إذا كان ينبغي اعتبار أنواع مختلفة من القمامة مديونية. يبدو لي أنه من المفيد أن نأخذ في الاعتبار هنا أن الواجب يؤخذ بوعي ومعقول - أو بتهور. لذلك ظهر
مربع من الديون الفنية .
مزيد من القراءة
بقدر ما أستطيع أن أقول ، قدم وارد هذا المفهوم لأول مرة في تقرير
OOPSLA لعام 1992 . وقد نوقشت أيضا على
ويكي .
هناك
تسجيل فيديو يناقش فيه وارد كننغهام استعاراته.
يقوم ديف نيكوليت بتوسيع وجهة نظر وارد حول الديون الفنية من خلال تقديم
مثال جيد لما أسميه
الدين المقصود المعقول .
اقترح العديد من القراء استعارات صحيحة أخرى. دعا ديفيد Panarity التنمية منخفضة الجودة
نقص البرمجة . على ما يبدو ، بدأ في استخدام المصطلح منذ عدة سنوات عندما كان متسقًا مع سياسة الحكومة ؛ أعتقد الآن أنه مرتبط مرة أخرى.
اقترح Scott Wood التعامل مع "
التضخم الفني على أنه فقد للتربة عندما يتجاوز المستوى الحالي للتكنولوجيا حتى الآن مستوى المنتج الخاص بك بحيث ينخفض تدريجياً عن البيئة. تتأخر البرامج في إصدارات اللغة إلى الحد الذي لم يعد فيه الكود متوافقًا مع المترجمين الرئيسيين. "
ألقى ستيف ماكونيل الضوء على العديد من النقاط الجيدة في الاستعارة. على وجه الخصوص ، لأن تخفيض الديون غير المقصودة يترك مجالًا أكبر لقبول الدين عن قصد عندما يكون مفيدًا. أنا أيضًا أحب صياغة الحد الأدنى للمدفوعات (وهي نسبة مرتفعة للغاية لا يمكن حلها في الأنظمة المضمنة ، ولكن ليس في المواقع).
تحدث آرون إريكسون عن
تمويل إنرون .
يجادل هنريك كنيبرغ بأن الدين التقني القديم يسبب المشكلة الأكبر ، وأنه من الحكمة إنشاء سقف دين عالي الجودة لتسهيل إدارته.
يناقش إريك ديتريش
الخسارة البشرية بسبب الديون الفنية : معارك الفريق ، وتدهور المهارات ، والإرهاق.
التعديلات
تم نشر هذا المنشور في الأصل في 1 أكتوبر 2003. أعيد كتابتها بالكامل في أبريل 2019.