الترميز والتطوير
الترميز والتطوير هما أمران مترابطان عمليات تطوير البرمجيات، ودورة حياة أي برنامج، ويختلف معنى كل كلمة عن الأخرى
في المصطلح أو المفهوم، ولكن تستخدم هاتان الكلمتان في نفس السياق وبنفس المعنى تقريبا بين المطورين وبعضهم، ويعد الترميز والتطوير من أهم المراحل التي يكتب فيها البرنامج بلغة برمجة معينة، وربطه ببرامج أخرى، وتوظيف جميع عمليات التطوير في هذه المرحلة.
ما هو الترميز What is Coding ؟
كما نرى بشكل يومي خلال عصرنا الحالي الجنون الذي يجتاح الناس لتعلم البرمجة، وكم أن البرمجة لها مرتبات ودخل
مرتفع، وكل شخص يريد كتابة الأكواد بنفسه وما إلى ذلك، ولكن لما لا نقف قليلا ونسأل أنفسنا ما هو الترميز في الأصل؟ والترميز هو عملية كتابة الأوامر إلى الحاسوب للقيام بشئ معين، أو إخبار الحاسوب بالقيام بشئ معين، تمام مثلما يفعل الطباخ في إعداده أطباق محددة.
كثرة الأجهزة الإلكترونية، مثل: الهواتف الذكية، والحواسيب المحمولة، تتطلب استخدام عمليات الترميز والتطوير من أجل الاستفادة منها، كما تتيح هذه العملية سهولة تواصل الأشخاص مع هذه الأجهزة، ومن التطبيقات في الواقع الحالي: إشارة المرور، والآلة الحاسبة، والتلفاز الذكي، والسيارات ذاتية القيادة، والعديد من الأجهزة الأخرى التي يمكن التفاعل معها
بسبب عمليات الترميز والتطوير.
لغات البرمجة Programming Languages
للترميز أو كتابة الأكواد تحتاج إلى استخدام لغة برمجة محددة، وبناء على المشكلة أو المهمة التي تقوم بتنفيذها، يتم
اختيار لغة البرمجة، فمثلا: تستخدم لغة Python في برامج وتطبيقات الذكاء الاصطناعي والتعامل مع البيانات، وتستخدم
لغة JavaScript في بناء المواقع والتطبيقات الكبيرة والمتوسطة، كما تستخدم لغة Scala في التعامل مع البيانات الضخمة (Big Data).
هيكلية الترميز Code Structure
الكود هو نص برمجي مكتوب بلغة برمجة معينة، ويقوم هذا النص بتنفيذ بعض المهام، مثل: عرض شئ أو تنفيذ مهمة، وتتكون هذه النصوص من لبنات أساسية وهي المتغيرات والدوال (Variables and Functions)، حيث تعمل المتغيرات في الاحتفاظ بالبيانات بداخلها لاستعمال هذه البيانات بشكل مستمر، وتقوم الدوال بتنفيذ بعض المهام المراد تكرارها في
البرنامج واستدعائها في حالة الاحتياج، ولكتابة الكود يحتاج المطور إلى مهارة التفكير المنطقي لحل المشاكل والمعصلات التي تقابله بين الحين والآخر.
ما هو التطوير What is Development ؟
بينما يمكن القول أن الترميز هو اللبنات الأساسية في البناء، فالتطوير هو عملية البناء كلها، ويقوم التطوير على فكرة
معينة وتنفيذ هذه الفكرة وتطويرها، وجلب هذه الفكرة إلى الواقع في شكل برنامج أو منتج ما، وعملية التطوير تتطلب
الكثير من الوقت والجهد، فكما رأينا أن مرحلة التصميم تتطلب الكثير من الوقت، فالتطوير يأخذا أكبر من هذا الوقت بكثير.
مراحل الترميز والتطوير
-
اختيار لغة البرمجة (Choosing Programming Languages):
بناء على نوع المنتج المراد تطويره، نختار لغة البرمجة وأطر العمل التي ستستخدم في بناء هذا المنتج، كما دائما نتحقق
من المتطلبات وخاصة المتطلبات الوظيفية التي تم تسجيلها في الوثائق (Documents)، وتوجد عدة اختيارات، فيمكن
اختيار لغة Python في تطبيقات علم البيانات، ولغة Java في برامج المؤسسات الكبيرة، ولغة JavaScript في تطوير
الويب، ولغة Swift في تطوير تطبيقات آبل (IOS).
-
كتابة كود نظيف (Writing Clean Code):
في هذه المرحلة نجمع بين الترميز والتطوير، فكتابة الكود هي مرحلة من مراحل التطوير وليست المرحلة كلها كما
يظن البعض، كما من المهم اتباع قواعد كتابة الكود النظيف، لأن ذلك يساهم في سهولة قراءة الكود والتعديل عليه من
قبل الآخرين، فعلى المطور أن يتعلم هذه القواعد جيدا، فليس الهدف كتابة برامج تقوم بعمل الوظيفة فقط، بل يجب
الاهتمام بهذه التفاصيل التي تساهم في نجاح المشروع.
-
استخدام أدوات وكتبات التطوير (Using Development Tools and Libraries):
في كل لغة برمجة يوجد بعض المكتبات التي تسهل كتابة وظائف المشروع، وهذه المكتبات هي مجموعة من الوحدات
التي تقوم بتنفيذ مجموعة من الوظائف المتعلقة ببعضها، كما من المهم استخدام أدوات التطوير الحديثة، مثل: IDEs, GIT, Debuggers
-
تنفيذ المميزات المطلوبة (Implementing Required Features):
كما ذكرنا أنه لابد من العودة إلى الوثائق التي تم اعدادها في مراحل التصميم وجمع المتطلبات السابقة، حيث
تساعد الوثائق في فهم المطورين لطبيعة ومميزات المنتج الذي يقومون بتطويره، ويساهم التصميم الهيكلي
(Architectural Design) في توضيح المميزات وطريقة تنفيذها وتفاعل المستخدم مع المنتج، فكل هذا يساعد المطور
في تنفيذ هذه المميزات بشكل صحيح وبدقة متناهية.
-
اختبار الوحدات (Unit Testing):
يعد اختبار البرمجيات أو الوحدات أيضا من أهم مراحل الترميز والتطوير والتي تحل مشكلة وقوع الأخطاء عند استخدام البرنامج للمرة الأولى، فتتأكد
هذه المرحلة من عملية ووظيفة كل وظائف المنتج، كلا على حده، والتأكد من عملية المنتج قبل النشر.
أفضل ممارسات الترميز والتطوير
مرحلة الترميز والتطوير في دورة حياة تطوير البرمجيات (Software Development Lifecycle) هي المرحلة التي يبنى
فيها المنتج بالفعل، وتتضمن هذه المرحلة ترجمة المتطلبات التي جمعت في المراحل السابقة إلى نظام حقيقي له
نتائج حقيقة واقعية، وقد وضحنا بعض الأمور المهمة في هذه المرحلة، ولكن هناك بعض الممارسات المستخدمة في
كتابة الأكواد وتطوير المنتجات البرمجية.
إتباع أفضل الممارسات والمنهجيات في تطوير البرمجيات يساهم في تحسين وإنتاجية الشركات المطورة، كما تساهم
أيضا هذه الممارسات في تحسين جودة الترميز والتطوير في المنتج، والوصول إلى درجة كبيرة من سهولة صيانة أجزاء المنتج المختلفة باستخدام قواعد مثل الكود النظيف، كما تساهم مبادئ مثل مبدأ “لا تكرر نفسك” (Don’t Repeat Yourself) في توجيه الدفة إلى كتابة أكواد ذات كفاءة عالية وتطوير مميزات المنتج.
مبدأ دراي DRY Principle
تشير كلمة DRY إلى Don’t Repeat Yourself وتعني “لا تكرر نفسك” وتم إنشاء هذا المبدأ في عام 1999 من قبل أندي هانت وديف توماس، وفق مبدأ تجنب تكرار المعلومات مرار وتكرارا، ويعني هذا المبدأ أنه إذا كانت لديك شئ ما يقوم
بوظيفة معينة، لا تقوم بتنفيذ هذا الشئ مرة أخرى بل استخدمه مرة أخرى دونا عن كتابته من البداية وهذا الأمر ينطبق على الدوال (Functions)، ولكن هذا لا يعني بالضرورة عدم تكرار الأكواد، فيمكنك تكرار الأكواد التي تحتاج إلى هذا الأمر فقط.
مبدأ ياجني YAGNI Principle
تشير كلمة YAGNI إلى You Ain’t Gonna Need It وتعني “لن تحتاج إليها”، ويشير هذا المبدأ إلى عدم كتابة أي كود لا تحتاج إليه داخل البرنامج، أو كتابة أكواد سوف تحتاج إليها في المستقبل، فأنت لا تعلم هل ستستخدم هذه الأكواد في المستقبل أم لا، فلا تضيع الوقت في تنفيذ الأمور الغير هامة، بتنفيذ المطلوب أهم بمراحل، كما قد يزيد هذا الأمور تعقيدا على المطورون الآخرين عند قراءة الأكواد التي قمت بكتابتها.
استخدام أدوات التحكم في الإصدار Version Control
لابد من استخدام أدوات التحكم في الإصدار، مثل Git في أي مشروع، حيث يساعد هذا في تقديم حلول كثيرة لبعض المهام، مثل الحصول على نسخة كاملة من المنتج يمكنك العمل عليها وتطوير بعض المميزات، ثم دمج هذه المميزات مع المنتج الرئيسي.
وفي النهاية تعلمنا اليوم عن مرحلة الترميز والتطوير في دورة حياة تطوير البرمجيات، وانتظرونا في شرح المزيد إن شاء الله.