Follow me on Twitter
‏إظهار الرسائل ذات التسميات php. إظهار كافة الرسائل
‏إظهار الرسائل ذات التسميات php. إظهار كافة الرسائل

الثلاثاء، 25 أبريل 2017

5 دروس تعلمتها عند تطويرى أول تطبيق ويب [مترجم]

لقد قمت ببناء تطبيق ويب كجزء من مشروع تخرجى من الجامعة. وبدلا من تطويرى لتطبيق ويب بغرض إنهاء مشروعى، أخترت أن أطوّر تطبيقا يمكنه حل مشكلة واقعية. فاخترت أن أنشئ Cyber Manager وهو عبارة عن نظام إدارة لـمقهى انترنت cyber cafe أونلاين لـadministrators الخاصين بـ cyber cafe ، والذى تم حميله قرابة 3000 تحميل منذ رفعى إياه على SourceForge.net عام 2011.

فى هذه المقال سألقى نظرة على 5 دروس تعلّمتهم أثناء تلك الفترة والتى قد تساعدك أثناء وبعد تطوير تطبيق الويب الخاص بك.

الدرس الأول : لا تبحث عن فكرة مشروع، أبحث عن مشكلة لحلها
إن أردت أن تنشئ تطبيقك الويب الأول، فبدلا من التفكير فى مشروع لتطويره، فكّر فى مشكلة لحلها. المشكلة الحقيقية الواقعية سوف تتحداك وستزودك بالفرص لزيادة مهاراتك بطرق عملية والتى يمكن أن تساعدك للإحتراف. سوف تجهزك تلك التجربة لأعمال التطوير المحترفة لأنك سوف تمتلك خبرة حل المشاكل الواقعية من خلال البرمجة. كما أنك ستكتسب فهما أفضل لأساسيات standards البرمجة وممارسة عملية ثريّة.

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

الدرس الثالث : الأخذ بالاعتبار تطوير حلول باستخدام أدوات مفتوحة المصدر
عندما قررت ما الذى سأقوم بإنشائه، أحتجت أن أركز عن كيف أطور المشروع. كانت لغة البرمجة ASP.NET المشهوة خيارا بين طلاب الجامعة مثلما كانت جافا. كل خيار كله مميزات وعيوب. قررت أن أطور مشروعى باستخدام لغة PHP و Apache و MySQL. فلغة PHP لغة مشهورة، قابلة للتطور Scalable ،مفتوحة المصدر. لقد أخترت PHP لأنها سهلة وآمنة وتقدم دعم مجتمعى كبير للمطور. باستخدام تلك الأدوات أعطتنى الخبرة فى التعامل مع مجتمعاتها مفتوحة المصدر.

الدرس الرابع: التوجيه/الإرشاد Mentorship أهم من Technology Stack .
حينما تبدأ بالعمل فى مشروع تطبيق الويب الخاص بك، ضع فى أولوياتك إيجاد موجّه/مرشد mentor فعال فضلا عن التركيز على تكنولوجيا فعالة. إن التكنولوجيا شىء سوف يتعامل فقط مع المشروع، فى حين أن  الموجّه/المرشد mentor هو شخص سوف سيتعامل معك-سيساعدك لبناء تطبيق أفضل بينما يساعدك أيضا فى التحسن كمطوّر Developer وكمحترف. على الرغم من تقديم الجامعات للتوجيه من خلالها، لكن على الطلاب البحث عن مصادر خارجية لإيجاد موجّه/مرشد شخصى يساعدهم على اكتساب مهارات التخصص المطلوبة. لقد كنت محظوظا كون صديقى هو الموجّه Mentor لمشروع عامى الأخير. لقد كان مبرمج PHP ذا خبرة تحوّل إلى رائد أعمال entrepreneur ، ليطلق مشروع Startup تقنى صغير مؤخرا يقدم خدمات Web Development حول المدينة. جلست معه وعمل معه على مدى جدوى مشروعى، وقدّم لى النصيحة التى أضافت القيمة لمشروعى. فى بعض الأوقات كان يشرف على تقدّمى ويستخدم تطبيقى ويختبره فى حالات ير متوقعة وذلك ساعدنى فى تحديد الأخطاء bugs ومشاكل الأداء. هذا ساعدنى كثيرا فى تحسين تطبيقى وجعله قابل للتطور Scalable.


الدرس الخامس : أوجد مستخدمين حقيقين للاختبار، واستخدام التطبيق فى العالم الحقيقى
ليس هناك تطبيق تام حتى يتم اختباره ويستخدم من قبل المستخدمين المستهدفين. إذا أردت أن يكون مشروعك ذا جدوى feasible ،وذا اعتمادية reliable وقابل للاستخدام usable ، يجب أن تحصل على مستخدمين مستدفين لاختباره وتقديم تقييم feedback للمشروع. اختبار العالم الحقيقى والتقييم هو أمر بالغ الأهمية لتحسين جودة تطبيقك وأساسى لتطوير المشروع والمنتج الذى يريده المستخدم النهائى ليستمتع باستخدامه.

