الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

المنتديات ماهى،و كيف تصنع

مغلقاستطلاع
بدأه C++er في 5 يناير 2008 · 18 رد · 2,287 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام

بناء المنتديات

19 مشارك في التصويت

?? ???? ??? ???? ?????

???10 صوت · 53%
??9 صوت · 47%
#1 صاحب الموضوع

توجد انواع عديده من البرامج كل نوع له طريقه و اسلوب فى برمجته

و لكن المنتديات من الأنواع شبه غامضه، لإن قد يكون لديك معرفة قويه بصناعة قواعد البيانات و تحليل النظم و لديك خلفيه قوية فى تصنيع البرمجيات

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

و إن اردت بناء برنامج المنتدى كما يسمى فكيف ابدأ فيه هو الأخر و كم عدد الصفحات التى ساحتاج إليها؟

الموضوع هام فأرجو من لديه معرفة بذلك الموضوع ان يعيره بعض الإهتمام و الإنتباه.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#2

قبل البدء بكل شيء قم ببناء structure مشروعك على ورقة خارجيه ثم قم ببناء DB structure وبعدها أبدأ بالتصميم أن احتجت لاي تعديل تستطيع العودة إلى أوراقك وتطويرها

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#3

المشكلة انى لا اعرف كيف يكون الـ Structure الخاص بالـ Database

انا عندى عدة تصورات للمنتدى و لكن لا يوجد عندى اى تصور لشكل الـ Database

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Game Expert في 6 يناير 2008 في 01:01

مدونتي: C++ Tips and Tricks

#4

السلام عليكم ورحمة الله وبركاته

بناء المنتديات كبناء أي سوفت وير كبير. ولها طرق متفق عليها وهي دائره بناء السوفتوير Software cycle وهذه الطرق standard نظراً لأهميتها ونجاحها في بناء المشروعات العملاقه ولو أكبر من المنتديات.

وليس كما ذكرتم سابقاً ان تبدأ بتصميم قاعده البيانات, فهذا خطأ كبير, فعلي أي أساس ستصمم وتحدد الجدوال ومحتوياتها.

لبناء أي سوفت وير. لابد من إتباع تلك الخطوات الرئيسيه:

1- تحديد المطلوب وتحليله requirement phase ولها خطوات فرعيه.

2- التصميم Design phase . وتشمل تصميم الداتابيز والclasses .

3- النتفيذ والإختبار Implementation and test phase

ويعرف العلم المتخصص في ذلك software engineering.

وبالطبع عند تصميم المنتدى يجب أن تصممه باتباع الطرق المتعارف عليها ومنها 3layer design حيث تقوم بتصميم طبقه من الـclasses للاتصال بقاعده البيانات تسمي Mapper\

وطبقه أخري من الclasses تسمي logical layer وهي التي تحتوي علي العمليات الحسابيه والمنطفيه.

وأخر طبقه من الـ classes تسمي Interface layer وهي متخصصه في GUI

حيث تتيح لك هذه الطبقات نظام عالي من الامن security و السهوله في الأداه وكفاءه عاليه High performance and flexibility

وبدون إتباع تلك الخطوات , هتتعب وسيضيع جهدك هباءاً, ولن تتنج منتدى ذات كفاءه عاليه.

ومع أمنتياتي بالتوفيق.

اتق الله حيثما كنت واتبع السيئة الحسنة تمحها وخالق الناس بخلق حسن

منتدي هندسة الحاسبات

#5
حمزة أحمد كتب:
السلام عليكم ورحمة الله وبركاته

بناء المنتديات كبناء أي سوفت وير كبير. ولها طرق متفق عليها وهي دائره بناء السوفتوير Software cycle وهذه الطرق standard نظراً لأهميتها ونجاحها في بناء المشروعات العملاقه ولو أكبر من المنتديات.

وليس كما ذكرتم سابقاً ان تبدأ بتصميم قاعده البيانات, فهذا خطأ كبير, فعلي أي أساس ستصمم وتحدد الجدوال ومحتوياتها.

لبناء أي سوفت وير. لابد من إتباع تلك الخطوات الرئيسيه:

1- تحديد المطلوب وتحليله requirement phase ولها خطوات فرعيه.

