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

السؤال

نشر

تطرق بسمعي أنه هنالك بعض من الأسئلة التي تسأل أثناء ال Job Interview تكون عن ال Clean architecture، فما هو هذا ال Clean architecture؟ وفي أي مسار يجب علي تعلمه؟ لم أتلقاه في دورة "علوم الحاسوب" المقدمة من الأكاديمية!

Recommended Posts

  • 0
نشر

العمارة النظيفة Clean Architecture هو مفهوم في هندسة البرمجيات يهدف إلى تنظيم الكود بطريقة تجعل النظام سهل التطوير، الاختبار، الصيانة، والتوسع.

تم تقديم وتنظيم وتنظير هاته المفاهيم أول مرة من قِبَل روبرت مارتن (المعروف بـ Uncle Bob) في كتابه Clean Architecture: A Craftsman’s Guide to Software Structure and Design لخلق تصميم قوي وقابل للتغيير دون التسبب في فوضى معقدة في الكود مع الوقت.

وهي بشكل بسيط مجموعة من المبادئ والممارسات منها: 

  • فصل المسؤوليات.
  • عزل التبعيات.
  • قابلية الاختبار.

يحدث أحيانا خلط بينها وبين الشيفرة النظيفة Clean Code، والتي هي نفسها مجموعة مفاهيم تم تنظيرهرا أول مرة من قبل العم بوب في كتابه Clean Code: A Handbook of Agile Software Craftsmanship بحيث يهتم بتقديم إرشادات وعادات لكتابة كود نظيف، مفهوم، وقابل للصيانة. ويهتم بالتفاصيل الدقيقة للكود، مثل تسمية المتغيرات، تجنب التعقيد، وتقليل التكرار.

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

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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...