انطلق نحو البرمجة!

November 22, 2020

إعداد: عبدالعزيز حويمد الشماسي.

معلومات البرنامج التدريبي:

المحتويات:

سيرة المدرب الذاتية:

عبدالعزيز الشماسي، مدرب معتمد في مجال تقنيات إمكانية الوصول، ومستشار لتطوير إمكانية الوصول في المواقع والتطبيقات.

حاصل على ترخيص تدريب المؤسسات والأفراد من منظمة NVAccess المطورة لقارئ الشاشة NVDA الأشهر على مستوى العالم.

حاصل على شهادات في تطوير الويب الشامل (FullStack Development) وتطوير واجهات الويب (FrontEnd Development) من أكاديمية مؤسسة الأمير محمد بن سلمان الخيرية (مسك) بالتعاون مع شركة Udacity العالمية.

مطور برمجيات باستخدام لغة Python البرمجية.

أهداف البرنامج:

بنهاية هذا البرنامج التدريبي، سيكون المتدرب -بإذن الله- قادرًا على أن:

الفئة المستهدفة:

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

قواعد اللقاءات:

التجهيزات التي يجب توفرها:

يجب على المتدربين توفير التجهيزات التالية؛ لضمان الاستفادة من محتوى البرنامج التدريبي:

مقدمة:

في عالمٍ غدا أصغر فأصغر، وباتت التقنية فيه أحد المحركات الأساسية للتقدم والنماء، كان لزامً علينا الالتحاق بركب التطور، والتعرف على التقنيات الجديدة التي تساهم في تحسين حياتنا.

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

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

ثم سأتطرق إلى مجموعة من الأدوات التي تساعد المبرمجين على الإنتاجية، بدءًا بالمحرر البرمجي Visual Studio Code, أحد أفضل المحررات البرمجية، مرورًا بسطر الأوامر ونظام GitHub, وصولاً إلى أساسيات نظام Linux وأهميته لمطوري الويب.

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

اليوم الأول: مبادئ على طريق البرمجة.

الأهداف:

بنهاية هذا اليوم التدريبي، سيكون المتدرب -بإذن الله- قادرًا على أن:

مقدمة:

المادة العلمية:

تعد البرمجة أحد أهم مجالات الاختصاص في العصر الحديث، حيث امتد تأثيرها إلى كافة نواحي حياتنا، مغيرةً بذلك مجالات العمل إلى الأبد.

فمن المحاسبة إلى الطب، ومن الزراعة إلى الطيران، نجد بأن البرمجة غيرت شكل العمل، وطورت الإنتاجية، معلنةً عن عصرٍ جديد، يساهم فيه المبرمجون بتحسين جودة الحياة.

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

مفهوم البرمجة:

المادة العلمية:

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

وتُعْرَف هذه الأوامر البرمجية بلغة البرمجة، ويوجد عدد كبير من لغات البرمجة التي تختلف في مجال عملها والأنظمة التي تدعمها والاحتياج لها في سوق العمل، إضافةً إلى عوامل أخرى كثيرة.

لماذا نتعلم البرمجة:

المادة العلمية:

هنالك العديد من الأسباب التي تدفع الكثيرين لتعلم البرمجة، ولعل من أهمها:

أشهر لغات البرمجة:

نشاط (1):

بعد البحث في المواقع المتخصصة، حدد أكثر لغات البرمجة شيوعًا في عام 2020، وكم بلغت نسبة استخدامها مقارنةً بالعام السابق؟

المادة العلمية:

تختلف لغات البرمجة بشكل كبير، ولعل أكثرها شيوعًا هي اللغات التالية:

نشاط (2):

بعد البحث في الإنترنت، حدد أبرز استخدامات لغات البرمجة المذكورة أعلاه.

أفكار خاطئة عن البرمجة والمبرمجين:

المادة العلمية:

تختلف الأفكار الخاطئة عن البرمجة والمبرمجين، ولعل من أهمها:

الطريق إلى تعلم البرمجة:

المادة العلمية:

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

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

ولعل أبرز الصفات التي ينبغي على المبرمج التحلي بها هي:

إدارة المشاكل والتوقعات:

المادة العلمية:

أهم أنواع المشاكل التي تواجه المبرمجين:
إدارة التوقعات:
كيف أبدأ التعلم؟
كيف أكتب برنامجي الأول؟

أدوات لمساعدة المبرمجين:

المادة العلمية:

هنالك مجموعة من الأدوات التي تساعد المبرمج على أداء عمله بشكل مميز، كما توجد مجموعة كبيرة من المواقع والتي يمكن اللجوء إليها عند الحاجة إلى المساعدة.

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

المحررات البرمجية:

سيتم خلال هذه الدورة استعمال برنامج Visual Studio Code لكتابة الأكواد البرمجية، والذي يعد أحد أفضل برامج التحرير البرمجي وأكثرها توافقية.

أدوات سطر الأوامر:

سنستعرض سويةً الأدوات المستخدمة للتعامل مع سطر الأوامر، ومنها برنامج GitBash وبرنامج Windows Terminal.

موقع GitHub لإدارة التعاون والتوزيع البرمجي:

GitHub هي منصة مشاركة البرامج مفتوحة المصدر الأشهر على مستوى العالم. ومن خلال هذه الدورة، سنتعرف على كيفية استخدام أشهر مزاياها بالشكل الأمثل.

منصة Windows Subsystem for Linux (WSL) لمطوري المواقع:

تعد منصة Windows Subsystem for Linux هي المنصة الأمثل لتطوير مواقع وخدمات الويب على نظام Windows. وسنستعرض خلال هذه الدورة أساسيات التعامل معها واستخدامها بالشكل الأمثل.

واجب اليوم الأول:

من خلال ما تعلمته اليوم، وبالاعتماد على مصادر البحث المختلفة والمواقع الموجودة في مرجع الحقيبة التدريبية، قم بما يلي:

اليوم الثاني: Visual Studio Code:

الأهداف:

بنهاية هذا اليوم التدريبي، سيكون المتدرب -بإذن الله- قادرًا على أن:

مقدمة حول Visual Studio Code:

نشاط (3):

بالنظر إلى أن الأوامر البرمجية هي عبارة عن نصوص، فماذا يميز برامج التحرير المتخصصة مثل برنامج Visual Studio Code عن برامج التحرير العادية مثل برنامج المفكرة Notepad?

أجب عن هذا السؤال في ثلاث نقاط.

المادة العلمية:

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

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

وتتنوع تلك الأدوات بدءً بأدوات اكتشاف الأخطاء، مرورًا بأدوات التكامل مع خدمات Amazon Web Services و Microsoft Azure السحابية وإدارة المشاريع من خلال GitHub, وصولاً إلى تطوير برامج الذكاء الاصطناعي، كل ذلك من خلال واجهة تضعك في الصورة دائما.

استعراض الواجهة الأساسية:

المادة العلمية:

