برمجه

**برمجة ال[[كومبيوتر]]** هيا عملية تصميم,كتابة,صيانة و تنقيح الكود المصدرى(source code) بتاعة برامج(السوفت وير) الكومبيوتر. الكود ده بيكون مكتوب بلغة برمجه او اكتر: الهدف الاساسى للبرمجه هوا تكوين مجموعه من التعليمات اللى بيستخدمها الكومبيوتر عشان يعمل عمليات محدده او يعرض سلوك معين مرغوب فيه. عملية كتابة الكود بتحتاج دايما خبره فى مجالات كتيره بما فيها علم و معرفه بمجال البرنامج و الجوريزمات متخصصه و منطق معين.

## نظره عامه
فى هندسة البرمجيات: البرمجه بتُعتبر مرحله من مراحل عملية تطوير البرامج.بتدور لحد دلوقتى مناقشه على نوع كتابة البرامج هل هيا صنعه ولا فن ولا نوع من انواع الهندسه. عامة البرمجه الكويسه بتتقاس انها من التلاته و الهدف منها هوا انتاج سوفت وير يمكن انه يتطور و كفاء ته عاليه(معايير الكفاءة و التطور بتختلف). شغلة البرمجه بتختلف عن الاشغال التانيه فى ان المبرمجين موش لازم يمشوا على مقاييس معينه عشان يشتغلوا لكن ده بيعتمد على نوعية البرامج اللى بيعملوها, لكن فى معظم انحاء العالم دلوقتى اللى بيقول على نفسه انه مهندس برمجيات محترف من غير ما يكون واخد شهاده من معهد او كليه معترف بيها بتكون بتدرس علوم الكومبيوتر بيكون غير قانونى.
## البرمجه الحديثه
### متطلبات الجوده
مهما اختلفت الطريقه اللى بتُستخدم فى طريقة كتابة كود البرنامج لازم يكون فيه خصايص عامه معينه و اللى هما فى الليسته دى:

* يمكن الاعتماد عليه: اد ايه نتايج البرامج صح؟ و ده بيعتمد على صحة الجوريزمات اللى مستخدمه فى البرنامج و تقليل الغلطات اللى بيعملها زى مسلن الغلطات اللى بتحصل فى إدارة المصادر اللى بيحتاجها البرنامج او الغلطات المنطقيه(زى القسمه على صفر).
* القوه او المتانه: اد ايه البرنامج بيقدر يقول ان فيه مشاكل معينه بس موش سببها المبرمج زى مسلن عدم وجود ذاكره (الرام) كافيه و الحاجات اللى بيقدمها نظام التشغيل و بيكون البرنامج عايزها عشان يشتغل صح و الجهاز متوصل على الشبكه ولا لأ(ممكن يكون البرنامج محتاج يعمل تحديث مسلن من على الانترنت عشان يشتغل و هكذا) و كمان الغلطات اللى سببها المستخدم.
* الصلاحيه و الاستخدام: هل البرنامج سهل الاستخدام ولا لأ؟ هل المستخدم ممكن يشتغل بيه و يطلع النتايج المرغوبه ولا لأ؟ هل واجهة الاستخدام (النصوص و الجرافيك) المعموله سهله و واضحه و كامله ولا لأ؟ العامل ده مهم جدا عشان المستخدم النهائى هوا أهم حاجه و هوا اللى بيدى ردود الافعال اللى على اساسها يتحدد البرنامج ده شغال كويس و ليه مستقبل ولا لأ.
* القابليه للنقل: فيه هاردوير و نظم تشغيل كتيره جدا و هيا مختلفه عن بعضها كلية و البرنامج بتتكتب و بتتعمل على حاجه واحده بس لكن امكانية تشغيل البرنامج على نظم التشغيل و الاجهزه المختلفه حاجه مهمه عشان ممكن مستخدم(يوزر) يكون شغال على جهاز معين و مستخدم تانى بيستخدم جهاز تانى ليه خصايص تانيه و هكذا.
* القابليه للصيانه: سهولة صيانة و تعديل البرنامج عن طريق المبرمجين الحاليين او المبرمجين اللى هيا يشتغلوا عليه بعدين فى المستقبل بتعتبر خاصيه مهمه للبرنامج الكويس. تصحيح الاخطاء و تحسين البرنامج و تهيئة البرنامج للتشغيل على بيئات جديده: كل دى حاجات تحت خاصية القابليه للصيانه. الطرق الكويسه فى بداية تطوير البرنامج بتسهل كتير الحكايه دى, ممكن المستخدم مياخدوش باله من حاجه زى دى لكنها بتأثر جامد فى مصير البرنامج على المدى الطويل.
* الاداء و الكفاءه: كمية مصادر نظام التشغيل اللى بيحتاجها البرنامج( وقت المعالج(البروسيسور) - مساحة الذاكره (الرام) المطلوبه - الوحدات البطيئه زى الطابعات و الهارد ديسك(القرص الصلب) - الشبكات اللى محتاجها البرنامج موجوده(النت مسلن) و ساعات كمان كيفية تعامل المستخدم مع البرنامج) الحاجات دى كل ما كانت اقل كل ما كانت احسن. كمان التنظيم و التخلص الصح من حاجات معينه زى مسح الملفات المؤقته و عدم وجود ثغرات فى الذاكره.
* امكانية قراية الكود: فى برمجة الكومبيوتر القدره على القراية بتشير لسهولة قراية الكود بالنسبه لقارىء بشرى. الحكايه دى بتأثر على جودة البرامج و الحاجات المذكوره فى الليسته اللى فوق.

