[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 379: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 379: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 379: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 112: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions_content.php on line 678: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/session.php on line 1042: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4752: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4754: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4755: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4756: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3887)
ملتقى طلاب كلية الهندسة المعلوماتية في جامعة دمشق • مشاهدة الموضوع - Design patterns

Design patterns

يحوي مجموعة من المقالات العربية و الأجنبية سواء المنقولة منها أو التي قام أعضاء الموقع بكتابتها .

المشرف: Mohammad_807

Design patterns

مشاركة غير مقروءةبواسطة Mohammad_807 » السبت مارس 12, 2011 7:37 pm

Mohammad_807
مشرف منتدى البرمجة العام
مشرف منتدى البرمجة العام
 
مشاركات: 635
اشترك في: الأحد مارس 09, 2008 4:29 pm
الجتس: ذكر
الشهادة الثانوية:
الجامعة:
الكلية:
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم

Re: Design patterns

مشاركة غير مقروءةبواسطة الأمجد توفيق اصطيف » السبت مارس 12, 2011 11:37 pm

هل تسمح لنا أخ محمد أن نأخذ كلامك، ونضعه في الويكبيديا؟
صورة العضو الشخصية
الأمجد توفيق اصطيف
عضو فعال
عضو فعال
 
مشاركات: 636
اشترك في: الأربعاء سبتمبر 09, 2009 7:15 pm
الجتس: ذكر
الشهادة الثانوية:
الجامعة:
الكلية:
المرحلة الدراسية: السنة الثالثة

Re: Design patterns

مشاركة غير مقروءةبواسطة Mohammad_807 » الأحد مارس 13, 2011 6:11 pm

Mohammad_807
مشرف منتدى البرمجة العام
مشرف منتدى البرمجة العام
 
مشاركات: 635
اشترك في: الأحد مارس 09, 2008 4:29 pm
الجتس: ذكر
الشهادة الثانوية:
الجامعة:
الكلية:
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم

Re: Design patterns

مشاركة غير مقروءةبواسطة الأمجد توفيق اصطيف » الثلاثاء مارس 15, 2011 8:22 pm

صورة العضو الشخصية
الأمجد توفيق اصطيف
عضو فعال
عضو فعال
 
مشاركات: 636
اشترك في: الأربعاء سبتمبر 09, 2009 7:15 pm
الجتس: ذكر
الشهادة الثانوية:
الجامعة:
الكلية:
المرحلة الدراسية: السنة الثالثة

Re: Design patterns

مشاركة غير مقروءةبواسطة Mohammad_807 » الجمعة إبريل 22, 2011 2:53 pm


اليوم رح نحكي عن أحلى و أشهر Design Pattern على الإطلاق ويلي هو يُعبر بمثابة منهجية (Methodology ) كاملة لكيفية تصميم وبرمجة التطبيقات سواء كانت تطببيقات عادية أو حتى في التطبيقات المؤسساتية الكبيرة .

1.png

الهدف من هذا النموذج هو فصل المكونات الثلاثة عن بعضها البعض بشكل مستقل.
وكما نعلم أن نموذج التصميم هو حل لمكشلة متكررة فما هي المشكلة المتكررة التي يحلها MVC ؟
في الحقيقة الصورة التالية توضح الفكرة .

2.png

1-هي تعدد الواجهات Multiple Views مثلاً الواجهة الأولى هي برنامج Delphi والثانية هي تطبيق ويب والواجهة الثالثة هي تطبيق موبايل . وبالتالي الهدف هو إضافة واجهة جديدة من دون أن نقوم بتغير ال Controller .
2- المشكلة الثانية التي يحلها ال MVC هي تعدد وسائط التخزين Multiple Storage مثلاً ال Model 1 يتعامل مع Access DataBase و ال Model 2 يتعامل مع SqL server DataBase والثالث يتعامل مع Oracle DataBase .

في الحقيقة إن حل المشكلة الثانية يتم من خلال Design Pattern أخر هو DAO (Data Access Object) والذي يؤمن لنا التعامل مع أي قاعدة معطيات بغض النظر عن المزود سواءً كان Access أو SqL sever أو ... .
ولكن قبل هذه الطبقة (DAO) يتم وضع طبقة تُسمى ORM (Object Relational Mapping ) والتي تسمح لنا بقراءة وكتابة الأغراض من وإلى قاعدة المعطيات .