----------------
المصدر

الخميس، 24 مايو 2012

حمل كود موقع Events باطار ويب CodeIgniter من برمجتى


هذا هو الكود المصدرى Source Code لمشروع برمجى مبدئى لموقع خاص بمعرفة أحدث المؤتمرات Events قمت ببرمجته أثناء تعلّمى لاطار الويب CodeIgniter السنة الماضية.

ساعدنى تعلّم ذلك الاطار فى ترسيخ مبادئ عدة مثل أهمية الطبقات Classes ،والدوال
Functions ،و MVC Design pattern

يوجد ملف sql وذلك لبناء قاعدة البيانات الخاصة بالموقع ،والكود المصدرى للموقع تحت رخصة GPL .

ستجد بعض الأكواد ليست احترافية ويمكن برمجتها بأسهل من ذلك ، أو أسلوب يوفّر كثيرا مثل
تكرار كتابة css فى كل ملف عرض ،والأفضل عمل ملف واحد css واستدعاء الملف فى صفحات العرض بدلا من تكرار كتابة css فى كل ملف عرض.


الجمعة، 2 مارس 2012

سكربت php : توليد captcha بسيطة

السلام عليكم

هذا سكربت php قمت بكتابته منذ فترة لـتوليد captcha بسيط ..أرجو أن تستفيدوا منه.

فى البداية قمت بانشاء ملف سمّيته captcha.php ،هذا الملف سيقوم بتوليد captcha ،ثم كتبت به الآتى:
$image = imagecreatetruecolor(70, 35);
$background_color = imagecolorallocate($image, 88, 158, 239);
$text_color = imagecolorallocate($image, 255, 255, 255);


imagecreatetruecolor(70, 35) // سيقوم بانشاء صورة بأبعاد عرض 70 بيكسل ،وطول 35 بيكسل

imagecolorallocate($image, $red, $green, $blue)
دالة تقوم بتعيين الألوان التى ستسخدم فى الخلفية وخط الكتابة حيث image$ هى متغير الصورة ،أما اللون فيتم تحديده عن طريق النوع RGB حيث R : أحمر،و G : أخضر ، و B : أزرق ،وقيمة كل منهم تكون بين 0 و 255 . يمكنك اختيار لونك المفضل أو توليد اللون عشوائيا.

إذا أردت أن تظهر خطوط عشوائية فى خلفية الصورة ،يمكنك كتابة الكود الآتى:
$line_color = imagecolorallocate($image,233,239,239); // لتوليد لون للخطوط
imageline($image,0,0,35,25, $line_color);
imageline($image,12,29,70,5, $line_color);


imageline($image, $x1, $y1, $x2, $y2, $color) // تلك الدالة تمثل خط واحد
حيث x1 $ و y1 $ هى الاحداثى y , x لبداية الخط ، وx2 $ و y2 $ هى الاحداثى y , x لنهاية الخط.

الآن نقوم بتلوين الخلفية باللون الذين قمنا بتعيينه سابقا للخلفية ،وذلك بالسطر الآتى :
imagefill($image, 5, 6, $background_color);

إن أردت كتابة كلمة ثابتة فى captcha لكى تظهر كل مرة فيمكنك كتابة الكود الآتى:
$string = 'asdfbhy';
imagestring($image, 5, 10, 10, $string, $text_color);


imagestring($image, $font, $x, $y, $string, $color) // وهذه دالة تعيين لون وخط ومكان الكلمة
حيث x$ هى احداثى x من النقطة العلوية فى اليسار ، و y$ هى احداثى y من النقطة العلوية فى اليسار

أما إذا أردت أن تولّد كلمة عشوائية كل مرة ،فيمكنك استخدام الكود الآتى ،حيث كتبته لتوليد مجموعة من الحروف والأرقام مجموعها 6 دون ترتيب.
$string = '';
for ($i=1; $i<=6; $i++){
$array = array(chr(rand(48, 57)),chr(rand(97, 122)));
$string .= $array[rand(0,1)];
}
imagestring($image, 5, 10, 10, $string, $text_color);

rand($min, $max ) // تقوم بتوليد رقم عشوائى بين القيمتين الصغرى والكبرى
دالة chr() تقوم بإعادة الحرف المقابل للرقم الموجود بداخل الأقواس من جدول ASCI

هناك أنواع كثيرة لتوليد صورة captcha منها png و jpg ،ولكننا سنستخدم png :
header("Content-Type: image/png");
imagepng($image);

ثم نقوم بازالتها بعد توليدها وتصديرها :
imagedestroy($image);

فى النهاية، نقوم بأخذ حروف captcha عن طريق session ،ونقارنها بما أدخله المستخدم.

عذرا للاطالة ،وأرجو أن أكون قد أفدتكم :)