تنقسم واجهة Visual Studio Code إلى عدة أقسام رئيسة، يمكن التنقل بينها باستخدام الاختصار F6:

المحرر:

عند البدء باستخدام Visual Studio Code, يمكن الانتقال إلى المحرر باستخدام مفتاح F6 والبدء بكتابة الأوامر البرمجية، ويوفر Visual Studio Code عددًا من الإضافات التي يمكن تثبيتها؛ لعرض اقتراحات يمكن أن تسرع كتابتك للكود البرمجي.

عند ظهور الاقتراحات، يمكن التنقل بينها باستخدام السهمين الأعلى والأسفل، واختيار أحدها باستخدام مفتاح الإدخال.

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

شريط الحالة:

يمكن من خلال شريط الحالة استعراض أبرز الأوامر السريعة والتي يمكن تنفيذها، كما يمكن استعراض الإشعارات الخاصة ب Visual Studio Code.

الشريط العلوي:

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

متصفح الملفات Explorer” (مفتاح الاختصار: CTRL+Shift+E):

يمكنك متصفح الملفات من تصفح كافة الملفات الموجودة في مجلد العمل، وإضافة الملفات والمجلدات، وإجراء عمليات التحرير وإعادة التسمية والحذف.

ويمكن الانتقال السريع إلى متصفح الملفات من خلال الاختصار CTRL+Shift+E.

البحث Search” (مفتاح الاختصار: CTRL+Shift+F):

تمكنك هذه الشاشة من البحث في ملف معين أو كافة الملفات المفتوحة في المحرر، وذلك باستخدام كلمات محددة أو استخدام قواعد Regular Expressions, وإجراء عمليات الاستبدال.

ويمكن الانتقال السريع إلى شاشة البحث من خلال الاختصار CTRL+Shift+F.

التحكم بالمصادر Source Control” )مفتاح الاختصار: CTRL+Shift+G):

تمكنك هذه الشاشة من التحكم بالمصادر البرمجية وإرسالها إلى GitHub, كما تمكنك من إجراء المطلوبة عليها، وسنتطرق إلى كيفية إرسال المصادر إلى GitHub لاحقًا.

ويمكن الانتقال السريع إلى شاشة التحكم بالمصادر من خلال الاختصار CTRL+Shift+G.

التشغيل Run” (مفتاح الاختصار: CTRL+Shift+D):

تمكنك هذه الشاشة من تشغيل برنامجك مباشرةً، دون الحاجة إلى مغادرة Visual Studio Code, كما تمكنك من اكتشاف الأخطاء التشغيلية لإصلاحها.

ويمكن الانتقال السريع إلى شاشة التشغيل من خلال الاختصار CTRL+Shift+D.

الإضافات Extentions” (مفتاح الاختصار: CTRL+Shift+X):

تمكنك هذه الشاشة من إدارة إضافات Visual Studio Code, والبحث عن الإضافات الجديدة.

تجدر الإشارة إلى أن إضافات Visual Studio Code مهمة جدًا لتحسين أداء البرنامج مع بعض لغات البرمجة، وإضافة الميزات التي تساهم في رفع إنتاجيتك.

ويمكن الانتقال السريع إلى شاشة الإضافات من خلال الاختصار CTRL+Shift+X.

لوحة الأوامر Command Palette” (مفتاح الاختصار: F1 أو CTRL+Shift+P):

تمكنك لوحة الأوامر Command Palette” من البحث عن أمر لتنفيذه في كافة جوانب برنامج Visual Studio Code, ويمكن للإضافات التي يتم تنزيلها إضافة أوامر إلى هذه اللوحة.

عند الضغط على مفتاح الاختصار F1 أو CTRL+Shift+P سيعرض لك البرنامج مربع للتحرير، قم بكتابة الأحرف الأولى من الأمر المراد تنفيذه.

سيعلمك Visual Studio Code عن ظهور عدد من الاقتراحات، والتي يمكنك التنقل بينها باستخدام السهمين الأعلى والأسفل، واختيار ما يناسبك منها لتنفيذه. عندها، قم بضغط مفتاح الإدخال لتنفيذ الأمر.

كما يمكنك ضغط مفتاح الهروب لإغلاق النافذة.

أهم الإضافات الموصى بها:

المادة العلمية:

لبرنامج Visual Studio Code العديد من الإضافات، ولعلي أسرد بعضًا منها هنا. ساهمت هذه الإضافات في تطوير عملي وإنتاجيتي كمطور.

C/C++:

تمكنك إضافة C/C++ من Microsoft من إدارة عمليات التشغيل والبناء لبرامج C/C++، وذلك بتوفير التكامل بين Visual Studio Code وأدوات بناء وتشغيل البرامج، كما تساعد في اكتشاف أخطاء البرامج وإصلاحها.

Debugger for Chrome:

تمكنك إضافة Debugger for Chrome من اكتشاف أخطاء أوامر Javascript البرمجية على متصفح Google Chrome.

Markdown All in One:

تمكنك إضافة Markdown All in One من Yu Zhang من كتابة ملفات بلغة Markdown ومعاينتها، وإدراج جداول المحتويات، ومعاينة الملفات وتحويلها إلى لغة HTML.

وتعد هذه الإضافة مفيدةً لكتابة وثائق المساعدة ودلائل الاستخدام، وملفات ReadMe على موقع GitHub. وقد تم إعداد هذه الحقيبة التدريبية باستخدام إضافة Markdown All in One.

Pylance:

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

Visual Studio IntelliCode:

تمكنك إضافة Visual Studio IntelliCode من Microsoft من توفير الوقت والجهد أثناء كتابة الأوامر البرمجية، وذلك من خلال توفير الاقتراحات المعتمدة على الذكاء الاصطناعي، بما يتوافق مع الأوامر البرمجية التي تم كتابتها سابقًا.

إضافات خاصة بدعم إمكانية الوصول:

يوصى بتحميل الإضافات التالية لدعم إمكانية الوصول في برنامج Visual Studio Code:

أدوات التحرير واكتشاف الأخطاء:

المادة العلمية:

عند الكتابة في محرر Visual Studio Code, يمكن للأدوات التالية مساعدتك لاكتشاف الأخطاء وإصلاحها:

قائمة المشاكل:

يتعرف Visual Studio Code على بعض الأخطاء اللغوية والمنطقية تلقائيًّا، ويعرض تلك الأخطاء في نافذة مخصصة لسهولة الوصول إليها.

ويمكن الوصول إلى نافذة المشاكل أو استبعادها باستخدام الاختصار CTRL+Shift+M أو بالضغط عليها من خلال شريط الحالة.

عند الوصول إلى نافذة المشاكل، سيعرض Visual Studio Code المشاكل على شكل عرض شجري، ويمكن وضع المؤشر على السطر الذي توجد فيه المشكلة في المحرر من خلال ضغط مفتاح الإدخال على المشكلة نفسها.

أداة اكتشاف الأخطاء أثناء التشغيل Debug”:

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