2- التصميم Design phase . وتشمل تصميم الداتابيز والclasses .

3- النتفيذ والإختبار Implementation and test phase

ويعرف العلم المتخصص في ذلك software engineering.

وبالطبع عند تصميم المنتدى يجب أن تصممه باتباع الطرق المتعارف عليها ومنها 3layer design حيث تقوم بتصميم طبقه من الـclasses للاتصال بقاعده البيانات تسمي Mapper\

وطبقه أخري من الclasses تسمي logical layer وهي التي تحتوي علي العمليات الحسابيه والمنطفيه.

وأخر طبقه من الـ classes تسمي Interface layer وهي متخصصه في GUI

حيث تتيح لك هذه الطبقات نظام عالي من الامن security و السهوله في الأداه وكفاءه عاليه High performance and flexibility

وبدون إتباع تلك الخطوات , هتتعب وسيضيع جهدك هباءاً, ولن تتنج منتدى ذات كفاءه عاليه.

ومع أمنتياتي بالتوفيق.

شكرا أخي الكريم على هذا الرد الهندسي B)

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#6
اقتباس
السلام عليكم ورحمة الله وبركاته

بناء المنتديات كبناء أي سوفت وير كبير. ولها طرق متفق عليها وهي دائره بناء السوفتوير Software cycle وهذه الطرق standard نظراً لأهميتها ونجاحها في بناء المشروعات العملاقه ولو أكبر من المنتديات.

وليس كما ذكرتم سابقاً ان تبدأ بتصميم قاعده البيانات, فهذا خطأ كبير, فعلي أي أساس ستصمم وتحدد الجدوال ومحتوياتها.

لبناء أي سوفت وير. لابد من إتباع تلك الخطوات الرئيسيه:

1- تحديد المطلوب وتحليله requirement phase ولها خطوات فرعيه.

2- التصميم Design phase . وتشمل تصميم الداتابيز والclasses .

3- النتفيذ والإختبار Implementation and test phase

ويعرف العلم المتخصص في ذلك software engineering.

وبالطبع عند تصميم المنتدى يجب أن تصممه باتباع الطرق المتعارف عليها ومنها 3layer design حيث تقوم بتصميم طبقه من الـclasses للاتصال بقاعده البيانات تسمي Mapper\

وطبقه أخري من الclasses تسمي logical layer وهي التي تحتوي علي العمليات الحسابيه والمنطفيه.

وأخر طبقه من الـ classes تسمي Interface layer وهي متخصصه في GUI

حيث تتيح لك هذه الطبقات نظام عالي من الامن security و السهوله في الأداه وكفاءه عاليه High performance and flexibility

وبدون إتباع تلك الخطوات , هتتعب وسيضيع جهدك هباءاً, ولن تتنج منتدى ذات كفاءه عاليه.

ومع أمنتياتي بالتوفيق.

كلامك صحيح و مفيد و لكنى لم اقل انى سأبدأ بصنع قاعدة البيانات و لكنى قلت انه لدى تصور لشكل المنتدى و لكنى لا اعرف كيف يصنع؟

المشكله لدى ليست فى التطبيق و لكن فى كيفية التطبيق؟ ما هى الطريقة التى ساتبعها. و لتوضيح وجهة نظرى اكثر لأصنع برنامج مكتبة عامة قمت بتحليل النظام الخاص بها و بعدها و بناءاً على تصميمات UML بدأت بتصنيع قاعدة بيانات تتلائم مع متطلبات النظام و تحتوى على عدد كذا من الجداول و الإجراءات المخزنه و العلاقات و ما إلى ذلك ثم بدءت بدءت بتحديد متطلبات البرنامج من قاعدة البيانات و صنعت البرنامج وهو الأن يعمل بكفاءة و الحمد لله و اطور فيه.

الأن كيف استطيع تحليل نظام لا اعرف ماهيته؟

فالنفترض انى اريد تصنيع منتدى كهذا ما المطلوب منى عمله بخلاف معرفة لغات البرمجة و قواعد البيانات؟

ارجو ان تكون الفكرة قد وضحت.

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Game Expert في 6 يناير 2008 في 16:03

مدونتي: C++ Tips and Tricks

#7

