09-05-18, 03:57 PM
السلام عليكم و رحمة الله و بركاته
اخي الكريم ,
الموضوع ليس بتلك البساطة لعدة اسباب ...؟
السبب الاول و الاهم لي هو عدم توفر الوقت الكافي للدخول بهكذا موضوع.
السبب الثاني من جهة المستوى الموجود لدى بعض الاخوة (مستوى التعمق البرمجي).
اذ ان الموضوع يرتبط بمفاهيم كبيرة بالاسم و المعنى (ليس المقصود صعوبتها) .
انت اشرت سابقاً الى ان جل مشاكل الاعضاء تتعلق بامور بسيطة (جمل استعلام عادية و نسيان نقطة او فاصلة ...الخ)
فكيف لك او لي ان ادخل بموضوع يتعلق بالبرمجة الكائنية و الوراثة و التغليف ... الخ هذه الامور , اذا لم التمس لدى عدد مقبول امكانية فهم هذه الامور و المناقشة بها .
الكثير من الاعضاء لديه معلومات عن المصطلحات السابقة و قرأ عنها او فهمها من شرح ما او دورة ما (اذ انها من الاساسيات)
لكن الجانب العملي لديه صفر (لم يقم بعمل اي برنامج او مكتبة يعتمد فيها على هذه التقنيات)
و على الجانب الاخر يوجد عدد جيد من الخبراء في المنتدى , ممن هم على مستوى عالي في هذه التقنيات و قاموا بتوظيفها في مشاريعم و اعمالهم .
هذه الفئة اغلبها هاجرت من المنتدى , لعدة اسباب (طبعاً بعيداً عن مشاغلهم و ارزاقهم) , مستوى الاسئلة و النقاشات تجدها دون المستوى المطلوب و مكررة و مجاب عنها في عشرات المواضيع.
و ربما يمر شهر او سنه لتجد موضوع او نقاش يستحق المتابعة و التعلم منه و الابحار فيه.
اذ ان مستوى الطلبات و المواضيع يجبرك اما على التنازل و التواضع لتقنيات بائدة , او الى الارتقاء و التطوير و بالتالي اكتساب خبرة كبيرة, بمعنى من يكن بين الخراف فمصيره الذبح و من يكن بين السباع سينتصر.
لم ارد ان اتحدث عن هذا الجانب تحديداً , لانه يبعث على اليأس لكنه واقع تمثل امامنا في هجرة الكثير من المنتدى.
و على الجميع ممن يريد الارتقاء ان يحاول تطوير اسلوبه وفق التقنيات الكبيرة السابق ذكرها , فلا معنى من اعادة كتابة كود استخدمه في كل مرة بنفس الطريقة.
------------------------------------------------
بالنسبة لي حاولت فتح الموضوع في اكثر من مشاركة و لكن بشكل تعليمي مبسط مرتبط بحاجة ما , و ليس الغاية منه الدخول في شرح هذا المنطق , اذ انه موجود في كثير من الكتب و الشروحات سواء كان كتاب او دورات مرئية.
مثال تعليمي فيه بعض النقاط السابقة مثال للتعامل مع الجداول المرتبطة - عن طريق الكلاسات
صمم الكلاس الخاص بك
-----------------------------------
حتى المنطق السابق في بعض التقنيات مثل تقنية التغليف (Encapsulation) و خصوصاً فيما يتعلق بتقنية Ado.Net
ترى العديد من الخبراء يتحدثون عن وضع متصل و وضع منفصل و لن تجد منهم من يكشف لك الفرق و ما هو سر التسمية , و هل فعلاً نحن اما تقنيات موصولة او مقطوعة ؟؟؟
خلال تعمقي في دراسة هذه التقنية منذ انطلاقها و الدخول في تشعباتها (فالكلام غير مقنع بعض الشيئ)
تلاحظ انك عندما تستخدم كائن مثل DataAdapter يقوم هذا الكائن بتغليف كائنات بداخله تتكفل هذه الكائنات بعملية فتح واغلاق الاتصال و تنفيذ الاكواد دون ان تكون بحاجة لكتابة الكود يدوياً , و على هذا الاساس فلا فرق ان كتبتها انت او قام الكائن بتنفيذها
تم تسميته بكائن منفصل لانه يقوم بهذه العمليات بعيدأ عنك .
بينما لو انا استخدمت كائنات Command و قمت بالعمل يدوي و فتحت الاتصال و اغلقته , سموها متصل.
ليس هذا و حسب يوجد الكثير من الكلام في ما يخص هذه الامور و شبيهاتها ...؟
----------------------------
بالعودة الى منطق التصميم الجيد بالاعتماد على التقنيات الكبيرة اثناء انشاء فئاتك .
كان لي تجربة جداً ناجحة في توظيف التقنيات التالية (Inhertance,Encapsulation,Generic,Reflection) في قواعد البيانات
تم اختصار الكثير الكثير من الوقت و الجهد لاحقاً في عمليات التعديل و حتى في اختصار عدد الكلاسات المسؤولة عن كل فئة , تحديداً مع تقنيتي Generic,Reflection , اذ اصبح مفهوم الفئات المشتركة مطبق بقوة , و اصبح مفهوم (سميته التعاضد) موجود بين كل الفئات لتحقيق هدف مشترك.
---------------------------------------------------------
بالنسبة لطرح الموضوع في هذا الوقت , ليس لدي مانع اذا توفر الوقت (لدي اعمال اكون بها مسافر, و قد يطول السفر)
لا تحرم احد من الفائدة اذا توفر لديك الوقت و الهمة , و ستجد الكثر من الاخوة سيشارك بهذا الموضوع , خصوصاً انه موضوع في العمق و يهم الكثيرين (تشارك الخبرات يفضي في النهاية الى فائدة للجميع).
-------------------------------------------------------------
انشاء الفئات يكون على منصة اللغة و ليس في برامج تقوم بهذا العمل , لان طبيعة تخريج الملفات (الملفات الناتجة) ستكون ملفات ربط (ملفات Dll) يمكن لاي عضو ادراجها و الاستفادة منها , او حتى يكون المشروع متاح للجميع للتعديل عليه.
------------------------------------------------------------
بالنسبة للغة يفضل ان تكون Vb.Net أو #C كونها تتوفر لدى الغالبية العظمى.
------------------------------------------------------------
بالتوفيق للجميع
اخي الكريم ,
الموضوع ليس بتلك البساطة لعدة اسباب ...؟
السبب الاول و الاهم لي هو عدم توفر الوقت الكافي للدخول بهكذا موضوع.
السبب الثاني من جهة المستوى الموجود لدى بعض الاخوة (مستوى التعمق البرمجي).
اذ ان الموضوع يرتبط بمفاهيم كبيرة بالاسم و المعنى (ليس المقصود صعوبتها) .
انت اشرت سابقاً الى ان جل مشاكل الاعضاء تتعلق بامور بسيطة (جمل استعلام عادية و نسيان نقطة او فاصلة ...الخ)
فكيف لك او لي ان ادخل بموضوع يتعلق بالبرمجة الكائنية و الوراثة و التغليف ... الخ هذه الامور , اذا لم التمس لدى عدد مقبول امكانية فهم هذه الامور و المناقشة بها .
الكثير من الاعضاء لديه معلومات عن المصطلحات السابقة و قرأ عنها او فهمها من شرح ما او دورة ما (اذ انها من الاساسيات)
لكن الجانب العملي لديه صفر (لم يقم بعمل اي برنامج او مكتبة يعتمد فيها على هذه التقنيات)
و على الجانب الاخر يوجد عدد جيد من الخبراء في المنتدى , ممن هم على مستوى عالي في هذه التقنيات و قاموا بتوظيفها في مشاريعم و اعمالهم .
هذه الفئة اغلبها هاجرت من المنتدى , لعدة اسباب (طبعاً بعيداً عن مشاغلهم و ارزاقهم) , مستوى الاسئلة و النقاشات تجدها دون المستوى المطلوب و مكررة و مجاب عنها في عشرات المواضيع.
و ربما يمر شهر او سنه لتجد موضوع او نقاش يستحق المتابعة و التعلم منه و الابحار فيه.
اذ ان مستوى الطلبات و المواضيع يجبرك اما على التنازل و التواضع لتقنيات بائدة , او الى الارتقاء و التطوير و بالتالي اكتساب خبرة كبيرة, بمعنى من يكن بين الخراف فمصيره الذبح و من يكن بين السباع سينتصر.
لم ارد ان اتحدث عن هذا الجانب تحديداً , لانه يبعث على اليأس لكنه واقع تمثل امامنا في هجرة الكثير من المنتدى.
و على الجميع ممن يريد الارتقاء ان يحاول تطوير اسلوبه وفق التقنيات الكبيرة السابق ذكرها , فلا معنى من اعادة كتابة كود استخدمه في كل مرة بنفس الطريقة.
------------------------------------------------
بالنسبة لي حاولت فتح الموضوع في اكثر من مشاركة و لكن بشكل تعليمي مبسط مرتبط بحاجة ما , و ليس الغاية منه الدخول في شرح هذا المنطق , اذ انه موجود في كثير من الكتب و الشروحات سواء كان كتاب او دورات مرئية.
مثال تعليمي فيه بعض النقاط السابقة مثال للتعامل مع الجداول المرتبطة - عن طريق الكلاسات
صمم الكلاس الخاص بك
-----------------------------------
حتى المنطق السابق في بعض التقنيات مثل تقنية التغليف (Encapsulation) و خصوصاً فيما يتعلق بتقنية Ado.Net
ترى العديد من الخبراء يتحدثون عن وضع متصل و وضع منفصل و لن تجد منهم من يكشف لك الفرق و ما هو سر التسمية , و هل فعلاً نحن اما تقنيات موصولة او مقطوعة ؟؟؟
خلال تعمقي في دراسة هذه التقنية منذ انطلاقها و الدخول في تشعباتها (فالكلام غير مقنع بعض الشيئ)
تلاحظ انك عندما تستخدم كائن مثل DataAdapter يقوم هذا الكائن بتغليف كائنات بداخله تتكفل هذه الكائنات بعملية فتح واغلاق الاتصال و تنفيذ الاكواد دون ان تكون بحاجة لكتابة الكود يدوياً , و على هذا الاساس فلا فرق ان كتبتها انت او قام الكائن بتنفيذها
تم تسميته بكائن منفصل لانه يقوم بهذه العمليات بعيدأ عنك .
بينما لو انا استخدمت كائنات Command و قمت بالعمل يدوي و فتحت الاتصال و اغلقته , سموها متصل.
ليس هذا و حسب يوجد الكثير من الكلام في ما يخص هذه الامور و شبيهاتها ...؟
----------------------------
بالعودة الى منطق التصميم الجيد بالاعتماد على التقنيات الكبيرة اثناء انشاء فئاتك .
كان لي تجربة جداً ناجحة في توظيف التقنيات التالية (Inhertance,Encapsulation,Generic,Reflection) في قواعد البيانات
تم اختصار الكثير الكثير من الوقت و الجهد لاحقاً في عمليات التعديل و حتى في اختصار عدد الكلاسات المسؤولة عن كل فئة , تحديداً مع تقنيتي Generic,Reflection , اذ اصبح مفهوم الفئات المشتركة مطبق بقوة , و اصبح مفهوم (سميته التعاضد) موجود بين كل الفئات لتحقيق هدف مشترك.
---------------------------------------------------------
بالنسبة لطرح الموضوع في هذا الوقت , ليس لدي مانع اذا توفر الوقت (لدي اعمال اكون بها مسافر, و قد يطول السفر)
لا تحرم احد من الفائدة اذا توفر لديك الوقت و الهمة , و ستجد الكثر من الاخوة سيشارك بهذا الموضوع , خصوصاً انه موضوع في العمق و يهم الكثيرين (تشارك الخبرات يفضي في النهاية الى فائدة للجميع).
-------------------------------------------------------------
انشاء الفئات يكون على منصة اللغة و ليس في برامج تقوم بهذا العمل , لان طبيعة تخريج الملفات (الملفات الناتجة) ستكون ملفات ربط (ملفات Dll) يمكن لاي عضو ادراجها و الاستفادة منها , او حتى يكون المشروع متاح للجميع للتعديل عليه.
------------------------------------------------------------
بالنسبة للغة يفضل ان تكون Vb.Net أو #C كونها تتوفر لدى الغالبية العظمى.
------------------------------------------------------------
بالتوفيق للجميع