عند تشغيل الأداة لأول مرة، سيطلب منك Visual Studio Code تحديد ملف التشغيل الأساسي للبرنامج؛ كي يبدأ بتشغيله ومراقبة المتغيرات.

ويمكنك قبل تشغيل هذه الأداة وضع علامة توقف Break Point” عند نقطة معينة في الملف؛ لمعاينة حالة المتغيرات والدوال عندها، وذلك من خلال الضغط على F9 بعد وضع المؤشر على النقطة التي تريد وضع علامة التوقف عندها.

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

نظرة على أهم إعدادات Visual Studio Code:

المادة العلمية:

لبرنامج Visual Studio Code كثير من الإعدادات التي تتحكم بكافة جوانبه، ولا يمكننا استعراضها كاملةً في هذا الدليل، ويمكنكم استعراض كافة الإعدادات ومدلولاتها من خلال صفحة Visual Studio Code User and Workspace Settings

ويمكن الوصول إلى الإعدادات من خلال الضغط على الاختصار ctrl+, وتعديلها من خلال الواجهة، أو من خلال تعديل ملف الإعدادات بصيغة json.

الفرق بين إعدادات مجلد العمل Workspace Settings” وإعدادات المستخدم User Settings”:

تتحكم إعدادات المستخدم بالإعدادات التي يتم تطبيقها بشكل عام على كافة جوانب Visual Studio Code, أما إعدادات مجلد العمل، فتتحكم بالإعدادات التي يتم تطبيقها على مجلد مشروع معين.

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

أبرز الإعدادات التي يمكن ضبطها في برنامج Visual Studio Code:

يحتوي برنامج Visual Studio Code على الكثير من الإعدادات، وإليكم أبرزها:

مزيد من اختصارات Visual Studio Code:

لبرنامج Visual Studio Code العديد من الاختصارات، ويمكنكم قراءة الدليل السريع للاختصارات من خلال الروابط التالية: اختصارات برنامج Visual Studio Code لنظام التشغيل Windows اختصارات برنامج Visual Studio Code لنظام التشغيل MacOS مزيد من المعلومات حول تخصيص مفاتيح الاختصار لبرنامج Visual Studio Code

واجب اليوم الثاني:

من خلال ما تعلمته اليوم، وبالاستعانة بمصادر البحث المختلفة، قم بما يلي:

اليوم الثالث: ابدأ مع سطر الأوامر CommandLine.

الأهداف:

بنهاية هذا اليوم التدريبي، سيكون المتدرب -بإذن الله- قادرًا على أن:

نبذة عن سطر الأوامر وأهميته للمبرمج:

المادة العلمية:

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

حيث لا توفر بعض البرامج واجهةً رسومية للتعامل معها، بل تقتصر على توفير واجهة سطر الأوامر للمبرمجين، والتي تسمى عادةً Command line Interface” أو (CLI).

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

ويعد سطر الأوامر مهمًّا عند التعامل مع أنظمة التشغيل عن بعد، كما هو الحال عند إدارة أنظمة Linux المشغلة لخوادم الإنترنت، حيث لا تأخذ واجهات سطر الأوامر الكثير من الموارد عند التعامل معها، على عكس الواجهات الرسومية المستهلكة للذاكرة والمعالج.

سنتعرف خلال هذه الدورة على كيفية استخدام سطر الأوامر من خلال Windows Terminal اعتمادًا على برنامج GitBash. ولكن قبل ذلك، لنتعرف على عدد من المفاهيم أولاً.

مكونات ومفاهيم لسطر الأوامر:

تتغير المفاهيم التالية من نظام لآخر، ولكن هذا التغير لا يكون كبيرًا في العادة:

ولتبسيط الصورة، دعونا نأخذ المثال التالي:

عندما يقوم مستخدم بكتابة أمر معين (على سبيل المثال: cd /d/test”) فإنه يقوم بإدخال الأمر في مربع التحرير المسمى بسطر الأوامر.

عند إرسال المستخدم للأمر باستخدام مفتاح الإدخال، يقوم برنامج الإدخال والإخراج Terminal” بإرسال الأمر إلى نظام إدارة سطر الأوامر Shell”, والذي يقوم بالتحقق من الأمر وتنفيذه.

عند تنفيذ الأمر، يقوم نظام إدارة سطر الأوامر Shell” بإرسال النتيجة إلى برنامج الإدخال والإخراج Terminal” لعرضها على المستخدم.

نشاط (4):

هل هنالك أمثلة أخرى يمكن اعتبارها Terminals? وهل هنالك أمثلة أخرى يمكن القول بأنها Shells? اذكرها.

نظام ويندوز وسطر الأوامر:

المادة العلمية:

يحتوي نظام Windows افتراضيًّا على نظامين لإدخال الأوامر وهما:

أخيرًا، أصدرت Microsoft في أواخر عام 2019 برنامج Windows Terminal, والذي يمكن المستخدم من التعامل مع كافة أنظمة إدارة سطر الأوامر على Windows من مكان واحد، ويوفر العديد من الميزات التي تسهل عمل المطورين، كما ويسمح بتخصيص مظهر سطر الأوامر، واختصارات لوحة المفاتيح، والكثير الكثير.

نظامَي ماك ولينوكس وسطر الأوامر:

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

أما عن نظام ماك، فقد بدأت Apple باستخدام نظام ZSH لإدارة سطر الأوامر، بدءً من إصدار MacOS Catalina (10.15) بشكل افتراضي؛ ويعتقد أن ذلك يعود لأسباب تتعلق بالترخيص، ولكن نظام ZSH لا يختلف كثيرًا عن نظام Bash.

ويمكن لمستخدمي نظام Mac استخدام برنامج Terminal الافتراضي للتفاعل مع سطر الأوامر.

محاكي Bash على نظام ويندوز:

المادة العلمية:

سيتم الاعتماد على نظام Bash لإدارة سطر الأوامر خلال هذه الدورة؛ للتقريب بين الأنظمة الثلاث، وزيادة احترافية المستخدمين في التعامل مع سطر الأوامر.

ويمكن تنزيل برنامج GitBash لنظام Windows واستخدامه خلال هذه الدورة.

استخدام نظام GitBash من خلال برنامج Windows Terminal:

نعلم بأن برنامج Windows Terminal يوفر واجهة موحدة لكافة أنظمة إدارة سطر الأوامر على Windows. ولذا فسنقوم باستخدامه كواجهة للتعامل مع تلك الأنظمة، إذ تضمن مرونته الكبيرة وإمكانية تخصيصه تجربةً أفضل وإنتاجيةً أسرع.