موضوع شيق بصراحة و نتمنى من كل اللي يقدر يعلمنا بدوره مبسطه و سعريعة للهندسة البرمجية انا اول المشاركات

سبحان الله و بحمده سبحان الله العظيم

#8

هندسة البرمجيات معقدة جداً وأنا من اشد أعدائها مع العلم انها هي اساس بناء اي برنامج واي تطبيق

ولكن اعتبرها من مهام software eng فقط وكوني computer eng فلا أحاول أن اتعمق بها ولكنها مفيده لكي تاخذ لمحة عن اساسياتها

joseph.gif

logo.gif

CCNA 640-802

مدونتي

#9

يوجد 5 اشخاص قاموا بالتصويت بنعم حتى الأن و لا شخص منهم قام بالإجابه عن السؤال بشكل واضح؟؟؟

إذا كان هناك من يفهم سؤالى ارجو منه ألا يبخل بالإجابه.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#10
السـاحر كتب:
هندسة البرمجيات معقدة جداً وأنا من اشد أعدائها مع العلم انها هي اساس بناء اي برنامج واي تطبيق

ولكن اعتبرها من مهام software eng فقط وكوني computer eng فلا أحاول أن اتعمق بها ولكنها مفيده لكي تاخذ لمحة عن اساسياتها

ههههه :haha:

Computer Engineer is a Software Engineer, but Software Engineer is not a Computer Engineer

And

Software Engineer is a programmer, but programmer is not a software engineering

ده الـ software engineer أسهل حاجه في هندسة الحاسبات, أمال هتعمل إيه مع FPGA, Microcontroller, AI

بالتوفيق

اتق الله حيثما كنت واتبع السيئة الحسنة تمحها وخالق الناس بخلق حسن

منتدي هندسة الحاسبات

#11
Game Expert كتب:
يوجد 5 اشخاص قاموا بالتصويت بنعم حتى الأن و لا شخص منهم قام بالإجابه عن السؤال بشكل واضح؟؟؟

إذا كان هناك من يفهم سؤالى ارجو منه ألا يبخل بالإجابه.

و الله ولى التوفيق

أمال إلي أنا بحكي فيه من الصبح ده إيه. :S

عموماً أخي الكريم:

بناء المنتديات كبناء برنامج المكتبه, الي أنت عملته,

طريقة بناء أي سوفت وير كما ذكرت أنا أنفاً لا تعتمد إطلاقاً عن نوع السوفت وير

اتق الله حيثما كنت واتبع السيئة الحسنة تمحها وخالق الناس بخلق حسن

منتدي هندسة الحاسبات

#12
Game Expert كتب:
توجد انواع عديده من البرامج كل نوع له طريقه و اسلوب فى برمجته

مع إحترامي الشديد لك, للأسف العباره هذه خطأ

اتق الله حيثما كنت واتبع السيئة الحسنة تمحها وخالق الناس بخلق حسن

منتدي هندسة الحاسبات

#13

بسم الله الرحمن الرحيم

إخواني الكرام جميع المشاريع سواء كانت منتديات او غيرها فسوف تجد فيها شيء من الصعوبة ولكن لا شيء مستحيل باذن الله

نفس الكلام ينطبق على تصميم المنتديات فقبل البدء بالتصميم يجب التركيز والتحليل الجيد لمعرفة ماهية المنتديات

اولا :جميعنا نتفق على ان المنتديات لا بد ان تحتوي على قاعدة بيانات يتم تخزين المواضيع فيها والمستخدمين والصلاحيات والمواضيع ذات الصلة بالمنتدى ولكن ماهو المخطط الخاص بقاعدة البيانات للمنتدى فهو ليس موضوع النقاش الان

ثانيا:

لو اتينا الى اي منتدى لوجدنا انه اشبه بالجدول الذي يحتوي على صفوف واعمدة

والصفوف تجده مكونه من عمود على سبيل المثال اسم القسم وعدد المواضيع او اسماء المشرفين وهذه الجداول قد تتفرع منها جداول اخرى لنفرض على سبيل المثال دخلت الى منتدى وكان اسمه القسم التقنى عند النقر على هذا المنتدى يتم تحويل الى صفحة اخرى تحتوي على اقسام فرعية تابع لهذا القاسم وهكذا

