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

السؤال

Recommended Posts

  • 0
نشر

وعليكم السلام,

في الواقع انت تستخدمه وبكثرة لكن قد يختلف على المشروع الذي تعمله فمثلا عند استخدام دالة من مكتبة pandas فانت تستدعي كائن مثل:

df = pd.DataFrame(data)

ف DataFrame هو صنف Class.

وإن كنت تقصد أنك لم تستخدمه بشكل مباشر فمن الممكن أن لديك تطبيق ذكاء صناعي يحتاج الى تطبيق ويب كحاوية له فانت استخدمت dijango لتشغيل تطبيق backend و dijango كله يعتمد على مفاهيم ال OOP  

كل شي تعلمته يتم تطبيقه ومعرفة الموضوع بشكل عام قد يساعدك في حل مشكلات قد تحصل معك فالبرمجة كائنية التوجه أساسية لعلم البرمجة وعلم تعلم الالة والبيانات هو جزء من علم البرمجة.

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

 

  • 0
نشر

OOP (Object-Oriented Programming) هي أسلوب برمجة يركز على تنظيم الكود من خلال استخدام الكائنات (Objects)، حيث يجمع كل كائن بين البيانات (المتغيرات) والوظائف (الدوال) الخاصة به. يُستخدم هذا الأسلوب بشكل أكبر في المشاريع الكبيرة أو المعقدة التي تحتوي على أنواع مختلفة من البيانات، وكل نوع له سلوك ووظائف خاصة.

مثال:
نظام لإدارة الحيوانات في حديقة حيوان. يمكنك استخدام OOP لتعريف كائن يمثل كل حيوان.

class Animal { 
  constructor(name, sound) { 
    this.name = name; this.sound = sound; 
  } 
  makeSound() { 
    console.log(`${this.name} says ${this.sound}`); 
  } 
} 
const lion = new Animal("أسد", "زئير"); 
const bird = new Animal("عصفور", "زقزقة"); 
lion.makeSound();

في هذا المثال قمبنا ببناء كلاس مخصص لنوع "حيوان" Animal يحتوي على بعض الوظائف الخاصة بهذا الكلاس

فيمكننا إعادة استخدامه مرة اخرى في اكثر من موضع الذي يخص هذا الكلاس.

  • 0
نشر

تعلم البرمجة كائنية التوجه (OOP) لا يعني أنك ستستخدمها دائما في كل مشروع، خصوصا في بدايات مشاريع تعلم الآلة وعلم البيانات ففي هذه المجالات يفضل في العادة الكتابة الإجرائية لأن التجريب السريع مطلوب، والكود يكون بسيطا ومؤقتا لكن عندما يتطور المشروع، وتظهر الحاجة إلى التنظيم وإعادة الاستخدام، يبدأ دور OOP في الظهور استخدام OOP يكون منطقيا عندما يصبح المشروع معقدا أو طويل الأمد، أو عندما يتم العمل ضمن فريق مثلا في مشروع فيه عدة مراحل مثل التحميل، المعالجة، التدريب، التقييم، والحفظ، يمكن وضع كل مرحلة في كلاس خاص وهذا يسهل تعديل أي جزء دون التأثير على بقية الكود.
كذلك إن كان لديك أكثر من نموذج أو أكثر من نوع بيانات، فالبرمجة الكائنية توفر طريقة ممتازة للتعامل مع هذا التنوع، مكتبات مثل scikit-learn تعتمد على OOP أيضا وكل نموذج يتم تمثيله بكائن له وظائف محددةيمكنك إنشاء كلاس ModelHandler يحتوي على الوظائف الخاصة بالنماذج التي تستخدمها وهكذا ستتجنب تكرار الكود وتجعل مشروعك أكثر وضوحا.
ال OOP مفيدة جدا في بناء APIs، أو في ربط النموذج مع الواجهة، أو في نشره على السحابة لكن لا يشترط أن تبدأ بها منذ السطر الأول.

  • 0
نشر

استخدام البرمجة الكائنية (OOP) في مشاريع تعلم الآلة (Machine Learning) وعلم البيانات (Data Science) يعتمد على طبيعة المشروع والغرض منه. بشكل عام، الOOP مش دائماً بيكون الخيار الأساسي في المجالات دي زي ما هو شائع في مجالات زي تطوير البرمجيات أو تطبيقات الويب، لأن تعلم الآلة وعلم البيانات بيعتمدوا أكتر على المكتبات الجاهزة زي NumPy، Pandas، Scikit-learn، TensorFlow، وPyTorch، واللي غالباً بتكون موجهة نحو البرمجة الوظيفية (Functional Programming) أو البرمجة الإجرائية (Procedural Programming). لكن ده ما يمنع إن الOOP ممكن يكون مفيد جدًا في حالات معينة.

  • 0
نشر

موجودة في كل المكتبات وكذلك في مشاريع تعلم الآلة، ولكنك لا تشعر بها دائماً لأنك تعمل في دفاتر Jupyter بها كود بسيط دفك لاستكشاف البيانات بسرعة من أجل التعلم، ولا تحتاج إلى توزيع الكود على فريق كبير أو إعادة استخدامه بشكل متكرر.

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

فمكتبات النمذجة والتي منها scikit-learn مبنية بالكامل على Estimator AP (fit / predict) حيث كل خوارزمية هي كائن، وكذلك PyTorch تطلب منك توريث nn.Module لإنشاء نماذجك.
وTensorFlow Keras توفر tf.keras.Model و tf.keras.Layer.

حتى DataFrame في pandas هو كائن ضخم، إذن، OOP ليست أقل شيوعًا بل هي ببساطة مغلفة داخل المكتبات التي تستخدمها، والسؤال الصحيح هو متى تحتاج أن تكتب كائناتك أنت؟

ببساطة لو لديك منطق تهيئة بيانات يتكرر عبر عدة تجارب، أو تريد تبديل نموذج عبر سطر إعداد واحد، أو عندما يصبح المشروع جزءاً من منتج مثل API أو تطبيق هاتف.

أو هناك أكثر من شخص على الكود ويجب الاتفاق على واجهات واضحة، ولتنظيم الكود والفصل بين المسؤوليات، بمعنى • كلاس للتهيئة وآخر للتدريب وآخر للتقييم.

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

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...