وللربط بين برنامج Windows Terminal ونظام GitBash قم بما يلي:

  1. قم بتنزيل برنامج Windows Terminal من متجر Microsoft.
  2. عند تشغيل برنامج Windows Terminal لأول مرة، قم بالضغط على الاختصار CTRL+, لفتح ملف الإعدادات في برنامج Visual Studio Code.
  3. انتقل إلى قسم Profiles, والذي يحتوي على كافة أنظمة سطر الأوامر التي يمكنك استخدامها من خلال برنامج Windows Terminal.
  4. قم بلصق الكود التالي داخل قسم List الموجود داخل قسم Profiles, مع مراعاة عدم لصقه في المكان الخطأ، ثم احفظ الملف وأعد تشغيل برنامج Windows Terminal:
            {
                "guid": "{00000000-0000-0000-ba54-000000000002}",
                "acrylicOpacity": 0.75,
                "closeOnExit": true,
                "colorScheme": "Campbell",
                "commandline": "\"%PROGRAMFILES%\\git\\usr\\bin\\bash.exe\" -i -l",
                "cursorColor": "#FFFFFF",
                "cursorShape": "bar",
                "fontFace": "Consolas",
                "fontSize": 10,
                "historySize": 9001,
                "icon": "ms-appx:///ProfileIcons/{0caa0dad-35be-5f56-a8ff-afceeeaa6101}.png",
                "name": "Bash",
                "padding": "0, 0, 0, 0",
                "snapOnInput": true,
                "startingDirectory": "%USERPROFILE%",
                "useAcrylic": true
            },

تجدر الإشارة إلى أن ترتيب الProfiles داخل هذه القائمة يعكس ترتيب ظهورها في شاشة Windows Terminal.

ملاحظة: تم استعمال الملف bash.exe لأنه المسؤول عن نظام Bash لإدارة سطر الأوامر.

استعراض شاشة موجه الأوامر:

المادة العلمية:

عند فتح برنامج Windows Terminal أو برنامج Terminal على نظام Mac, ستظهر لك شاشة يمكنك من خلالها كتابة الأوامر مباشرةً، وسيقوم قارئ الشاشة بإعلامك تلقائيًّا بنتيجة الأمر المكتوب.

الإجراءات الأساسية في موجه الأوامر:

المادة العلمية:

هنالك عدد من الأوامر الأساسية التي يمكن البدء باستخدامها عند فتح سطر الأوامر، وسأستعرض بعضًا منها هنا:

cd:

يستخدم الأمر cd للانتقال من مجلد لآخر، وهو اختصار لكلمتَي Change Directory.

أمثلة:

للانتقال إلى مجلد باسم Test داخل القرص D يمكن كتابة الأمر التالي:

cd /d/test

يرجى ملاحظة علامة الخط المائل /” في بداية مسار المجلد، دلالةً على أننا سنقوم بكتابة المسار كاملاً. ولكن، ما العمل في حال أردنا الانتقال إلى مجلد داخل المجلد الحالي أو قريب منه؟ هل يجب كتابة المسار كاملا؟ لا بالطبع!

للانتقال إلى مجلد داخل المجلد الحالي، نكتب اسمه مباشرةً. على سبيل المثال: إن كنا داخل مجلد Test الموجود داخل القرص D والمحتوي على مجلد Project1, يمكننا ببساطة كتابة ما يلي:

cd project1

ويمكننا الانتقال إلى مجلد فرعي بإضافة علامة الخط المائل /” وكتابة اسمه كما يلي:

cd project1/src/assets

للعودة للخلف، يمكننا كتابة ما يلي:

cd ../

ويمكننا العودة لأكثر من مجلد في الوقت الواحد، وذلك بكتابة ما يلي:

cd ../../../

مما يعني أننا سنعود للوراء ثلاث مجلدات.

يمكننا جمع كل ما سبق والانتقال إلى الخلف ثم الدخول إلى مجلد مختلف كما يلي:

cd ../../../project2/src/backend

الأمر pwd:

يستخدم الأمر pwd لمعرفة مسار المجلد الذي نتواجد فيه حاليًّا

الأمر mv:

يستخدم الأمر mv لنقل الملفات والمجلدات وإعادة تسميتها، ويتلوه اسم الملف أو المجلد المراد نقله أو إعادة تسميته، يتلوه مسار المجلد المراد نقل الملف إليه.

أمثلة:

لنفترض أننا داخل مجلد test سالف الذكر وهو يحتوي على ملف نصي باسم moveMe.txt”, ونود نقله إلى مجلد project1، يمكننا عمل ذلك كالتالي:

mv moveMe.txt project1

أما إذا كنا نريد إعادة تسميته بعد نقله إلى moved.txt”, فيمكننا كتابة الأمر كالتالي:

mv moveMe.txt project1/moved.txt

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

لنقل الملف مرةً أخرى إلى مجلد project2 يمكننا كتابة الأمر التالي:

mv /project1/moved.txt project2

لاحظ أنه يتم كتابة المسارات اعتمادًا على المجلد الحالي، ويمكننا كتابتها بشكل كامل كما يلي:

mv /d/test/project1/moved.txt /d/test/project2

ولكن هذا قد يستغرق وقتًا في الكتابة.

الأمر cp:

يستخدم الأمر cp لنسخ الملفات من مجلد لآخر، حيث يتم كتابة الأمر cp يتلوه اسم الملف المراد نسخه، يتلوه مسار المجلد المراد نسخ الملف إليه.

الأمر touch:

يستخدم الأمر touch لإنشاء الملفات الجديدة، ولتنفيذه يتم كتابة الأمر touch ثم كتابة اسم الملف مع الامتداد كما يلي:

touch test.txt

touch project1/src/todo.md

الأمر mkdir:

يمكن من خلال الأمر mkdir إنشاء المجلدات. ويتم كتابة الأمر mkdir يتلوه اسم المجلد المراد إنشاءه.

لإنشاء عدد من المجلدات الفرعية في آن واحد، يمكن كتابة الأمر mkdir - p ثم كتابة أسماء المجلدات كما يلي:

mkdir -p project3/src/images

سيقوم سطر الأوامر عندها بإنشاء مجلد project3, ويقوم بإنشاء مجلد داخله باسم src, ثم يقوم بإنشاء مجلد داخله باسم images.

الأمر ls:

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

أمثلة:

لعرض قائمة بالملفات والمجلدات في المجلد الحالي:

ls

لعرض معلومات أكثر، تتضمن الحجم والصلاحيات:

ls -l

لعرض الملفات والمجلدات المخفية:

ls -a

لعرض الملفات والمجلدات المخفية وكافة معلومات الملفات، والتي تتضمن الحجم والصلاحيات لمجلد معين مختلف عن المجلد الحالي:

ls -la project1/src

الأمر rm:

يستخدم الأمر rm لحذف الملفات والمجلدات، ويمكن استخدام الخيار r في حال الرغبة بحذف مجلدات تحتوي ملفات أو مجلدات أخرى، والخيار f لإجبار النظام على حذف الملفات حتى لو كانت قيد الاستخدام.

تجدر الإشارة إلى أنه لا يمكن التراجع عن هذه العملية.

أمثلة:

لحذف ملف أو مجلد فارغ:

rm project2/test.txt

لحذف مجلد يحتوي على ملفات:

rm -r project2

لحذف ملف أو مجلد حتى وإن كان مستخدمًا:

rm -rf project1

نشاط (5):

أجب عن ةالأسئلة التالية من خلال البحث:

موجه الأوامر والبرمجة.

المادة العلمية:

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

ويتم كتابة هذه الأوامر من خلال سطر الأوامر، أو كتابتها في ملف .bashrc” المسؤول عن تنفيذها تلقائيًّا عند تشغيل سطر الأوامر في كل مرة.

متغير Path:

يحتوي متغير path على المسارات التي يقوم نظام bash بالبحث فيها عن الملفات التنفيذية للبرامج. فعلى سبيل المثال: عند كتابة كلمة python” في سطر الأوامر، يقوم النظام بالبحث في تلك المسارات عن ملف تنفيذي باسم python” لتشغيله.

ولذا فمن المهم إدراج البرامج التي نقوم باستخدامها باستمرار في متغير path; كي لا نضطر لكتابة المسار الكامل للبرنامج في كل مرة نحاول فيها تشغيله.

ولعمل ذلك، يمكن كتابة التالي في سطر الأوامر، أو كتابته في ملف .bashrc” الموجود في مجلد المستخدم لضمان وجود المسار في متغير path عند تشغيل سطر الأوامر في كل مرة:

export PATH="$PATH:/path/to/folder/"

مع مراعاة استبدال /path/to/folder” بالمسار الذي يحوي ملفات البرنامج التنفيذية:

export PATH="$PATH:/C/Program Files/Amazon/AWSCLIV2/"

الأسماء البديلة aliases:

تمكن الأسماء البديلة من إنشاء اختصارات لتسريع كتابة الأوامر. عند كتابة اسم بديل، يقوم نظام Bash باستبداله بالاسم المُخْتَصَر في كل مرة.

ولإدراج أسماء بديلة، يمكن كتابة التالي في سطر الأوامر، أو كتابته في ملف .bashrc” الموجود في مجلد المستخدم لضمان وجود الاسم في نظام Bash عند تشغيل سطر الأوامر في كل مرة:

alias shortcmd="long command"

مثال:

alias vc="python -m venv venv"

عند كتابة الأمر vc في سطر الأوامر، فسيتم استبداله بالأمر python -m venv venv وتنفيذه.

Visual Studio Code وسطر الأوامر:

المادة العلمية:

نافذة Terminal في برنامج Visual Studio Code:

يوفر Visual Studio Code نافذة يمكن من خلالها كتابة الأوامر المختلفة على سطر الأوامر، بحيث لا يحتاج المبرمج إلى مغادرة نافذة Visual Studio Code.

