Site icon FREEHOW

مفاهيم التصميم البرمجي

مفاهيم التصميم البرمجي (Software Design Concepts) هي الأساسيات أو الأعمدة الأساسية لبناء أي تطبيق، والتي يستخدمها مطورو البرمجيات لبناء أنظمة بشكل جيد (Well-Structured)، وقابلة للتعديل والتطوير (Maintainable)، وذات كفاءة عالية (Efficient)، كما تساعد هذه المفاهيم في ترجمة متطلبات العملاء إلى مخططات واضحة يمكن فهمها من قبل المطورين، وتحويلها إلى أكواد وبرامج مختلفة.

الهدف من التصميم البرمجي Software Design Goal

يعد الهدف الرئيسي من مفاهيم التصميم البرمجي، واستخدامها هو فهم متطلبات المستخدم (User Requirements)، وترجمة هذه المتطلبات إلى شئ واقعي يمكن للمستخدم الاستفادة منه، ويوجد العديد من الأدوات التي تساهم في التصميم البرمجي، وتنفيذ المفاهيم الرئيسية والمتقدمة، مثل: UML، كما يساعد التصميم البرمجي في تنفيذ برامج قابلة للتعديل والتطوير بشكل مستمر في حالة تغير متطلبات المستخدم باستمرار.

معرفة احتياجات المستخدم

يتمحور هذا الهدف حول جمع المعلومات، والمتطلبات من الملاك وأصحاب المصلحة، مثل: المستخدمون (Users)، ومحللي الأعمال (Business Analysts)، والمطورون الآخرون (Developers)، وهذه المتطلبات تنقسم إلى، متطلبات وظيفية (Functional) وهذه تجيب عن سؤال ماذا يقدم هذا البرنامج؟، ومتطلبات غير وظيفية (Non-Functional) وتحتوي على متطلبات الأداء، والأمان، إلخ.

معمارية وهيكلية النظام (System Architecture)

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

تصميم الوحدات (Modular Design)

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

الأهداف الأساسية

عملية التصميم البرمجي Software Design Process

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

التصميم النظري (Conceptual Design)

يركز على المنظور العلوي ويقوم بتعريف الهيكلية الكاملة للبرنامج، ويقوم المصممون في هذه المرحلة برسم مخطط عالي الجودة يساهم في تحديد العناصر الأساسية وكيفية جمعها لتحقيق نتيجة محددة.

التصميم التفصيلي (Detailed Design)

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

التوثيق Documentation

الكود النظيف Clean Code

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

مبادئ الكود النظيف (Clean Code Principles)

أمثلة أكواد نظيفة Examples

# Unclear variable name, cryptic function purpose
def do_something(data):
  # Complex logic with minimal comments
  for item in data:
    if item > 10:
      # Nested logic with magic numbers
      item = item * 2 + 5
  return data

# Descriptive variable name, clear function purpose
def calculate_double_plus_five_for_large_numbers(numbers):
  # Well-commented and easy-to-understand logic
  large_numbers = [num for num in numbers if num > 10]  for number in large_numbers:
    number *= 2
    number += 5
  return large_numbers

وفي النهاية نتمنى أن نكون قد وضحنا لكم المفاهيم المتعلقة بتصميم البرمجيات ومبادئها وكيفية استخدامها لتنفيذ برامج واقعية قابلة للاستخدام، ونتمنى لكم دوام العلم والتفوق.

Exit mobile version