وبالتالي يكون الشكل العام للتطبيق الخاص بنا والذي يخضع لنموذج التصميم MVC حيث أن هذا التقسيم هو تقسيم منطقي كما يلي :

1 (2).png



هذه التقسيمات منطقية (نقصد بالمنطقية أن التطبيق في النهاية هو تطبيق واحد مُقسم منطقياً على شكل صفوف أو مكتبات) إلى الأقسام التالية :
وهي الواجهة التي يتعامل معها المستخدم .

هو الذي يحوي كود منطق العمل (Business Logic Code ) ويجري ضمنه كل عمليات التحقق من المعرفات ID وهذه العمليات تُسمى Authentication بالإضافة إلى عملية التحقق من الصلاحيات وتُسمى هذه العملية أيضاً Authorization .

لنفرض الآن أننا نريد قراءة غرض من قاعدة المعطيات عندها يتم بناء غرض Object يتم مقابلة هذا الغرض بعدد من الحقول ضمن قاعدة المعطيات بشكل شفاف باستعمال نموذج تصميمي أخر هو ORM (Object Relational Mapping ) أي يتم مقابلة كل غرض لدينا ضمن ال Class Diagram بمجموعة من الحقول ضمن قاعدة المعطيات (تجري عملية التقابل لمرة واحدة فقط ويمكن تعديلها لاحقاً )وبالتالي فأن المبرمج ليس بحاجة إلى كتابة تعليمات SQL والتي لها العديد من المشاكل التي قمنا بذكرها في مقال سابق .
ومن ثم يتم توليد تعليمات SQL التي تقوم بإحضار حقول هذا الغرض من قاعدة المعطيات وتمريرها إلى طبقة أخرى حيث يقطن Design Pattern أخر هو DAO والذي يقوم بالتعامل مع N Data Base at Run Time With The Same Code أي أننا نستطيع أن نقوم بالتعامل مع قاعدة معطيات Oracle , MySqL , SqL Server,… بنفس الكود وهذه الفكرة تُعتبر ثورة في عالم برمجة التطبيقات سواء كانت عادية أم مؤسساتية () .

ثم يقوم ال DAO بالإتصال بقاعدة المعطيات واسترجاع المعطيات منها ومن ثم يمررها لل ORM الذي يقوم ببناء الغرض وملئ حقوله من النتيجة التي وصلته ويعيده إلى المبرمج الذي قام بطلب الحصول على قيمة هذا الغرض(النتيجة تعود إلى ال Controller) .
نفس الكلام ينطبق عند طلب المبرمج كتابة أو تحديث قيمة هذا الغرض ضمن قاعدة المعطيات.


1- بعض الكتب بتحكي فكرة ال MVC بطريقة انا بعتبرها خاطئة , وهي أن طبقة ال Model تتخاطب مع طبقة ال View
وهذا الكلام غير صحيح (من وجهة نظري) بكل الأحوال سأحاول أن أسأل عن الموضوع.
2- لا يمكن تحقيق الفصل المنطقي بين الطبقات الثلاثة 100% و لكن يجب العمل على هذا النموذج لضمان سرعة تطوير البرمجيات .
3- أرجو من كل الطلاب يلي عم يشتغلو مشاريع أتمتة أو مشاريع Business Application والتي هي غالباً مشاريع طبقة ال View بتكون عالويب , أنو يلتزمو بهاد ال Design Pattern وبمكتبة الكلية في أكتر من مشروع مشغولين على الMVC -دورو بمشاريع الرابعة والخامسة- بتلاقو شي حلو .

شكراً للجميع , وفي حال وجود أسئلة وإستفسارات أنا جاهز .
Mohammad_807
مشرف منتدى البرمجة العام
مشرف منتدى البرمجة العام
 
مشاركات: 635
اشترك في: الأحد مارس 09, 2008 4:29 pm
الجتس: ذكر
الشهادة الثانوية:
الجامعة:
الكلية:
المرحلة الدراسية: السنة الخامسة
الاختصاص: شبكات و نظم


العودة إلى مقالات

الموجودون الآن

المستخدمون المتصفحون لهذا المنتدى: لا يوجد أعضاء مسجلين متصلين و 2 زائر/زوار