ويمكن تشغيل هذه النافذة من خلال الضغط على الاختصار CTRL+` كما يمكن اختيار نظام سطر الأوامر الافتراضي من خلال خيار Terminal: Select Default Shell” الموجود في لوحة الأوامر.

فتح المشاريع من خلال برنامج Visual Studio Code:

يمكن فتح مجلدات أو ملفات المشاريع في برنامج Visual Studio Code من خلال كتابة الأمر code متبوعًا بمسار المجلد أو الملف المراد فتحه في نافذة سطر الأوامر. على سبيل المثال:

code /d/test/project1

code project1

عند فتح المجلدات في Visual Studio Code, ستعتبر بمثابة مشروع يمكن التنقل بين ملفاته من خلال متصفح الملفات الموجود داخل البرنامج.

مصادر للمساعدة عند استخدام موجه الأوامر:

لمزيد من المعلومات حول سطر الأوامر، يمكنكم مراجعة المصادر التالية:

واجب اليوم الثالث:

من خلال ما تعلمته، وبالاعتماد على مصادر البحث المختلفة، قم بتسجيل مقطع صوتي يوضح ما يلي عمليًّا:

اليوم الرابع: إدارة المشاريع البرمجية من خلال Git:

الأهداف:

بنهاية هذا اليوم التدريبي، سيكون المتدرب -بإذن الله- قادرًا على أن:

أهمية Git للمبرمجين:

المادة العلمية:

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

كما توفر المنصة أدوات لتقسيم الكود البرمجي لسهولة إدارته، إضافةً إلى العديد من المزايا الأخرى.

الفرق بين Git و GitHub:

المادة العلمية:

على الرغم من أن منصة Git توفر أدوات لمراقبة الكود البرمجي والتحكم به، إلا أنها لا توفر خصائص لمشاركة الكود البرمجي مع أشخاص آخرين، وهذا ما توفره منصة GitHub.

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

وتجمع منصة GitHub العديد من المشاريع الضخمة، كقارئ الشاشة NVDA, وبرنامج Visual Studio Code, والعديد من المشاريع من الشركات الكبرى.

مصطلحات Git والتي يجب معرفتها:

المادة العلمية:

هنالك العديد من المصطلحات التي يجب علينا معرفتها عند البدء في استخدام نظام Git, ولعل أشهرها:

كيفية إنشاء المشاريع على Git:

االمادة العلمية:

لإنشاء مشروع على Git, قم بما يلي:

العمل مع Git لأول مرة:

يتم القيام بالخطوات التالية عند أول مرة تقوم فيها باستعمال Git:

  1. افتح Windows Terminal واختر نظام Bash, أو قم بفتح برنامج GitBash مباشرةً من قائمة ابدأ.

  2. يجب عليك إعداد git باستخدام اسمك وبريدك الإلكتروني، والتي ستُسْتَخْدَم عند إجراء عمليات Commit, وذلك من خلال إدخال الأوامر التالية:

    git config --global user.name "Your Name"

    git config --global user.email "[email protected]"

إنشاء المشاريع على Git:

اتبع الخطوات التالية لإنشاء مشروع على Git, وذلك باستخدام نظام GitBash:

  1. قم بإنشاء مجلد جديد خاص بالمشروع، وانتقل إليه: mkdir project && cd project
  2. قم بتجهيز مجلد المشروع وتحويله إلى Git repository: git init
  3. لإضافة الملفات لتتبعها، استخدم الأمر git add” متبوعًا باسم الملف أو المجلد. ولإضافة كافة الملفات، استخدم الأمر git add .”
  4. يمكنك إنشاء ملف باسم .gitignore” لإضافة الملفات والمجلدات التي تريد من نظام Git تجاهلها. ويمكن استبدال علامة النجمة *” للإشارة إلى جزء متغير من اسم الملف. تستخدم هذه الطريقة لإجبار نظام Git على تجاهل الملفات والمجلدات السرية أو تلك المتعلقة ببيئة التطوير الخاصة بالمستخدم، ويتم كتابة أسماء الملفات والمجلدات التي يجب تجاهلها واحدًا في كل سطر.
  5. قم بإضافة ملف .gitignore إلى الملفات التي يجب تتبعها من خلال الأمر المشار إليه في الخطوة 3.
  6. قم بعمل Commit للتغييرات، وذلك من خلال الأمر: git commit -m 'message' حيث أن Message هي الرسالة التي سيتم عرضها للناس عند رؤيتهم لهذه التغييرات، كما سيتم عرضها في سجلات المشروع، لذا حاول أن تكون قصيرة ومعبرة.
  7. إذا أردت ربط هذا المشروع بمنصة GitHub, فقم بإنشاء Repository جديد على GitHub:
    • Repository name: ويتم في هذه الخانة إدخال اسم الRepository الذي تود استخدامه، ويجب أن يكون باللغة الإنجليزية وأن لا يحتوي إلا على الحروف والأرقام وبعض علامات الترقيم.
    • Description (optional): وهو حقل اختياري لإدخال وصف قصير للمشروع.
    • Public, Private: ويتم من خلال هذا الخيار تحديد ما إذا كان يمكن للجميع رؤية هذا الRepository.
    • Add a README file: عند تحديد هذا الخيار، سيقوم GitHub بإنشاء ملف ReadMe تلقائيًّا، ولكننا لن نقوم بتحديده لأننا أنشأنا الRepository من خلال Git سلفًا.
    • Add .gitignore: ويمكن لGitHub مساعدتك على إضافة ملف .gitignore تلقائيًّا اعتمادًا على لغة البرمجة التي ستقوم باستخدامها، ولكننا سنتجاهل هذا الخيار لأننا أنشأنا الRepository من خلال git سلفًا.
    • Choose a license: ويمكن لGitHub مساعدتك في اختيار الترخيص المناسب لمشروعك، ولكننا سنتجاهل هذا الخيار لأننا أنشأنا الRepository من خلال git سلفًا.
    • عند الانتهاء، اضغط على Create repository.
  8. عد إلى نافذة GitBash وقم بربط الRepositories ببعضها من خلال الأمر التالي: git remote add origin https://github.com/username/repository-name.git مع مراعاة استبدال الرابط برابط الRepository الخاص بك والذي حصلت عليه من موقع GitHub.
  9. علينا الآن الانتقال إلى الBranch الأساسي والمسمى بmain، ويمكن الانتقال إليه من خلال الأمر: git branch -M main
  10. أخيرًا، وعندما نكون جاهزين لرفع الملفات إلى موقع GitHub, نقوم بكتابة الأمر: git push -u origin main عند عمل هذا الإجراء لأول مرة، قد يُطْلَب منك تسجيل الدخول إلى موقع GitHub باستخدام اسم المستخدم وكلمة المرور.

كيفية إنشاء المشاريع على GitHub:

المادة العلمية:

لا يختلف إنشاء الRepositories من خلال GitHub كثيرًا عما هو الحال عليه في Git, وللقيام بذلك يمكنك اتباع الخطوات التالية:

  1. قم بإنشاء Repository جديد على GitHub:
    • Repository name: ويتم في هذه الخانة إدخال اسم الRepository الذي تود استخدامه، ويجب أن يكون باللغة الإنجليزية وأن لا يحتوي إلا على الحروف والأرقام وبعض علامات الترقيم.
    • Description (optional): وهو حقل اختياري لإدخال وصف قصير للمشروع.
    • Public, Private: ويتم من خلال هذا الخيار تحديد ما إذا كان يمكن للجميع رؤية هذا الRepository.
    • Add a README file: عند تحديد هذا الخيار، سيقوم GitHub بإنشاء ملف ReadMe تلقائيًّا.
    • Add .gitignore: ويمكن لGitHub مساعدتك على إضافة ملف .gitignore تلقائيًّا اعتمادًا على لغة البرمجة التي ستقوم باستخدامها.
    • Choose a license: ويمكن لGitHub مساعدتك في اختيار الترخيص المناسب لمشروعك.
    • عند الانتهاء، اضغط على Create repository.
  2. قم بالانتقال إلى المجلد الذي تريد وضع الRepository بداخله، باستخدام الأمر CD على نظام سطر الأوامر GitBash.
  3. قم بتنزيل الRepository من خلال الأمر التالي:

git clone https://github.com/username/repository-name.git

مع مراعاة استبدال الرابط برابط الRepository الخاص بك والذي حصلت عليه من موقع GitHub.

  1. علينا الآن الانتقال إلى الBranch الأساسي والمسمى بmain، ويمكن الانتقال إليه من خلال الأمر:

git branch -M main

  1. لإضافة الملفات لتتبعها، استخدم الأمر git add” متبوعًا باسم الملف أو المجلد. ولإضافة كافة الملفات، استخدم الأمر git add .”
  2. قم بعمل Commit للتغييرات، وذلك من خلال الأمر:

git commit -m 'message'

حيث أن Message هي الرسالة التي سيتم عرضها للناس عند رؤيتهم لهذه التغييرات، كما سيتم عرضها في سجلات المشروع، لذا حاول أن تكون قصيرة ومعبرة.

  1. أخيرًا، وعندما نكون جاهزين لرفع الملفات إلى موقع GitHub, نقوم بكتابة الأمر:

git push -u origin main

عند عمل هذا الإجراء لأول مرة، قد يُطْلَب منك تسجيل الدخول إلى موقع GitHub باستخدام اسم المستخدم وكلمة المرور.

إضافة الملفات وتعديلها:

المادة العلمية:

عند تعديل ملف أو إضافة آخر جديد، يمكن استعمال الأوامر التالية:

الأمر git status:

يبلغك الأمر git status عن حالة الملفات والمجلدات بوجه عام، وعما إذا كانت مراقبة من خلال نظام Git أم لا، كما يبلغك في حال اكتشاف تغييرات جديدة.

بيئة التطوير Staging Environment”:

وتحتوي هذه البيئة الملفات التي تم تغييرها أو إضافتها، ولكن لم يتم عمل Commit لتلك التغييرات. ويمكن القول بأنها بيئة المراجعة النهائية قبل عمل أي Commit.

الأمر git commit:

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

ويتم إضافة الرسالة بإضافة الخيار -m متبوعًا بالرسالة بين قوسين تنصيصيَّين كما يلي:

`git commit -m Added a ReadMe File’

عند عمل Commit, سيتم تطبيق كافة التغييرات على الRepository المحلي، ويمكن بعد ذلك رفعها إلى GitHub من خلال الأمر:

git push

التراجع عن التغييرات:

المادة العلمية:

يملك نظام Git العديد من الخيارات التي تمكنك من التراجع عن التغييرات عند الرغبة بذلك:

في بيئة التطوير Staging Environment”:

في حال كون الملف في بيئة الStaging Environment وذلك قبل عمل Commit, فيمكن التراجع عن التغييرات من خلال الأمر: git reset متبوعًا باسم الملف.

في حال عدم إدراج اسم أي ملف بعد الأمر، فسيتم التراجع عن كافة التغييرات التي أُجْرِيَت بعد عملية Commit الأخيرة.

التراجع عن الCommit الأخيرة:

للتراجع عن عملية Commit الأخيرة، استعمل الأمر git reset --soft HEAD~1

