أفضل ممارسات البرمجة

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

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

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

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

مع وضع ما سبق في الاعتبار، يوجد هنا خطوة أساسية لبعض ما هو مطلوب للمشروع الذي يستخدم بنجاح 'أفضل تطبيقات الترميز' :

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

## المتطلبات
المقال الرئيسي : هندسة المتطلبات

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

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

## التصميم

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

## بناء الكود (الرمز)

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

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

## الاختبار

المقال الرئيسي : اختبار البرمجيات

الاختبار هو جزء لا يتجزأ من تطوير البرمجيات التي تحتاج إلى تخطيط. ومن المهم أيضا أن يتم إجراء اختبارات على نحو استباقي، مما يعني أن حالات الاختبار يتم تخطيطها قبل بدء الترميز، وحالات الاختبار يتم تطويرها بينما يتم تصميم التطبيق وترميز.

## النشر

المقال الرئيسي : برامج النشر

النشر هو المرحلة النهائية من الإفراج عن تطبيق للمستخدمين.

## انظر أيضا
* أفضل ممارسة (MISRA)

## المراجع

* 
* Enhancing the Development Life Cycle to Product Secure Software, V2.0 Oct. 2008 describes the security principles and practices that software developers, testers, and integrators can adopt to achieve the twin objectives of producing more secure software-intensive systems, and verifying the security of the software they produce.
* 

## وصلات خارجية
* Code example by Johan Bezem
* MISRA for C 
* MISRA for C++

تصنيف:برمجة
تصنيف:عملية تطوير البرمجيات