امكانية القرايه مهمه عشان المبرمجين بيقضوا معظم وقتهم فى قراية الكود و محاولة فهم و تعديل الكود القديم المكتوب و بيقضى وقت اقل فى كتابة كود جديد. الكود اللى موش مقرى (اللى مينفعش قرايته خالص) دايما بيأدى لحصول اخطاء فى البرامج(Bugs) و اكواد متكرره. فى دراسه اتعملت قالت ان كل ما كانت القدره على القرايه اكتر كل ما قل الوقت المستهلك فى فهم الكود.

من العوامل اللى بتأثر على القرايه:
# اسلوب المسافه الباديه.
# كتابة التعليقات.
# اتفاقيات التسميه
# التقسيم
### التعقيد الجوريزمى
الحقل الأكاديمى والممارسه فى برمجة الكومبيوتر مهتمين بشكل كبير باكتشاف وتطبيق أكتر الجوريزمات كفائه لفئه معينه من المشكله.
### المنهجيات
الخطوه الأولى فى معظم العمليات المنهجيه لتطوير البرامج هوا تحليل الحاجات المطلوبه من البرامج، بعديها اختبار عشان يحدد قيمة النمذجة والتنفيذ والقضاء على الفشل (التصحيح). فيه كتير من الطرق المختلفه لكل العمليات دى.
### قياس استخدام لغة البرمجه
صعب اوى اننا نحدد انهى لغة برمجه هيا الاكتر شعبيه و استخدام بين المبرمجين, فى انواع معينه بتستخدم لانواع معينه من التطبيقات و البرامج. كمان فيه انواع كتيره من البرامج بيتم استخدام انواع مختلطه من لغات البرمجه.
### التنقيح و التصحيح
بيعتبر التنقيح حاجه مهمه جدا فى عملية تطوير البرامج, عشان البرنامج اللى فيه غلطات ممكن يكون ليه نتايج و عواقب كبيره على المستخدمين. فى معظم الاحيان بيتم التصحيح باستخدام بيئة تطوير متكامله زر ميكروسوفت ڤيچوال ستوديو دوت نت او أيكليبس

## لغات البرمجه
مقال تفصيلى: لغة برمجه

## ليسته فيها حبه من لغات البرمجه
* سى شارب.
* ڤيچوال بيزك.
* السى.
* السى بلس بلس.
و لغات تانيه كتير

## المبرمجين
مقال تفصيلى: مبرمج

مبرمجين الكمبيوتر واللى بيكتبوا البرامج. وظايفهم عادة بيكون فيها:
* كتابة الكود.
* التحسين.
* التوثيق (كتابة ورق خاص بالبرامج و اللى فيه بيحدد كل حاجه زى التصميم بتاع البرنامج, خصايص البرنامج و المواصفات …).
* التنقيح و التصحيح.
* اختبار و فحص البرامج.
* الصيانه
## لينكات

## مصادر

تصنيف:كومبيوتر