ثالثا :

لو اتينا لنتامل هل يوجد ادوات في asp تقوم بالعمل المشابه لهذه الفكرة لوجدنا GridView تقوم بالواجب فهى عبارة عن جدول به صفوف واعمدة

وبتطيق نفس الفكرة حيث انه يوجد اقسام رئيسية تابعة لها اقسام اخرى وهي ماتسمى Master/Details

رابعا:

لنفترض اننا قمنا بتصمم قاعدة البيانات فما علينا فعلها بعد ذلك هو ربطها بالGridView

الخلاصة

في نهاية الموضوع اسال الله العظيم ان يوفقنا جميعا الى مايحب ويرضى واتمنى ان شاء الله ان يكون ماقلته ذو فائدة ومنفعة واعتذر ان بدا كلامي غير واضح او غير صحيح وشكرا لكم

#14
حمزة أحمد كتب:
مع إحترامي الشديد لك, للأسف العباره هذه خطأ

أخى حمزة و ما الخطأ فيها ؟؟؟؟

ما قلته عن هندسة البرمجيات هو وصف عام لتصنيع اى برنامج اما ما قصدته هو برمجة برنامج Antivirus ليست مثل برمجة برنامج تحليل أصوات او بناء نظام لمستشفى.

أخى Xhack شكرا لإجابتك وهى فعلا قاربت من اجابة سؤالى.

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

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

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

الموضوع مشوش بالنسبة لى فأرجو ان ارى منكم صدر رحب و صبر على معرفتى الضئيلة.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#15

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

أخ Game Expert,, لدي إضافة أود أن أضيفها رغم أن خبرتي معدومة في برمجة صفحات الويب :)

طريقة التفكير التي تتبعها لن توصلك إلى شيء, و السبب أنك لا تفكر بشكل مجرد,

عندما تريد أن تبرمج أي شيء (خصوصاً على درجة من التعقيد كالمنتديات) لايجب التفكير في التفاصيل مباشرة,

أفضل طريقة هي تقسيم المنتدى إلى كائنات (فئات) كائن للمستخدم و كائن للمقال و كائن ......,

بعد ذلك تأتي المهمة الصعبة و هي تحديد العلاقات العامة بين هذه الكائنات أو ما يسمى الـ interaction policy بين الكائنات و يجب أن يكون ذلك مفصلاً قبل الشروع في كتابة أي كود,

و لكن يبقى شيء مهم, عندما يكون لديك أكثر من نوع للمستخدم يجب أن يتفقا في مجموعة من العلاقات و بعد ذلك يمكن أن يزيد أحدهما على الآخر, مثلاً يكون لديك مدير و مستخدم عادي على سبيل المثال,

بعد ذلك قم بكتابة الكود ,,

تحياتي ,,

#16
Game Expert كتب:
أخى حمزة و ما الخطأ فيها ؟؟؟؟

ما قلته عن هندسة البرمجيات هو وصف عام لتصنيع اى برنامج اما ما قصدته هو برمجة برنامج Antivirus ليست مثل برمجة برنامج تحليل أصوات او بناء نظام لمستشفى.

هناك فرق بين طريقة بناء البرامج و الأدوات المستخدمة في ذلك, فطريقة بناء Antivirus, sound analysis, ... واحده, ولكن كوني أستخدم في الأول دوت نت والثاني أستخدم متلاب فهذا لا يتعارض مع الطريقة الصحيحة التي يجب أن تبني بها أي منتج سوفت وير سواء كان Desktop application or Web application.

Game Expert كتب:
حيث لأنه لكن مجموعة برامج متشابهة يوجد تصميم مشابه لقاعدة البيانات، انا اعتقد انه للمنتديات عموما توجد مجموعة من الجداول ثابته مثل جدول السماحيا و جدول المستخدمين.

أنت الي بتصنع الجدوال بنفسك, ولا يوجد جداول أساسيه في كل المنتديات, حيث أن الجداول تعتمد صرف علي تصميمك وإمكانيات المنتدي الخاص بك.

في البدايه, لا تفكر إطلاقاً بشكل المنتدى وعدد الصفحات والجداول, لأن هذه المعلومات معتمده علي خطوات سابقه. وكما قال أخونا الفاضل Khaled.Alshaya لا تدخل في التفاصيل.

