النتائج 1 إلى 11 من 11

الموضوع: [تحليل] ترتيب ملفات البرمجيات الكبيرة

  1. #1
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897

    [تحليل] ترتيب ملفات البرمجيات الكبيرة



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

    المهم فقلت ساشارك أحبابنا في سوالف في طريقة تحليلي لترتيب ملفات البرمجيات الموسومة بالكبر شيئا ما .

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

    و لنضرب مثالا على ذلك ، لدينا مخطط لبناء موقع يحتوي على مركز تحميل ، مركز العاب ، منتدى ، مدونة و اخيراً معرض صور .

    فسيكون التخطيط -باعتماد نظام الموديولار او الموديلز) كالتالي :
    modules/blog/
    modules/forum/
    modules/upload/
    modules/games/
    modules/gallery/
    بحيث أن كل مجلد من المجلدات يحتوي داخله جميع الملفات البرمجية التي تخدم هذا الجزء من البرمجية .

    ما فائدة الـ Modular ؟

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

    هذا كان الجزء الاكبرمن الموضوع و هذه هي فكرتي و الله اعلم و انت لكم خبرة اكثر مني في هذا المجال

    المشكلة التي قد تواجهها (و انا اوجهها ) و هو محل النقاش ، كيف ستكون لوحة التحكم اذا كان كل خدمة مثلا المدونة سيندج تحتها العديد من الخدمات (المقالات ، الاقسام ، المشاركات ، التقييمات ، الاعدادات ..) فستجد زحمة كبيرة جداً جداً في لوحة التحكم .

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

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

    اخوكم .






    __________________
    راسلني


  2. #2
    عضو نشيط
    تاريخ التسجيل
    Aug 2007
    المشاركات
    65


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

    تقبل خالص تقديري





    __________________
    سوق الكويت

  3. #3
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    *قبل ان ابدأ بالبرمجة اقوم بتحليلها بشكل جيد + تخطيط قواعد البيانات
    *احدد كل الوحدات( الموديولات) اللازمة
    *اجد القواسم المشتركة بينها واخططها كمكتبات و helpers

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

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

    من الآن اجد هذا السكربت ممل جدًا بسبب حجمه والتكرار الذي ممكن ان يكون فيه، جرب اعمل ادوات تختصر عليك الوقت وخصوصًا ادوات تختصر عليك في الواجهة الرسومية لأنها اصعب واطول من البرمجة.
    وهنا انصح بمركبات الجكويري وخاصة اضافة jqgrid الرهيبة!
    http://trirand.com/blog/jqgrid/jqgrid.html
    ممكن ان تختصر عليك كثيرًا في كتابة القوالب


    بالنسبة لنظام التراخيص الذي تحدثنا عنه مسبقًا ممكن ان تعمل wrapper class ترسل اليه كل كلاسات البرمجية وهناك تقوم بالتحكم بالوصول إلى موارد النظام

    أو

    جرب ال extreme programming
    هناك بعض المصادر العربية عنها

    لكن هذا افضل من شرحها حسب رأيي
    http://www.youtube.com/watch?v=XP4o0ArkP4s





    التعديل الأخير تم بواسطة ahmad sadiq ; 28-08-2010 الساعة 09:27 AM

  4. #4
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


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


    فا وصلة الى التالى
    انى اعمل جدول للروابط الربط الخاصة بلوحة التحكم السكربت الجديد فا تظهر فى لوحة التحكم الرئيسية عادى

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


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

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


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





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  5. #5
    عضو فعال
    تاريخ التسجيل
    Jun 2008
    المشاركات
    1,600


    هذا احسن ما توصلت اليه بالنسبة لنظام التراخيص، كلاس يقوم "بتغطية" الدوال في البرمجية(ويمكن استخدامه للكلاسات مع بعض التعديلات)

    ما معنى تغطية؟

    نقوم بتسجيل الدوال كلها في الكلاس
    ثم نقوم باستدعاء الدالة التي نريدها عن طريق الكلاس
    هذا الكلاس يفحص حسب المعلومات التي عنده، هل هذه الدالة + رقم المجموعة مصرح لها بالعمل، اذا نعم يقوم بتشغيلها، اذا لا ،يقوم بطباعة warning
    هنا يمكن ان تتحكم بدرجة التحذير من warning,notice,fatal error كما تشاء عن طريق الدالة:
    http://php.net/manual/en/function.trigger-error.php

    كود PHP:
    $all_funcs get_defined_functions() ;
    foreach (
    $all_funcs['user'] as $func)
    $this->add($func); 
    هذا الكود وضعته في البناء للكلاس وهو يقوم باضافة كل الدوال المعرفة عن طريق المستخدم تلقائيًا للكلاس، يمكن شطب هذا الامر واضافة الدوال كما تشاء .

    كود PHP:
    $this->func_r = array();
    //function name || group name
    $this->priv_r = array('print_data'=>12); 
    هذه متغيرات الكلاس، وهي واضحة كما ترى

    نقوم بتشغيل الدالة عن طريق الامر:
    كود PHP:
    $wrapper->run("print_data",array("ahmad","here"),1112); 
    نقوم بادخال بارمترات الدالة كمصفوفة

    اما هنا:
    كود PHP:
    if ($this->priv_r[$func_name] == $group_id)
    call_user_func_array($func_name,$arg); 
    نقوم بفحص الصلاحيات ثم نقوم بتشغيل الدالة اذا كان لها صلاحية

    وهذا هو الكود كامل، مع تجربته بصلاحيات صحيحة وغير صحيحة:
    كود PHP:
    <?php

    class wrapper{

    private 
    $func_r;
    private 
    $priv_r;

    function 
    __construct(){
    $this->func_r = array();
    //function name || group name
    $this->priv_r = array('print_data'=>12);

    $all_funcs get_defined_functions() ;
    foreach (
    $all_funcs['user'] as $func)
    $this->add($func);

    }
    function 
    add($func){
    $this->func_r[] = $func;
    }
    function 
    run($func_name,$arg,$group_id){
    if (
    $this->priv_r[$func_name] == $group_id)
    call_user_func_array($func_name,$arg);
    else
    trigger_error("permission denied",E_USER_WARNING);
    }
    }

    function 
    print_data($name,$to){
    echo 
    "<p>Welcome {$name} to {$to}</p>";
    }



    $wrapper = new wrapper();
    $wrapper->run("print_data",array("ahmad","here"),1112);
    $wrapper->run("print_data",array("ahmad","here"),12);
    //function not found
    $wrapper->run("print_data1",array("ahmad","here"),12);

    ?>
    بالتوفيق





    التعديل الأخير تم بواسطة ahmad sadiq ; 28-08-2010 الساعة 10:58 AM

  6. #6
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


    محمد هلال بخصوص التراخيص احيلك على هذا الموضوع رغم اني لم استفد منه الا القليل لكنه ربما ينفعك :
    أفضل الطرق لبناء تراخيص الأعضاء المعقدة؟
    بخصوص كثرة الاقسام فيمكنك تفاديه مثلا لديك قسم للمدونة و قسم للمنتدى
    و كلاهما لديه اقسام :
    المدونة : قسم التطوير ، قسم التصميم ..
    المنتدى : قسم الاستشارات ، قسم الاكل ..
    لن تحتاج ان تضيف جدول للمدونة و المنتدى بل فقط جدول واحد(اسمه مثلا categories) تضع فيه التالي :
    id
    title
    type
    اهم حقل هو type بحيث انه عندما تضيف قسم جديد تحدد في اي جزئية يندرج هذا القسم( هل في المدونة ام في المنتدى) و عندما تريد جلب أقسام المدونة مثلا سنقوم بعمل التالي (باستعمال كلاس قواعد البيانات) :
    كود PHP:
    $wadae = new wada();
    $wadae->where('type','blog')->get(); 
    ان شاء الله وصلت الفكرة
    احمد سأرد عليك إن شاء الله عندما ارجع .





    __________________
    راسلني

  7. #7
    عضو فعال
    تاريخ التسجيل
    Jul 2008
    المشاركات
    1,109


    محمد هلال بخصوص التراخيص احيلك على هذا الموضوع رغم اني لم استفد منه الا القليل لكنه ربما ينفعك :
    أفضل الطرق لبناء تراخيص الأعضاء المعقدة؟
    بخصوص كثرة الاقسام فيمكنك تفاديه مثلا لديك قسم للمدونة و قسم للمنتدى
    و كلاهما لديه اقسام :
    المدونة : قسم التطوير ، قسم التصميم ..
    المنتدى : قسم الاستشارات ، قسم الاكل ..
    لن تحتاج ان تضيف جدول للمدونة و المنتدى بل فقط جدول واحد(اسمه مثلا categories) تضع فيه التالي :
    id
    title
    type
    اهم حقل هو type بحيث انه عندما تضيف قسم جديد تحدد في اي جزئية يندرج هذا القسم( هل في المدونة ام في المنتدى) و عندما تريد جلب أقسام المدونة مثلا سنقوم بعمل التالي (باستعمال كلاس قواعد البيانات) :
    كود PHP:
    $wadae = new wada();
    $wadae->where('type','blog')->get(); 
    ان شاء الله وصلت الفكرة
    احمد سأرد عليك إن شاء الله عندما ارجع .
    الطريقة هى الى بستخدمها مع الاقسام والصلاحيات انا قلت ليك علية في الموضوع
    انا كل الى كاتبة في الر في حالة اذا كانت اريد اضافة moduls جديدة وصلاحيات التحكم في الموديلات والخ حاول تقراءة الى كتبة واحد وحد وانت تفهم اية الى انا بقصدة





    __________________
    ســـــــبحان الله وبـــــــــحمده *سبـــــــــــحان الله العظيم
    لطلب البرمجة فقط
    helal-egypt@hotmail.com

  8. #8
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


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





    __________________
    راسلني

  9. #9
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    508


    استفدت كتيرا من الموضوع
    بارك الله فيك





    __________________
    قوالب ووردبريس مدفوعة

    تابع احدث الاعمال على الفيسبوك :https://www.facebook.com/almtwer


  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Aug 2007
    المشاركات
    508


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





    __________________
    قوالب ووردبريس مدفوعة

    تابع احدث الاعمال على الفيسبوك :https://www.facebook.com/almtwer


  11. #11
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


    قصدك widgets ؟و plugins ؟





    __________________
    راسلني





ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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