صفحة 1 من 2 12 الأخيرةالأخيرة
النتائج 1 إلى 15 من 20

الموضوع: سلسلة دروس سجن البرمجة (كلها هنا !)

  1. #1
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    سلسلة دروس سجن البرمجة (كلها هنا !)



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

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

    وجدت أنني قد شتت سلسلة دروس سجن البرمجة بين سوالف سوفت وموقعي وموقع ديفبيديا(كنت قديماً أكتب فيه)

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

    لذلك أعتذر منكم عن التشتت الكبير في هذه السلسلة التي أعجبت الكثير من الناس
    ولكني لم انتبه لهذا التشتت إلا الآن ..

    بالنسبة لـ هذه السلسلة
    قد بدأت بها في شهر 7 - 2005 في موقعي الخاص وكنت أضع الروابط في سوالف
    على موقعي ومن ثم اكملتها في موقع ديف بيديا في آواخر عام 2006 وكنت قد عدلت على الدروس الأولى وأضفت مزيداً من الدروس عليها وعدلت ترتيب الدروس
    وها قد جاء عام 2008 كي أكمل واضع المزيد من الدروس لهذه السلسلة
    أذكر أنه في اول العام السابق كتبت كتاباً كاملاً بعنوان سجن البرمجة .. ولكني للأسف سافرت ونسيت كل ملفاتي في جهازي بفلسطين وللأسف حذفت جميع الملفات بطريق الخطأ ومنها الكتاب المذكور .. لكن الحمد لله على كل شيء


    وبإذن الله بعد أن اجمع جميع المواضيع القديمة هنا في هذا الموضوع
    أي درس جديد من سجن البرمجة سأحاول أن أضيف رابطه في رد جديد هنا

    وشكراً لكم

    ولنا لقاء







  2. #2
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    [سجن البرمجة] كيفية الدخول له ؟



    لربما يدغدغك سؤال كلما دخلت الآنترنت
    ويقلق نومك
    ألا وهو : كيف يمكنني أن أصبح مبرمج ؟


    انا سأرد عليك بسؤال آخر
    أتعلم ما هي عواقب أن تصبح مبرمج ؟

    وأنا أيضا سأرد على سؤالي
    الجواب : 1- سوف تحرم من النوم
    2- سوف تحرم من الطعام
    3- يجب ان تتحمل غباء المنتقدين

    لربما الآن انت مذهول
    وتقول كيف أحرم من النوم و الطعام وما دخل الغباء بي ؟

    الجواب انت بالطبع سوف تبرمج برنامج تفيد به نفسك أو الآخرين
    لذلك سوف تتحمل العواقب السابق ذكرها حتى تنهتي من البرنامج


    الآن وقد علمت ما عواقب ان تصبح مبرمج ، أقول لك
    أهلا وسهلا بك حللت سجينا بيننا في سجن البرمجة ….


    وإليك تعريفات هامة

    سجن البرمجة : يعني أنك أنت سجين و البرمجة هي سجنك ..
    السجّان : اللغة التي تتعلمها وهي في هذا المجال PHP
    المعذبون : وهي الأدوات المساعة للسجّان (PHP) مثل الـ HTML و CSS و إخوتهم ..


    بالمناسبة سجن البرمجة عبارة عن كلمة اقتبستها من واقع الحياة حيث اننا نرى أن المبرمج يلزم كرسيه حتى يُنهي برنامجه .. لذلك هو سجين و البرمجة هي سجنه ..


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

    الطرفة : يقال انه هنالك معلمة اصطحبت تلاميذها لحديقة الحيوان .. فعدما مروا بجانب القرود
    صاح التلاميذ مبرمجون .. مبرمجون ؟ .. استغربت المعلمة و سألتهم لماذا قلتم
    عنهم مبرمجون !! .. قالوا لأن أعينهم حمراء و أقفيتهم متورمةJ ..





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




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



    الآن هذه أسئلة تتبادر لأذهانكم يا أعزائي المساجين

    من هو السجّان ؟


    السجان الاساسي كما ذكرنا هو PHP
    وهي اختصار لـ Personal Home pages
    وحديثا تحوّل الاختصار لـPHP Hypertext Preprocessor
    و موقعها الأساسي PHP: Hypertext Preprocessor
    و الذي أنشأها هو Rasmus Lerdorf .. هذا ما تحتاج أن تعرفه عن السجّان الأساسي الـ PHP




    ماذا يمكن لسجّاني أن يفعل ؟
    كل شيء يمكنك تخيله يستطيع هذا السجّان ان يفعله
    (سجّان متعدد المواهب . !!) ولهذا إنتبه لكل قدرات سجّانك
    فمن الممكن أن تُبرمج برنامج وتسهو عن قدرة من قدراته
    فيتم اختراق البرنامج


    هنالك ملاحظة .. السجّان وهو الـ PHP ورئيس السجن يتم برمجته عن طريق الحاسوب أليس كذلك .؟؟؟
    لذلك في أحد مراحلك سوف تحتاج للتعمق فيهم و ما يحتاجه برنامجك !!

    في الختام ..
    إن السجّان ألا وهو الـ Php سجّان جميل لذلك لا تخف منه


    ولنا لقاء






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    [سجن البرمجة] بعضٌ من السجّانين



    كما نعلم أن لكل سجن سجّانون .. في هذا المقال سنتعرف على بعضٍ من هؤلاء السجانين ..

    أهناك سجّانون غير الـ PHP .. وما فائدتهم؟

    بالطبع هنالك سجّانون غير الـ php أي لغات مساعدة وتتلخص فائدتهم في التالي :
    إن الـ PHP لغة للتعامل مع السيرفرات وتعتبر شبه معدومة من ناحية العرض في المتصفح ..
    اللغات المساعدة للـ PHP و لغيرها تعتبر من لغات المتصفحات .. حيث تطفي جمالاً للصفحة ولكنها لغات ساكنة ..
    من هؤلاء السجانين : html – css – JavaScript – xml
    وهنالك لغات تم دعمها من قبل الـ PHP حديثاً مثل SimpleXML و AJAX ..

    سأتحدث عن كل لغة قليلاً ..

    السجّان الأول : الـHTML
    لغة الـ html أو اللقب الحركي لها (أقصد اسمها) هتمل ..
    تعتبر من أشهر لغات الآنترنت .. و هي تعتبر إحدى أشهر لغات المتصفحات ..
    وإن كنت لا أحبذ تسميتها لغة حقيقة .. ولكن ليس هذا موضوعنا ..

    بالتأكيد أنك سمعت عنها .. و يكمن سبب شهرتها في أنها شهدت بداية عصر الآنترنت ..
    وكانت ولازالت هذه اللغة تستخدم لكتابة صفحات انترنت تستعرض من قبل المتصفحات المختلفة ..
    ولربما كانت في بدايتها لغة جافة قليلاً .. بسبب أن مستخدميها أصلاً جافيين من الرياضيين و الفيزيائيين و العساكر ..
    لذلك كانت تلبي مطالبهم البسيطة دون الحاجة لمزركشات لا مكان لها عندهم ..
    وبقيت تتطور إلى أن وصلت لمستواها الآن ..
    و اسمها أخذ من أوائل حروف Hyper Text Markup Language
    وكأغلب لغات المتصفحات تتكون هذه اللغة من وسوم مختلفة أي tags
    يمكن بين .. ويبقى المتصفح يقرأ ما بعد هذا الـ tag على أساسه حتى تأمره بالتوقف عن طريق ..
    دعنا نأخذ كلام على هذا الكلام الوسم المشهور title

    كود:
    <title> My Page </title>
    وهذا يعرض لك عنوان الصفحة My Page
    سنضطر لإنهاء هذا الفصل لأنه كله عرض معلومات معروفة لديك ..
    وكما ذكرت آنفاً انه يجب أن تكون تعرف في الـ HTML ولو قليلاً ..

    السجّان الثاني : الـCSS
    أنها لغة يتم استخدامها مع الـ html بشكل كبير ولكنها تستخدم رغم ذلك مع جميع اللغات لسهولتها ومرونتها و تم اخذ اسمها من أوائل حروف الكلمات
    Cascading Style Sheets
    ويعني صفحات الأنماط القياسية .. و يكمن مرونة هذه اللغة في جعلك تتحكم في آلاف الصفحات بل ملايين الصفحات من ملف واحد يقع تحت امتداد CSS لذلك هي لغة جميلة و مفيدة لكل مبرمج ..
    ولهذه اللغة ثلاث حالات لكيفية إدراجها في الصفحات ..
    أولاً بواسطة وضعها في الصفحة نفسها في الوسم head
    بهذه الطريقة

    كود:
    <head>
    <title> My Page </title>
    <style>
    النمط هنا
    </style>
    </head>
    والطريقة الثانية بواسطة إدراجها في ملف منفصل كما ذكرت سابقا يقع تحت امتداد CSS
    ومن ثم إدراجه في صفحة الـ html بواسطة


    كود:
    <link rel ="stylesheet" type="text / css" href = File.css" />
    وهنالك طرق أخرى ولكنها غير مفيدة لك ..

    طريقة كتابة الأوامر ..
    يتم كتابة أوامر هذه اللغة بين وسمي و كما رأيت سابقاً ..
    فلنأخذ مثال بسيط :

    كود:
    <style>
    P { 
    color : #FFF000 ; 
    }
    فلنشرح الكود السابق ..
    أولاً بدأنا الكود بـ وهو وسم البداية ..
    من ثم تطرقنا لـ P أو the Tag P يعني الوسم P و نعطيه كود لون color ومن ثم فتحنا بداية الكتابة بواسطة } ومن ثم كتبنا النمط القياسي لـ P بحيث أن أي شيء ينخرط تحت الوسمين

    و

    سيكون لونه #FFF000 .. و من ثم انهينا النمط بالفاصلة المنقوطة و انهينا الكتابة كلها ..
    مثال آخر ..
    كود:
    <style>
    a { 
    color : #FFF000 ;
    font-size : 12px ; 
    } 
    </style>
    كما ترى أعطينا الوسم a لون #FFF000 و حجم 12 بكسل ..

    الـ Classes في CSS :
    الكلاسات في الـ CSS أو ما يعرف بنظام الفئات ..
    حيث انك يمكن أن تخصص ستايل معين لنمط معين ..
    مثلاًً. : هنالك

    تريد أن يكون لونه احمر بينما الآخرون اسود أو ازرق
    المهم أنت تريد أن تميز هذا النمط عن غيره تتساءل كيف يتم ذلك ..
    يأتي لك الكلاسات وتحل لك هذه المشكلة بالمثال التالي :

    كود:
    <style>
    .redfont { 
    color : #FF0000 ;
    }
    </style>
    وفي الـ Html ..

    كود:
    <p class="redfont"> My Red Name :D </p>
    كما ترى بالمثال السابق ...

    وضعنا اسم الكلاس redfont وقبله نقطة .. وبذلك يمكنك استخدام الكلاس .. على أي شيء .. وإذا أردت التخصص أكثر فضع قبل النقطة اسم الـ tag الذي ينتمي له هذا الكلاس
    وفي مثالنا هذا هو p
    ومن ثم قمنا بعرض الناتج في الـhtml وتعريف الكلاس class="redfont"
    بسيط أليس كذلك ؟؟ ..

    أشباه الفئات :
    تعرفنا في السابق على الفتات الآن سنتعرف على أشباهها ..
    رغم إنني اعترض في بعض الأحيان على تسميتها أشباه فئات .. لأننا في الغالب لا نتحكم بتسميتها ويكون المتحكم بها هو الـ CSS أو tag نفسه ..
    لربما تنظر وتقوم ما هذا التشعب فئات وأشباه فئات (شبه جملة في محل رفع خبر )

    ولكن عزيزي المسجون لا تخف إنها بسيطة جداً.. فلنأخذ مثالاً بسيط في تنسيق الروابط التشعبية ...

    كود:
    a { color:#0000ff ; text-decoration:none }
    a:hover { color:#efb026 ; text-decoration:underline}
    a:active { color:#ff0000 }
    a:visited { color:#ab1784}
    كما ترى في المثال السابق أننا فمنا أولاًً بتحديد اللون للرابط الذي لم يتم زيارته بعد أو الرابط بشكل عام وحددنا اللون 000ff و text-decoration أي ديكور النص أو بالأحرى وجود خط تحت النص وما شكله أو لا .. نحن هنا وضعنا القيمة لا بكلمة none
    ومن ثم قمنا بالآنتقال لـ hover وهذه الخاصية بمجرد أن يلامس الماوس الرابط فإنه يتحول للون آخر ألا وهو البرتقالي .. وسيتم وضع تحت خط
    text-decoration:underlin
    أما Active فانه في حال ضغط عليها الماوس سيتحول لونها لأحمر وذلك ما قبل الدخول ..
    يعني اضغط بالماوس عليها و ابقي يدك ضاغطة ومن ثم ابعد الماوس عن الرابط ستجد انها حمراء بمجرد ان تضغط في مكان آخر يذهب اللون ..
    الأن visited فانك تغير لون الرابط الذي تمت زيارته مسبقاً حتى تخبر الزائر انه زار هذا الرابط مثلاًً ..

    هذا بالنسبة لأشباه الفئات

    الـ ID أو المعرف :
    انه يشبه الـ classes و يمكنك استخدامه متى احتجت إليه
    يأتي لك الكلاسات وتحل لك هذه المشكلة بالمثال التالي :
    كود:
    <style>
    #right { 
    text-align : right ;
    }
    </style>
    وفي الـ Html ..

    كود:
    <p id="right"> GO </p>
    المثال لا يحتاج لشرح ..


    هذه بعض الأساسيات يا عزيزي المسجون

    لربما مستقبلا يتم التطرق بشكل أكبر لبعضها ان احتاج الأمر

    أما الآن يمكنك أخذ استراحة والذهاب للزنزانة

    ولنا لقاء

    تاريخ الكتابة : 20 يوليو 2006






  4. #4
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    [سجن البرمجة] أنواع المتغيرات والتعامل معها،



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

    حسناً يا مسجون البرمجة


    أنواع المتغيرات

    Integers
    الأعداد الصحيحة

    كود PHP:
    $val 22
    ويتم تعريف المتغير كعدد صحيح كما في المثال السابق دون علامة تنصيص

    الدوال التي تتعامل معها :

    أهم دالة intval

    كود:
    Intval($val);
    تقوم هذه الدالة بجعل المتغير عدد صحيح
    مثال :
    كود PHP:

    echo intval(42); // 42
    echo intval(4.2); // 4
    echo intval('42'); // 42
    echo intval('+42'); // 42
    echo intval('-42'); // -42
    echo intval(042); // 34
    echo intval('042'); // 42
    echo intval(1e10); // 1410065408
    echo intval('1e10'); // 1
    echo intval(0x1A); // 26
    echo intval(42000000); // 42000000
    echo intval(420000000000000000000); // 0
    echo intval('420000000000000000000'); // 2147483647
    echo intval(428); // 42
    echo intval('42'8); // 34 
    وهذه الدالة مهمة جداً للمبرمجين خصوصاً في حالة السيكيورتي وهذا ليس موضوعنا ..

    Floating point numbers
    الأعداد العشرية

    كود PHP:
    $val 2.2
    وهي ايضا بدون علامات تنصيص

    الدوال :
    أهم دالة floatval
    هذه الدالة تقوم بإستخراج الأرقام العشرية من بين النصوص

    كود PHP:
    $var '122.34343The';
    $float_value_of_var floatval($var);
    echo 
    $float_value_of_var// 122.34343 
    String
    النصوص

    كود PHP:
    $val "This is astring num 555"
    وهي للنصوص وكما ترى يجب تعريفها وحولها عمليات تنصيص

    Boolean
    المثال يوضح كل شيء

    كود PHP:
    $val true;
    $val false
    في الأولى المتغير موجود وفي الثانية المتغير غير موجود

    Array
    وهنالك النوع المشهور بالـ Array أو المصفوفة
    وهذه المصفوفة تقوم بإدخال أكثر من قيمة للمتغير الواحد كالتالي

    كود PHP:
    $arr = array(5,"the","num 500"); 
    كما ترى أنواع المتغيرات عشوائية

    الآن كيف يمكنك استعراض الرقم 5 فقط ؟

    كود PHP:
    Echo $arr[0]; 
    كما ترى عزيزي المسجون هنا نستعرض أول قيمة من قيم المصفوفة

    كود PHP:
    Echo $arr[1]; 
    كما ترى يا مسجون البرمجة الكريم أن مفتاح المصفوفة هنا 1 و صفر و 2 و ... الخ
    والمفتاح هو الطريق كي تعرض متغير ، إذاً تسأل نفسك أنا مقيّد بهذا المفتاح في كل
    مصفوفاتي
    كلا يمكنك أن تغير المفتاح كما تشاء عن طريق تعريف المصفوفة
    كالتالي

    كود PHP:
    $a = array ('a' =>; 'apple''b' =>; 'banana'); 
    إذاً قمنا بتعريف المفتاح عن طريق وضعه داخل قوسين '' و نضع بعده >;=
    كما ترى المفتاح الأول a و الثاني b
    واذا أردنا استعراض كلمة apple نكتب التالي

    كود PHP:
    Echo $a['b']; 
    مفهومة أليس كذلك ؟
    والمصفوفات يمكن أن تستخدم بطريقة شجرية أو بمعنى أسهل يمكن وضع مصفوفة داخل مصفوفة

    ولكن هذا ليس موضوعنا حتى لا تتقاطع الخطوط و ترجع للزنزانة وأنت محتار

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

    <br />
    كود PHP:
    $a = array ('a' =>; 'apple''b' =>; 'banana');
    print_r ($a); 
    الناتج

    كود PHP:
    Array
    (
    [
    a] =>; apple
    [b] =>; banana

    إذا هذه الدالة عرضت لي المصفوفة بمفاتيحها بقيمها .
    سهلة أليس كذلك ؟

    Is_array
    وهذه الدالة تستفسر عمّا إذا كان المتغير مصفوفة أم string أو أي نوع آخر ؟

    مثلاًً

    كود PHP:
    <br />
    $yes = array('this''is''an array');
    $no 'this is a string';

    if(
    is_array($yes)) { echo 'Array'; }
    Else { echo 
    'not an Array'; }

    echo if(
    is_array($no)) { echo 'Array'; }
    Else { echo 
    'not an Array'; }; 
    in_array
    هذه الدالة تستفسر عمّا إذا كان المتغير الممرر لها في داخل المصفوفة المطلوبة أم
    لا ؟

    مثال :


    كود PHP:
    $yes = array('this''is''an array');
    If (
    in_array('this',$yes))
    {
    Echo 
    "Great your val is in our array";
    }
    Else
    {
    echo 
    "Go Out :D";

    كما ترى يا مسجوني المصفوفات ليست صعبة جداً لكنها عالم كامل لذا أنصحك بمحاولة
    التعمق فيها لأهميتها في php
    وأنا بإذن الله كلما توفر الوقت سأتكلم عن المصفوفات


    دوال المتغيرات العامة

    Gettype
    هذه الدالة كي تستخرج نوع المتغير إن كان srting أو اخوته
    كود PHP:
    $val 2;
    $val_type $gettype($val); 
    echo 
    $val_type// integer 
    Settype
    هذه الدالة لتغيير نوع المتغير من نوع لآخر ..
    كود PHP:
    $foo "5bar"// string
    $bar true// boolean

    settype($foo"integer"); // $foo is now 5 (integer)
    settype($bar"string"); // $bar is now "1" (string) 
    Empty
    يستفسر عمّا إذا المتغير فارغ أو لبس له قيمة

    كود PHP:
    If (empty($val)) { echo "No val"; } 
    ويمكن الاستغناء عنها كالتالي

    كود PHP:
    If (!$val) { echo "No val"; } 
    Isset
    عكس الدالة السابقة وهي تستفسر إن كان المتغير له قيمة أو لا ؟

    كود PHP:
    If (isset($val)) { echo "the val is set and it's value=$val"; } 
    ويمكن الاستغناء عنها كالتالي

    كود PHP:
    If ($val) { echo "the val is set and it's value=$val"; } 
    Unset
    للاستغناء عن المتغير و تفريغ قيمته (وداعا)
    كود PHP:
    $val "Hi"
    echo 
    $val// hi
    unset($val);
    Echo 
    $val// no thing will appear 
    ويمكن استخدامها لتدمير قصدي الاستغناء عن أكثر من متغير هكذا

    كود PHP:
    unset($foo1$foo2$foo3); 
    get_defined_vars
    دالة غريبة عجيبة .. تأتي بجميع المتغيرات المعرفة لديك في مصفوفة واحدة
    كود PHP:
    $val "d";
    $val_arr get_defined_vars();
    Echo 
    $val_arr['val']; // d 
    أفهمتها ؟
    انت تقوم بتعريف متغير بهذه الدالة فتعيد لك الدوال بأسمائها في مصفوفة واحدة

    مثال آخر

    كود PHP:
    $val_arry = (1,2,3,3);
    $arr get_defined_vars();
    Print_r($arr['val_arry']); 

    هذا ما لدينا يا سجيننا الكريم

    ولنا لقاء

    تاريخ الكتابة : 30 يوليو 2006






  5. #5
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    [سجن البرمجة] ستايل البرمجة - كود مرتّب (1)



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

    يا مسجون البرمجة الكريم ..
    إن إي شيء لا يكتمل إلا إذا غلب فيه طابع الترتيب ..
    وكذلك في البرمجة لا تكتمل إلا إذا غلب عليها طابع الترتيب ،،
    حيث إن ترتيب البرمجية يقيك العديد من المشاكل ..
    أتعلم عزيزي المسجون أنه إذا كان هنالك ترتيب للكود البرمجي على المستوى العربي لكان
    المستوى العربي البرمجي فوق الوصف ..
    ما دور ترتيب الكود البرمجي في الارتقاء بالمستوى البرمجي العربي .. ؟
    الجواب على السؤال السابق يتخلص فيما يلي :

    اختلاط الأوامر الذي تؤدي إلى ما يسمى سلطة برمجية حيث يكون لديك عديد من الدوال التي لها أول وليس لها آخر ..
    سهولة تطوير البرنامج فيما بعد ..
    سهولة العمل على المبرمج و المصمم...
    حيث أن المبرمج لو رأى البرنامج سلطة البرمجة سينعتك بقلة الخبرة بعيداً عن أي منظور منطقي برمجي قمت به .. و المصمم لو رأى البرنامج مختلطة أوامره مع الستايل لن يصمم لك ستايل لأنه لا يفقه في البرمجة وينعتك بقله إحساس فني !!؟
    كما ترى أن ترتيب الكود البرمجي سيسهل لك 80% من برنامجك ..

    أقسام هذا المقال :

    ترتيب الكود .
    برنامج مرتب .

    القسم الأول : ترتيب الكودماذا نقصد بترتيب الكود ؟
    هذا أول سؤال يتبادر لذهنك أليس كذلك ؟ ..
    إن المقصود بترتيب الكود هو توضيح عمل الكود أولاً ..
    وثاني شيء هو ترتيب الكود من ناحية الشكل ..
    حيث إن الترتيب يفيدك كثيراً ..
    - التعليقات ودورها في ترتيب الكود البرمجي :
    إن التعليق يفيدك في شرح عمل الملف و عمل الكود حيث يسهل عليك فهمه إذا ما عدت لهذا البرنامج بعد مدة ..
    فلنبدأ في التعليقات التي تشرح عمل الملفات ..
    مثلاًً لو كان هذا ملف index
    نكتب تعليق مشابه بالتالي في بداية الملف

    كود PHP:
    /* My Script
    Copyrights : Dr.Nabhan
    File : index.php
    Describe : Display the index file
    Last update : 1/1/2005 */ 
    هذا تعليق بسيط عن الملف واسمه وعمله و آخر تحديث له
    ماذا لو أردنا التخصص أكثر في التعليق
    كود PHP:
    /* * * * * * * * * * * * * * * * * * * * * * *|
    +----------------------------------------+
    Script :
    +----------------------------------------+
    Rights :
    +----------------------------------------+
    File :
    +----------------------------------------+
    Describe :
    +----------------------------------------+
    Notice :
    +----------------------------------------+
    Author :
    +----------------------------------------+
    |* * * * * * * * * * * * * * * * * * * * * * */ 
    الآن نحن نبرمج البرنامج نفسه ..
    ومن المفترض ترتيب الأسطر ..
    يعني مثلاًً ..

    كود PHP:
    echo "go"; echo "Yeah";

    if (
    $go==1) { $fo 5; } 
    كما نرى الكود السابق :
    v غير مرتب برمجيا
    v أسماء المتغيرات عشوائية
    v أغلب أوامره في سطر واحد

    ولترتيب الكود من حيث البرمجة + التعليقات
    كود PHP:
    // Here We print Go
    echo "go";
    // Here We print Yeah
    echo "Yeah";
    // Here We Sure from the variable $do
    if ($do == 1)
    {
    $MyNum 1;

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

    تاريخ الكتابة : 6 أغسطس 2006






  6. #6
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    [سجن البرمجة] ستايل البرمجة - كود مرتّب (2)



    ترتيب الأداة الشرطية تابع ترتيب الكود

    أهم أشياء يجب الآنتباه لها خلال ترتيب الأداة الشرطية
    1- التعليق على كل جزء من الأداة لأن الأداة الشرطية هي أكثر أداة تؤخر المبرمجين
    في تطوير البرنامج لذلك اشرح كل جزء حتى تعرف ما عملها في المستقبل
    2- المسافات بعد } مهمة جداً جداً ..
    مثال على المسافات
    كود PHP:
    Conditional Statement
    {
        echo 
    "Out Man ..";

    ألاحظت المسافة بين echo و أول السطر .. !؟؟
    كذلك هنالك ملاحظة مهمة على ترتيب الجمل الشرطية
    عدم دمج جملتين في سطر واحد

    او وضع أكثر من } في نفس السطر كالتالي .. :
    كود PHP:
    Conditional Statement{echo "Out Man ..";}else{
    echo 
    "do some thing";} 
    كما ترى الكود السابق سلطة جميلة ..
    الآن سنستعرض معاً ترتيب بعضاً من أوامر و دوال اللغة ..
    أولاًً - جملة IF :
    من المفترض أن نشرح عمل هذه الأداة ومن ثم نشرح ماذا تقوم به كالتالي
    كود PHP:
    //What to do ?
    if ($_GET['do'] == "show")
    {
    // Show the program
    echo "hi Man .. ";
    }
    // if $_GET['do'] != show
    else
    {
    // Do this statement
    echo "Out Man ..";
    // The End 
    كما ترى شرحنا ماذا تفعل هذه الدالة
    ومن ثم علقنا على الكلام
    لاحظ هنالك مسافات
    ثانياًً - جملة else + elseif :
    الآن في حالة الجملة الشرطية المتشعبة ..
    كود PHP:
    //What to do ?
    if ($_GET['do'] == "show")
    {
    // Show the program
    // أكتب برنامجك هنا
    }
    // else the last statement if the (do)'s = play
    elseif ($_GET['do'] == "play")
    {
    // Play the program
    // Play Here
    }
    //else all that
    else
    {
    // Do this statement
    // code Here
    }
    // The End 
    ثالثاًً - جملة switch :
    الآن نتطرق لترتيب وتعليق جملة switch الذي تعتبر إحدى الجمل الشرطية طبعاًً
    كود PHP:
    // Switch the variable $x
    switch ($x)
    {
    // case $x == 1
    case 1:
    // echo the num 1 .
    echo "Number 1";
    // Break case 1 .
    break;

    // case $x == 2
    case 2:
    // echo the num 2
    echo "Number 2";
    // Break case 2 .
    break;
    // the default if none of the last statements right
    default:
    // echo no num 
    echo "No number";

    الشيفرات البرمجية السابقة توضح ما أرمي إليه ..
    كما لاحظنا :
    تعليق لكل سطر
    مسطرة بين سطر و آخر
    وكأن الكود نظف بالغسالة (فول اتوماتيك مع برسيل )

    ترتيب الـ Functions & : Classes
    ما فائدة ترتيب الـ Function أو الـ Class ؟؟
    السؤال السابق قد يجول في خاطرك و تبحث عن إجابته ..
    الفائدة وبكل بساطة هي تنظيم عمل الـ class أو Function
    فأن ترتيب الـ Class يؤدي لترتيب الـ Functions التي يحتويها هذا الكلاس ومن ثم إفادة في تطوير البرنامج مستقبلياً ..
    و إراحة المطورين لبرنامجك ،، لأن الـ Class يعتبر لبنة الأساس في البرامج الراقية - وضع خط تحت الراقية -
    كيف يمكنني ترتيب الـ Class أو الـ Function ؟
    أولاً دعونا نتفق على أن نشرح الـ Class لأنه شامل للـ Functions ..
    نقوم في بداية الـ Class بشرح عمل هذا الكلاس ومن ثم تفصيل عمل كل Function داخله مع ملاحظة المسافات في حالة } (كما في حالة الـ IF)
    مثال :
    كود PHP:
    /*-------------------------------------------------------|
    Name : Common
    --------------------------------------------|
    Describe : including common functions to help me in 
    the program.
    --------------------------------------------|
    Author : Dr.Nabhan
    --------------------------------------------|
    Last Update : 24/9/2005
    --------------------------------------------------------*/
    Class common
    {
    # Function : Began head (To began the tag head) #
    function head ()
    {
    echo 
    "";
    }
    # Function : close head (To close the tag head) #
    function head ()
    {
    echo 
    "";
    }

    كما نرى بدأنا الـ Class بمقدمة بسيطة عن عمله و اسمه ... الخ .
    ومن ثم قمنا بتفصيل كل function داخل الكلاس بحيث نصف عمله
    ولاحظ المسافات بين كلمة function وبداية السطر .. وكذلك بين echo وبداية السطر
    إنها تريح النظر عندما تفحص كل فانكشن.
    ولا تحتاج لخبراء في تحليل الخطوط و نظارات وتلسكوب كي تحلل هذا الفانكشن .

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

    تاريخ الكتابة :
    15 أغسطس 2006






  7. #7
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    [سجن البرمجة] ستايل البرمجة - برنامج مرتب (3)



    القسم الثاني: برنامج مرتّب


    ما معنى برنامج مرتّب ؟
    فعلاًً .. ما معني برنامج مرتّب .. ألا يعني كود مرتّب أم هي فلسفة ..
    عزيزي المسجون إن برنامج مرتّب يعني ترتيب وقت البرمجة على البرنامج
    وترتيب ملفات البرنامج ..
    أنا متأكد 100% انك لم تفهم الكلام السابق لأنني نفسي لم افهمه وما زال مبهماً ..

    حسناً الآن اقرأ التالي حتى تزول الغشاوة عن الكلام السابق

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

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

    ترتيب السكريبت :

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

    وفي كل ملف من برنامجك ضع التالي ..
    كود PHP:
    // Including global.php file
    include("global.php"); 
    وإذا كنت تريد أن يكون برنامجك عالمياً. . قم ببرمجة ملف يحتوي على متغيرات اللغة ..
    يعني مثلاًً .. كلمة موافق أو أهلا تقوم بعمل متغير لها فيهِ هذه الكلمة و تقوم بعمل include
    للملف وليكن اسمه lang.php داخل ملف ل global.php
    بهذا أرحت نفسك من تعب 60% من أصل 80% - راجع مقدمة المقال -
    كما ترى عزيزي المسجون .. أنك إذا التزمت بقليل من الخطوات السابقة ..
    ستجد نفسك تخرج أكواداً تنافس عالمياً ..
    و تجدها سلسة و مرنة كي تستطيع تطويرها فيما بعد ..

    والآن آخر تعليق لهذا المقال ألا و هو استخدام القوالب
    ونعني بذلك فصل أكواد الـhtml عن أكواد الـ php ووضعها في ملفات خاصة بها ..

    ولكن عزيزي القارئ الترتيب جميل فعلاًً .. ولكن إذا زاد عن حده أصبح تخريباً وليس ترتيباً
    لأننا نعلم انه كلما زاد الشيء عن حده انقلب ضده أليس كذلك .. ؟؟
    ولكن اعلم أن الترتيب ليس بسيطاً ... و أن هنالك مختصون في ترتيب الأكواد البرمجية ..
    و لا تستهين بأي شيء مهما كان صغيراً ...
    فإن قطرات الماء تخرق الصخر أم لا !!؟؟
    ولكن لدي تعقيب بسيط ..
    انه إذا كنت تبرمج برنامج بسيط .. لا تبالغ فيه وتضع له global.php و ملفات ومجلدات
    وتدعي أنه الترتيب وتقل Dr.Nabhan قال لنا رتبوا البرامج ..
    لأننا نعلم المثل الآنجليزي القائل
    Don't use a gun to kill a mesquite
    أي لا تستخدم مدفعاً لقتل بعوضة ..


    ولنا لقاء .
    انتهى ستايل البرمجة

    تاريخ الكتابة :
    20 أغسطس 2006






  8. #8
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    [سجن البرمجة] مقدمة في Classes



    السلام عليكم ورحمته تعالى ..
    اليوم معاً سنتعرف إلى أدوات التعذيب في سجن البرمجة مع السجّان php وهي الكلاسات.


    تعريف بسيط بهذه الأداة التعذيبية:
    هذه الـ Classes تعتبر كائنات (Objects) وهي تستخدم لتسهيل حياتك البرمجية.
    وتعريف الكائن : هي عملية لإنشاء عمليات في برنامج معين على فئات معينة ليتم تطبيقها على البيانات ليتم معالجتها و وظيفة هذه الكائنات مرتبطة بالبيانات المستخدمة.


    ولتوضيح كيفية عمل هذه الأداة التعذيبية:
    "إنشاء كائن في فئة نقوم بمعالجتها و إضافة سمات على هذه الفئة ثم نقوم بإنشاء تواجد للفئات ونمرر عليه البيانات التي تريد أن تمر بالمعالجة التي مرت عليها الفئة إما معالجة كاملة أو جزئية بحسب الرغبة".
    (مقتبس من قرية الـphp).


    كيف يمكنني التعذيب بهذه الأداة (كيفية إنشاء فئة):
    أولاًً: نقوم بكتابة الكلمة السحرية وهي Classes ومن بعدها اسم هذا الكائن.. مثلاًً:
    كود PHP:
    class MoonClass
    {

    هنا اسميت الكائن بـ MoonCLass


    كيف يمكنني استدعاء اداتي التعذيبية (دالتي):
    بهذه الطريقة يمكنك إستدعاء الدالة واستخدامها:
    كود PHP:
    $class = new MoonClass
    هكذا استدعينا الدالة.


    الآن كيف يمكنني استخدام الدالة؟
    نقوم بإنشاء دالة بسيطة وظيفتها جمع عدد 1 للرقم المدخل لهذه الدالة (ما فهمتم شيء .. في المثال راح تفهمون):
    كود PHP:
    class num1
    {
    function 
    addone($num)
    {
    $numlast $num+1;
    }
    }

    $numadd = new num1;

    echo 
    $numadd->addone(1); 
    سوف يخرج الناتج 2

    بهذا عزيزي المسجون تم تعريف مقدمة بسيطة عن أداة تعذيب كبيرة وهي الكائنات
    والكائنات تسهل لك الكثير من الطرق و تستطيع دمج الكثير من العمليات.

    مع تحياتي لكم يا مساجيننا الكرام.

    ولنا لقاء
    تاريخ الكتابة :
    12 أكتوبر 2006






  9. #9
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281

    [سجن البرمجة] بعض الدوال المساعدة في الـ Class



    السلام عليكم ورحمته تعالى ..
    اليوم سنكمل التعرف على أداة التعذيب (الكلاسات وأدواتها المرافقة).



    'أولا : الدالة var
    هذه تستخدم لتصريح متغير ما داخل الـ Class وتعريفه من الخارج
    كيف يعني ؟
    مثال
    كود:
    <?php
    
    Class MyClass
    {
    Var $moon ;
    Function myfunction ()
    {
    Echo $this->moon;
    }
    }
    $MyC = new MyClass;
    $MyC->moon = "go";
    $MyC->myfunction();
    
    ?>
    ماذا بإعتقادك سيكون الناتج ؟؟
    ج : go
    افهمت أخي المسجون ؟ طبعا لا
    حسنا فلنفسر الكود السابق
    أولا قمنا بداية الكلاس كما نعلم
    وبعدها قمنا بتصريح الـ moon
    بواسطة var
    ومن ثم دخلنا على Function جديد ووظيفته يقوم بطباعة moon
    ولكن لاحظ معي $this حيث قامت بقول ان هذا المتغير هو داخل هذا الكلاس فقط
    او انه متغير var


    عزيزي المسجون الكريم أتريد أن تعرف كيفية تعريف متغير عام من الخارج لداخل الدالة
    كيف يعني من خارج لداخل الدالة ؟؟
    افترض انه لديك مثلا متغير خارجي وهو $street وبه قيمة معينة
    وتريد ان تستخدم هذا المتغير داخل الدالة طبعا يمكنك بواسطة var ولكن سوف تزيد السطور البرمجية
    مممممممم فكر معي ستقول لا بد ان السجان php لديه الحل ؟؟
    طبعا انه سجان جميل ويريحك جدا انت ما عليك الا تقضي محكوميتك معاه (هذا اذا خرجت)
    هذه الأداة التعذيبية المريحة هي global
    كيف يمكنني التعذب معها بالراحة
    تقوم باستخدامها داخل الـ Function المطلوب لها المتغير هذا ..
    مثال
    كود:
    $street = "go";
    Class MyF
    {
    
    Function StreetF ()
    {
    Global $street;
    Echo $street;
    }
    }
    $MyG = new MyF;
    $MyG->streetF();
    ماذا سيكون الناتج برأيك ؟
    ج : go


    يا ايها المسجون هل نمت .؟
    بالطبع الجواب نعم
    حسنا الآن صحصح معي ..
    تخيل انك تريد إدخال دالة معينة و اخراجها مرة اخرى ولكن بعد اجراء عمليات معينة عليها
    يعني اذا لاحظت كل الأمثلة السابقة هي التي تقوم بعمل طباعه لوحدها صحيح ؟
    الآن انت الذي تريد طباعه متغير ما بعد اجراء أوامر معينة عليه ؟
    مثلا
    كود:
    Class FBI
    {
    Function doit($go)
    {
    $mg = $go+1;
    Return $mg;
    }
    }
    $FBI = New FBI;
    Echo $FBI->doit(2);
    لاحظ معي عزيزي المسجون ستجد اننا صنعنا كلاس و بداخله دالة لتقوم بزيادة 1 لكل عدد يدخل الهيا
    وبعدها قمنا بالوصول للدالة
    ومن ثم استخدامها
    ووضعنا له قيمة 2
    طبعا الناتج راح يكون ..... (3)
    المهم من الموضوع هو return هذه الدالة يا عزيزي هي التي تحدد لك المتغير الذي سيخرج بالأخير ..

    ارجو ان يكون قد فهمت هذه الأدوات التعذيبية المريحة المساعدة >> ما أحلا هيك أداوات

    مع التحية

    هنالك نقاش جميل هنا
    http://www.swalif.net/softs/swalif45/softs126879/
    ولنا لقاء

    تاريخ الكتابة : 09/08/2005





    التعديل الأخير تم بواسطة Dr.Nabhan ; 07-01-2008 الساعة 03:54 PM سبب آخر: تعديل بسيط على الأكواد

  10. #10
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    589


    سجنك ممتع وفوائده كبيره

    كنت نزيل عليك من باب الفضول وخرجت من اصلاحيتك تائب ومتثقف بنفس الوقت

    صدقت ان البرمجه هي سجن لمبتدعها





    __________________
    ومن اعجب الاشياء انك لاتدري وانك لاتدري بانك لاتدري
    فإن كنت لاتدري ولم تكُ بالذي يسال من يدري فكيف اذن تدري
    تمام العمى طول السكوت وانما شفاء العمى يوماً سؤالك من يدري

  11. #11
    عضو نشيط
    تاريخ التسجيل
    Mar 2005
    المشاركات
    281


    درس جديد ..

    [سجن البرمجة] قواعد البيانات ، تعامل من نوع آخر
    http://www.swalif.net/softs/swalif45/softs216672/


    شكراً عزيزي s6ur على ردك

    ولنا لقاء






  12. #12
    عضو نشيط
    تاريخ التسجيل
    Sep 2006
    المشاركات
    133


    جزاك الله خير على هذا الشرح .
    أرجو ان تستمر على هذا المنوال








  13. شرح شيق واسلوب مميز

    وياما في السجن مظليم





    __________________
    أنشئ البوم لصورك وشاركها في موقعك صور TNT


    expertsniper - Fast سابقاً

  14. #14
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2007
    المشاركات
    613


    أسلوب جميل في الشرح ،، أحييك عليه ، شكراً لك






  15. #15
    عضو نشيط جدا
    تاريخ التسجيل
    May 2006
    المشاركات
    544


    ما شاء الله "خـــــــوش سجن " ودي انسجن فيه جم يوم

    طول عمرك مبدع يا د.نبهان =) ..

    وين هالغيبة =] .. بانتظار عودتك

    اخوك ،
    عربي،،





    __________________
    MAGTEL GROUP INC للاستضافة وخدمات الاعلان عبرالــSMS
    تفضل بزيارتنا:www.MAGtel.org
    مجموعة شبابية كويتية مميزة!
    SMS SERVICE-WEBHOSTING





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

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

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