دعني أعيد لك ما ذكرته سابقاً ولكن بتفصيل أكثر.

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

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

وأن تحلل النظام بتلك الكيفيه لا تفكر إطلاقاً بطريقة تصميها وتنفيذها.

وللعلم في الشركات العملاقه مثل IBM, فريق عمل الي بيحلل أشخاص مختلفين تماماً عن فريق عمل الذي يصمم, ومختلف عن فريق عمل التنفيذ.

بعد التحليل المفروض أن هيكون معاك ورق مكتوب فيه خصائص المنتدى وإمكانيته بطريق منظمه.

ثالثاً: تقوم بتصميم الـ classes الخاصه بكل مطلوب أساسي, وبعد ذلك تصمم العلاقات بينهم. أنظر إلي هذه اللحظه ونحن لن نتعامل إطلاقاً مع قاعدة البيانات. وكيف ستكون

بعد ذلك تصمم قاعدة البيانات علي حسب إحتياج كل class أساسي لها وبالعلاقات بين الclass السابقة تحدد العلاقات بين الجدوال.

رابعاً: تقوم بتفيذ ما قمت بتصميمه.

أنتمني أن تكون فكرتي قد وصلت. وأنا أنصحك لو أنك لم تدرس software engineering , أنك تجيب كتاب وتقرأ عنها أولاً.

وأكرر لو أنك تريد أن تبني نسخة منتدى عملاقه يستفيد منها الناس مثل phpbb وبدون إستخدام software engineering, هتتعب بدون الحصول علي اي فائده - ومتأسف علي العباره- لن تستطيع بناء منتدى محترم.

وبالتوفيق

اتق الله حيثما كنت واتبع السيئة الحسنة تمحها وخالق الناس بخلق حسن

منتدي هندسة الحاسبات

#17

اخى حمزة احمد جزاك الله كل خير

و فعلا انا جبت كتب عن الـ Software Engineering وهبدأ اذاكرها ان شاء الله.

و شكرا لكل من ساهم فى محاولة توضيح الموضوع لى.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#18

سلام عليكم

انا بعدني تحت خط الصفر البرمجي ههههه ودخلت الموضوع قلت يمكن استفيد واخذ فكره عامه عن المنتديات يمكن اتعلم شي جديد

بس مب كان الجماعه خرجت عن الموضوع وقامت تشرح اشياء اكثر تعقيدا من الموضوع :o

بس عندي سؤال لازم نعيد اختراع البرمجه لكي نقوم ببرمجه شي معين في تطبيقات الويب ؟؟

#19

السلام عليكم ..

بالنسبة لي فأنا اقوم ومنذ شهرين تقريبا ببناء منتدى باستخدام ASP.NET Ajax و احب هنا ان اطرح بعض النقاط للافادة.

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

بخصوص المنتدى ، فقد قمت بنفس العمل: تم تقسيمه كطبيق الى الاجزاء التالية

1- الاعضاء

2- المنتديات

3- المشاركات

بالنسبة للأول فيمكن الاستفادة من قاعدة البيانات الافترضية لل ASP.NET والتي ستوفر بعض التعقيدات الخاصة بالمستخدمين ومن خلالها يمكن عمل صفحات خاصة بالاشتراك بالمنتدى + استعاده كلمة السر + قائمة اعضاء المنتدى + إدارة الاعضاء (حذف /حظر الخ) + الرسائل الخاصة + تحرير الملف الشخصي (وذلك بعد اضافة الحقول المرغوبة لجدول membership ) وغيرها من العمليات والتي هي متاحة لمدير المنتدى باكملها و لبقية الاعضاء حسب الصلاحيات التي تحددها..

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

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

اود ان اضيف ملاحظة هنا حيث انني قمت بوضع الردود بجدول مستقل عن جدول المشاركات لاسباب متعدده..

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

* ملحوظة مهمة جدا **

يحبذ انشاء views لقاعدة بيانات المنتدى لتسريع عرض البيانات وكذا لتسهيل عرض معلومات مثل عدد الردود حول مشاركة معينة وغيرها

تحياتي للجميع

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…