اذهب إلى المحتوى

السؤال

Recommended Posts

  • 1
نشر

عملية إعادة التصنيع (refactoring) يُقصد بها إعادة كتابة الشفرة البرمجية أو إعادة كتابة جزءاً من الشفرة البرمجية بغرض:

  • تحسين كفائة الشفرة البرمجية من حيث الأداء
  • تحسين الكفاءة من حيث جعلها أسهل فهماً
  • التأكد من سهولة تطوير الشفرة البرمجية وتمديدها extend

وبوجه عام فإن غالبا الشفرة البرمجية التي نحتاج أن نقوم بإعادة تصنيعها (refactoring) تكون هي الشفرة التي ﻻ تراعي المبادئ الخمسة SOLID Principles والتي تنص على التالي

  • مبدأ المسؤلية الواحدة: وهو مبدأ ينص على أن لكل class مسؤلية واحدة , وكل دالة فيه يكون لها وظيفة واحدة فقط ﻻ أكثر

  • مبدأ المفتوح - المغلق: ينص هذا المبدأ على أن أي نظام يكون مفتوح للتمدد مغلق للتعديل

  • مبدأ ليسكوف للإستبدال: إذا كان النظام يستخدم class معين فإنه يجب أن يكون قادراً على إستخدام أي class مشتق منه 

  • مبدأ فصل الواجهات (interface Segregation) : ﻻ يجب أن تحتوي الواجهات interfaces على دوال قد ﻻ يحتاج المستخدم لإستخدامها, حيث يجب إختيار الدوال في الواجهات بعناية

  • مبدأ عكس الإعتمادية (dependency inversion): ينص على أن classes المستويات العليا ﻻ يجب أن تعتمد على classes المستويات الدنيا , فمثلاً إن كان لدينا class مُسمى سيارة و class أخر مُسمى محرك , فﻻ يجب أن تعتمد السيارة على المحرك

وبالأسفل بعض المقالات المفيدة في فهم هذا الموضوع بشكل أفضل

 

  • 1
نشر

هي عملية تغيير بنية الشيفرة المصدرية بدون أن يتغير عملها لكي تحقق التالي:

  • سهولة القراءة، كتغيير اسماء المتحولات والتوابع الى اسماء واضحة معبرة
  • معنى واضح وفهم أكثر، عبر اختيار اسماء تعبر عن معنى ووظيفة كل متحول أو تابع أو صف
  • تقليل التكرار، حيث نحاول جمع العمليات المكررة بمكان واحدة ونسخة واحدة نستعملها دوما، لتخفيف وقت الصيانة لاحق
  • السرعة، حيث نحسن أداء الخوارزميات المستخدمة لرفع الأداء

مثال

function a(x, s) {
	return x + s;
}

المثال السابق لتابع لا يدل أبدا على وظيفته ولا تعبر المعاملات الممرة له عن هويتها، نقوم بإعادة كتابة التابع السابق كالتالي   

function sum(number1, number2) {
	return number1 + number2;
}

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...