يتراجع هذا الأمر عن عملية Commit الأخيرة، ويبقي الملفات على حالها دون تغيير.

أما إذا كنت تريد التراجع عن عملية Commit وإعادة الملفات إلى حالتها السابقة التي كانت عليها في الCommit التي قبلها، فاستعمل الأمر: git reset --hard HEAD~1

التراجع عن Commit:

للتراجع عن Commit معينة، قم باستعمال الأمر git rebase -i متبوعًا برقم sha-1 للCommit التي تريد التراجع عنها.

سيتم فتح ملف نصي يحتوي على كافة الCommits التي قمت بها منذ ذلك الحين، يمكنك حذف أيٍّ منها، وإضافة كلمة pick قبل الCommits التي تريد المحافظة عليها.

عند حفظ الملف، سيقوم نظام Git بحذف الCommits والإبقاء على ما تريد المحافظة عليه منها.

نظرة على الBranching والForking باستخدام Git:

المادة العلمية:

يتيح GitHub عمليتين مميزتين للمطورين، وهما الBranching والForking, وسنسلط الضوء عليهما هنا:

Branching:

يتم استخدام الBranching لإنشاء نسخة أخرى من الكود البرمجي، وتكون عبارة عن نقطة مرجعية لCommit معينة.

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

كما يتم استخدام الBranching عند تطوير نسخ مختلفة من برنامج معين، وذلك لضمان فصل الكود البرمجي وترتيبه.

لكل Branch عمليات Commit خاصة به، ولذا فإن من الممكن التحكم بكافة الملفات البرمجية في Branch دون أن يؤثر على آخر.

ولعمل Branch جديد، يمكننا القيام بالتالي:

  1. قم بالاستعلام عن الBranches الموجودة أولاً من خلال الأمر: git branch -a
  2. لعمل Branch جديد، قم بكتابة الأمر: git checkout -b name_of_branch حيث أن name_of_branch هو اسم الBranch الجديد.
  3. قم بكتابة الأمر: git branch -a مرةً أخرى، سيعلمك نظام Git بالBranch الحالي الذي تستخدمه، وذلك بإضافة علامة *” قبل اسمه.
  4. في حال أردت الانتقال إلى Branch مختلف، قم بكتابة الأمر: git checkout branch_name
  5. عندما تريد دمج Branch بآخر، انتقل إلى الBranch الذي تريد الدمج إليه، ثم اكتب الأمر: git merge branch_name
Forking:

يتم من خلال عملية الForking نسخ Repository كامل من حساب المالك إلى حسابك، ويمكنك عندئذ التحكم بالكود البرمجي بشكل كامل، والتعديل والإضافة عليه.

عند الرغبة بعمل Forke لمشروع معين، انتقل إلى صفحة المشروع على GitHub, واضغط على زر Forke.

بعد ذلك، قم بتنزيل الRepository إلى جهازك من خلال الأمر التالي:

git clone https://github.com/username/repository-name.git

مع مراعاة استبدال الرابط برابط الRepository الخاص بك والذي حصلت عليه من موقع GitHub.

نظرة على تطوير المشاريع الضخمة باستخدام GitHub:

المادة العلمية:

عند العمل على مشاريع ضخمة، أو مشاريع يؤدي الخلل فيها إلى مشكلات كبيرة، هنالك عدد من القواعد التي يتم اتباعها:

مثال لموقع إلكتروني:

لنفترض أن هنالك موقع إلكتروني يعمل بلغة Python, ونود كمطورين خارجيين إضافة بعض الميزات إليه، فيجب عندها اتباع الخطوات التالية:

  1. عمل Forke للمشروع على GitHub.
  2. تنزيل الكود على الجهاز، وإضافة Branch جديد خاص بهذه الميزة.
  3. بعد اكتمال العمل والاختبارات، نقوم بعمل Pull Request من خلال صفحة المشروع الأساسية، ونوضح الميزة المضافة وكيفية إضافتها.
  4. سيقوم فريق المشروع بمعاينة الكود البرمجي، وإعادته إلينا في حال وجود أي مشكلات ينبغي إصلاحها.
  5. بعد ذلك، يتم دمج الكود في Branch داخل المشروع، وعادةً ما يكون Branch خاص بالتطوير والاختبار؛ وذلك لدراسة أثر الميزة على المشروع بشكل عام.
  6. بعد اكتمال الاختبارات، يتم دمج الكود أخيرًا إلى الMain Branch, وتقوم أنظمة التوزيع تلقائيًّا بنشر الإصدار الجديد وتوزيعه على الخوادم المختلفة.

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

نظرة على Git وVisual Studio Code:

المادة العلمية:

كما هو الحال دائمًا، فإن Visual Studio Code يسعى إلى تسهيل حياة المبرمج، فمن خلال لوحة المصادر Sources” (مفتاح الاختصار: CTRL+Shift+G) تحتوي على واجهة مصغرة يمكن من خلالها إنشاء عمليات Commit والتراجع عنها، والانتقال من Branch إلى آخر، ورؤية السجلات، وإرسال الكود إلى GitHub.

ويسعى مطوروا Visual Studio Code لتطوير هذا التكامل مع GitHub و Git بشكل أكبر، حيث أُضيفَت خصائص جديدة مؤخرًا، كإمكانية عمل Pull Request من خلال Visual Studio Code.

كما توجد عدد من الإضافات التي توفر تكامل بين GitHub وVisual Studio Code من خلال عرض المشكلات التي يرسلها المستخدمون داخل البرنامج لسهولة التعامل معها.

واجب اليوم الرابع:

من خلال مصادر البحث المختلفة، وما تعلمته، قم بما يلي:

اليوم الخامس: نظام Windows Subsystem for Linux:

الأهداف:

بنهاية هذا اليوم التدريبي، سيكون المتدرب -بإذن الله- قادرًا على أن:

مقدمة عن نظام Linux:

بدأ تطوير نظام Linux كمشروع جامعي في 1991, بغية إنشاء نظام مفتوح المصدر ومجاني للجميع. في عام 1992، تم اعتماد ترخيص GNU General Public License v2 كرخصة أساسية لنواة نظام Linux.

بعد ذلك، استمر نظام Linux في التطور والنمو، بفضل المجتمع الكبير من المطورين الذين يساهمون في إضافة الميزات إلى النظام.

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

ولأن أكثر من 67% من مواقع الويب تعمل على نظام Linux أو أحد توزيعاته، أصبح من المهم معرفة هذا النظام وطريقة عمله.

ولا أسعى في هذه الحقيبة إلى التعريف بكافة جوانب نظام Linux, بل أسعى إلى توفير طريق لبداية تعلمه، معتمدًا على المهارات المكتسبة خلال الأيام الماضية.

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

أهمية نظام WSL لمطوري الويب:

المادة العلمية:

سعيًا من Microsoft لشد انتباه مطوري الويب، قامت بإطلاق نظام Windows Subsystem for Linux (WSL) في عام 2016، وهو نظام Linux مصغر، يتم استعماله جنبًا إلى جنب مع نظام Windows لتنفيذ عمليات التطوير.

وبفضل الجهود التي بذلتها Microsoft, أصبح نظام WSL اليوم قادرًا على تشغيل برامج Linux بسرعة وكفاءة، والتكامل مع برامج Windows الأساسية. ليس هذا فحسب، بل أصبح نظام Windows أيضًا قادرًا على تشغيل برامج Linux المختلفة، اعتمادًا على مكونات النظام التي طورتها Microsoft.

ويعد نظام Linux مهمًّا لمطوري الويب، إذ يمتلك برامج وميزات تساعدهم على تطوير نظم قواعد البيانات واختبارها، وإنشاء أنظمة وهمية لعزل البرامج على الويب وتسهيل توزيعها، وذلك اعتمادًا على برامج مثل Docker.

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

أشهر توزيعات نظام Linux واستخداماتها:

المادة العلمية:

بفضل مرونة نظام Linux خرجت العديد من التوزيعات له إلى العالم، ولا تختلف هذه التوزيعات عن بعضها كثيرًا إلا في البرامج المرفقة بالنظام، ولعلي أذكر بعضًا منها هنا:

نظام Ubuntu:

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

نظام Linux Mint:

يمتاز نظام Linux Mint بواجهة سطح مكتب بسيطة تستهدف المستخدمين الذين ينتقلون إلى Linux من نظام Windows, وهو نظام سهل الاستخدام وحل مميز للمبتدئين.

نظام Kali Linux:

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

كيفية تثبيت نظام Ubuntu باستخدام WSL:

المادة العلمية:

للبدء باستخدام نظام Ubuntu, تحتاج إلى نظام Windows 10 الإصدار 2004, ولتثبيت النظام قم بما يلي:

  1. قم بفتح PowerShell كمسؤول، وكتابة الأمر التالي:

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

بعد ذلك، قم بكتابة الأمر التالي:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

ومن ثم قم بإعادة تشغيل الكمبيوتر.

  1. قم بتنزيل حزمة تحديث WSL2 Kernel وتثبيتها بشكل طبيعي.
  2. لاعتماد نظام WSL 2 كنظام افتراضي، قم بفتح موجه الأوامر Command Prompt كمسؤول، وكتابة الأمر التالي:

wsl --set-default-version 2

  1. قم بتنزيل نظام Ubuntu من خلال متجر Microsoft
  2. قم بتشغيل Ubuntu من شاشة المتجر أو من قائمة البدء. سيقوم النظام بالإعداد ومن ثم بسؤالك عن اسم مستخدم وكلمة مرور لنظام Ubuntu، قم بإدخالها.

ليس من الضروري أن تكون كلمة المرور مشابهة لكلمة مرور Windows.

  1. يمكنك الآن استخدام نظام Ubuntu من خلال برنامج Windows Terminal أو موجه الأوامر، أو من خلال الضغط على أيقونة Ubuntu من قائمة البدء.

هيكلة مجلدات وملفات نظام Linux:

المادة العلمية:

لنظام Linux العديد من المجلدات، ومنها:

إدارة الملفات والمجلدات والصلاحيات في نظام Linux:

المادة العلمية:

تتم إدارة الملفات والمجلدات كما أشير إليه في قسم التعامل مع سطر الأوامر. أما عن الصلاحيات، فيختلف نظام Linux عن نظام Windows بمرونته من حيث الصلاحيات.

المستخدم Root:

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

مجموعة sudo:

تمكن مجموعة sudo المستخدم من تنفيذ أوامر إدارة النظام المخولة للمستخدم root, ولكنها لا تعطي المستخدم الصلاحية الكاملة، وهي ما ينصح باستخدامه عند إدارة النظام؛ منعًا لأي أخطاء أو اختراقات.

إدارة البرامج والتحديثات في نظام Linux:

المادة العلمية:

يتميز نظام Ubuntu بوجود نظام لإدارة البرامج وتحديثها وتثبيتها وإزالتها.

لتحديث المصادر التي يستعملها نظام ubuntu لجلب التحديثات، استخدم الأمر:

sudo apt update

لتثبيت البرامج الجديدة، استعمل الأمر:

sudo apt install app-name

لإزالة البرامج المثبتة، استعمل الأمر:

sudo apt remove app-name

لتحديث البرامج المثبتة، استعمل الأمر:

sudo apt upgrade

التكامل بين نظامَي Windows و Linux:

المادة العلمية:

يسمح نظام WSL بالتكامل بين البرامج بين نظامي Windows وLinux. ويمكن تشغيل برامج Windows من خلال موجه أوامر Linux بكتابة أسماءها بكل بساطة.

فعلى سبيل المثال: يمكن تشغيل متصفح ملفات Windows وتصفح ملفات Linux في المجلد الحالي من خلال الأمر:

explorer.exe .

كما يمكن تشغيل برامج نظام Linux في المجلد الحالي على Windows من خلال سطر أوامر Windows, من خلال كتابة الأمر:

wsl.exe command

حيث يكون command هو الأمر الذي تريد من نظام Linux تنفيذه.

ربط نظام Git على WSL بإعدادات Git على Windows:

لضبط إعدادات تسجيل الدخول إلى GitHub على WSL لتكون نفس إعدادات نظام Windows استخدم الأمر التالي:

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/libexec/git-core/git-credential-manager.exe"

نظام Linux و Visual Studio Code:

المادة العلمية:

يمكن استخدام برنامج Visual Studio Code للتعديل على الملفات الموجودة في نظام WSL, وذلك من خلال فتح المجلد المرغوب في محرر Visual Studio Code من خلال الأمر: code متبوعًا باسم المجلد، أو علامة النقطة .” لفتح المجلد الحالي.

سيتعرف Visual Studio Code على نظام Linux تلقائيًّا، وسيقوم باكتشاف كافة البرامج والملفات المطلوبة للعمل، مما يوفر تكاملاً رائعًا بين البرنامجين.

خطة عمل المطور الناجح:

المادة العلمية:

يستغل المطور الناجح كافة الأدوات المتاحة لتسريع عمله وإنتاجيته.

ومن خلال الأدوات التي تم استعراضها خلال هذه الدورة، يمكننا تطوير خطة عمل ناجحة، اعتمادًا على سطر الأوامر، وبرنامج Visual Studio Code, ومنصة Git ونظام WSL.

فقد أصبح التطوير أسهل من أي وقت مضى، بفضل التكامل بين هذه الأدوات، والميزات التي توفرها للمطورين مجانًا.

المصادر والمراجع:

مواقع تساعدك في خطواتك الأولى:

مواقع إلكترونية

قنوات Youtube


رخصة المشاع الابداعي
هذا المُصنَّف مرخص بموجب رخصة المشاع الإبداعي نَسب المُصنَّف - غير تجاري - الترخيص بالمثل 4.0 دولي.