المصدر المفتوح للمطورين – دليل المبتدئين لمساعدتك على بدء المساهمة 2022
المحتويات:

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

تتكون المشاريع مفتوحة المصدر من الأشخاص والعناصر التالية:
Project Maintainer(s)
المشرفون هم شخص واحد أو أكثر يبدأون المشروع مفتوح المصدر ويديرونه ويتخذون القرارات ويتبادلون الأفكار ويعملون بشكل وثيق مع المساهمين والمستخدمين ومنصات التسويق:
سيكون للقائمين على صيانة المشروع حقوق وصول وامتيازات إضافية للتحكم في جوانب مختلفة من المشروع.
Project Contributor(s)
عندما يبدأ المشرف (المشرفون) مشروعا مفتوح المصدر ، فإنهم هم المساهمون الأوائل. مع نمو المشروع ومعرفة المزيد من الناس عنه ، تزداد الرغبة في المساهمة فيه.
مع نموه، يحصل المشروع على المزيد من المساهمين. يمكن لأي شخص الاطلاع على رمز المشروع وتعديله وطلب المراجعة والحصول على التغييرات في المشروع.
Source Code and Documentation Repository
يحتفظ المشرف بالتعليمات البرمجية المصدر للمشروع في مستودع شفرة مصدر مركزي (على سبيل المثال، GitHub.: يساعد جميع المساهمين على الوصول المطلوب إلى الرمز للمساهمة.
Project License
يجب أن يحدد كل مشروع مفتوح المصدر ترخيص توزيع لتوضيحه لمستخدميه/مستهلكيه.:
توجد أنواع مختلفة من التراخيص، ويمكن للمشرف واحد بناءً على ما يناسب المشروع. بعض تراخيص التوزيع الواسعة الانتشار هي MIT وApache License 2.0 وGNU General Public License (GPL) 3.0 وما إلى ذلك.
Contributing Guide
يقوم مشرف مشروع برمجيات المصدر المفتوح بإنشاء دليل مساهم لمساعدة المساهمين على فهم عملية طلب السحب والمعايير والنطاق وما إلى ذلك.:
Code of Conduct Guide
يناقش دليل مدونة قواعد السلوك مختلف المبادئ التوجيهية والتعاون وتوقعات السلوك من المساهمين وكيفية تصعيد المشكلات وحلها.:
Project Culture
تتطور ثقافة المشروع مع مجتمع المشروع.: في حين أن المشرفين لديهم مصلحة كبيرة في ذلك ، فإن المساهمين مسؤولون بنفس القدر عن الحفاظ على ثقافة التعلم والمشاركة والنمو الصحية.
Community
مع نمو المشروع ، يبني المجتمع حوله.: تشتهر أدوات مثل مناقشات GitHub و Discord بتنظيم التفاعلات المجتمعية.
Distribution
يجب أن يكون للمشروع مفتوح المصدر طريقة للوصول إلى مستخدميه النهائيين والمستهلكين.: يجب أن يكون هناك نموذج توزيع يساعد على ترجمة الشفرة إلى المنتج النهائي للتسليم.
Users/Customers
المستخدمون أو العملاء هم مستهلكو المنتج الذي يبنيه فريق المصدر المفتوح باستخدام شفرة المصدر.:
الآن دعونا نلقي نظرة على الصورة أدناه. هنا نرى مجتمع مشاريع مفتوح المصدر بما في ذلك المشرفين والمساهمين.
شفرة المصدر “source code” موجودة في المستودع المركزي. المساهمون (مصطلح سنتعلمه قريبا) ويساهمون. بمجرد انتهاء المساهمة، يحافظ المشروع عليها مع الفرع الرئيسي. forkupstream repositorymerges
لا تقلق إذا لم تكن على دراية بمصطلحات مثل fork, branch, merge,أو ما إلى ذلك. سنتعلمها قريبا في هذه المقالة. فقط استمر في القراءة.
الآن دعونا نفهم كيف يتم تسليم البرنامج مفتوح المصدر للمستخدمين / العملاء.
توضح الصورة أدناه أحد الاحتمالات العديدة على مستوى عال. يجب أن يكون للمشروع مفتوح المصدر آلية بناء وحزمة نشر باستخدام عملية التكامل المستمر والنشر المستمر (CI / CD).
كلما كانت هناك تغييرات في التعليمات البرمجية في، يبدأ سير عمل CI / CD تلقائيا. يقوم ببناء شفرة المصدر وحزمها ونشرها لتكون في متناول المستخدمين النهائيين والعملاء المستهدفين. main branch
يرجى ملاحظة: CI / CD أو أي آليات نشر أخرى ليست جزءا راسخا من تطوير البرمجيات مفتوحة المصدر. ومع ذلك، فإن معرفة ذلك يساعد على فهم نموذج عمل برمجيات المصدر المفتوح من البداية إلى النهاية.
ماذا تعني المساهمة مفتوحة المصدر؟

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

تأتي مساهمات المصدر المفتوح مع عدد من الفوائد للمطورين. بعض الفوائد الرئيسية هي:
- احصل على فرصة لرفع مستوى مهارة نفسك.
- اجعل البرنامج / التطبيق أفضل باستخدام التعليمات البرمجية والوثائق.
- قابل أشخاصا متشابهين في التفكير، وقم ببناء الشبكات والمجتمعات.
- فهم دورات تطوير التطبيقات وصيانتها.
- تعلم من ملاحظات طلب “ Request feedback.”.
- تعرف على كيفية إدارة التعليمات البرمجية كمصدر مفتوح.
أساطير مفتوحة المصدر

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

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

لقد أضفت الأميال إذا كنت على دراية بالفعل بمفهوم Git واستخدامه الأساسي. Git موجود في كل مكان في عالم المصدر المفتوح ، ولا يمكنك تجاهله.
تحتاج إلى معرفة هذه المواضيع على الأقل،
- ما هو Git، وكيف يعمل؟
- ما هو المستودع “repository“؟
- كيفية استنساخ مستودع repository“؟
- كيف يتم تنظيم / إلغاء مرحلة التغييرات؟
- كيف تقوم بتغييراتك؟
- كيف تكتب رسائل الالتزام بشكل أفضل؟
- كيفية حل تعارضات الدمج؟
- كيف تدفع تغييراتك إلى مستودع بعيد؟
- كيف تسحب التغييرات من المستودع البعيد؟
إذا كنت جديدا على Git، فإنني أوصي بهذا الفيديو لمساعدتك في تعلم مفاهيم Git وجميع الاستخدامات المذكورة أعلاه: إزالة الغموض عن Git للمبتدئين.
تعرف على GitHub

يوجد 128 مليون + مستودعات عامة على GitHub . جزء كبير من هذه المستودعات هي مشاريع مفتوحة المصدر. قد يكون المشروع مفتوح المصدر الذي تريد المساهمة فيه موجودًا أيضًا على GitHub. لذلك ، يجب أن تتعلم كيفية التعامل مع الأشياء على GitHub.
بصفتك مساهما في مشروع مفتوح المصدر، يجب أن تعرف:
- كيفية تقسيم مستودع ” fork a repository“؟
- كيف يمكنك العثور على عنوان URL لاستنساخ المستودع “clone the repository”
- كيفية إنشاء طلب سحب ” Pull Reques“؟
- كيفية مراجعة طلب السحب ” Pull Reques“؟
بصفتك مشرفا على المشروع، يجب أن تعرف،
- كيفية إنشاء مستودع “repository“؟
- كيفية إضافة معلومات الترخيص إلى المشروع؟
- كيفية إنشاء دليل المساهمة ودليل مدونة قواعد السلوك؟
- كيفية وضع معيار لإنشاء المشكلات وسحب الطلبات “pull requests“؟
- كيفية دمج طلبات السحب “pull requests“؟
تعلم كيفية تقسيم مستودع “ Fork a Repository”

Forking هو مفهوم حاسم آخر يجب فهمه Open Source. لن تسمح معظم المشاريع للمساهم بإنشاء فروع مباشرة على مستودع. بدلا من ذلك، قد يسير سير عمل المساهمة على النحو التالي: Open Source
- شوكة المستودع “Fork the repository”
- استنساخ المستودع المتشعب “Clone the forked repository”
- إجراء التغييرات.
- احصل على تغييرات من المنبع “UPSTREAM“.
- قم بإنشاء طلب سحب من الريبو المتشعب “forked repo ” إلى المستودع الأساسي.
في تجربتي في العمل مع العديد من المساهمين، يجد معظمهم مفهوم التشعب تحديا بعض الشيء.
يمكنك التحقق من هذا الفيديو التعليمي لمعرفة كيفية تقسيم مستودع GitHub. أيضا، ابحث عن مستودع GitHub هذا لممارسة التفرع. إنه للمبتدئين تماما اكتساب الثقة في تزوير مستودع.
تعلم كيفية حل تعارضات الدمج “Merge Conflicts”

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

التوثيق هو أحد الاحتياجات الأساسية لأي مشروع مفتوح المصدر. يشرح الملف المشروع وكيفية إعداده وتشغيله ونشره وما إلى ذلك. Readme.md
يناقش الملف كيفية المساهمة في المشروع. Contributing.md
يصف الملف ما يمكن توقعه من سلوك المساهم ومشاركته. بالطبع، يمكنك كتابة العديد من الملفات الأخرى بناء على احتياجات مشروعك. CODE_OF_CONDUCT.md.md
وتقف على التخفيض السعري. إنه بناء جملة يستخدم للتوثيق في GitHub. من الأفضل تعلم بناء الجملة الأساسي حتى تتمكن من المشاركة في الوثائق بسلاسة. md
أصقل مهاراتك الشخصية
Open Source هو حقل أخضر للعديد من المطورين للعمل والتعلم والبناء معا. بصفتك مساهما، قد لا تكون مهاراتك التقنية كافية للاستمتاع تماما بتجربة المصدر المفتوح.
دعونا نناقش بعض المهارات الشخصية التي يجب أن تكون لدى المطورين.
الصبر: هو مهارة لا بد منها للمطورين. مطلوب عندما تتعلم شيئا جديدا، وتصحيح مشكلة معقدة، والعمل مع الآخرين، والتفاوض مع شخص ما، والحصول على / إعطاء التعليقات. في بعض الأحيان، قد لا تتحرك الأمور بوتيرة تتوقعها، لذلك تحتاج إلى التحلي بالصبر وتقييم الموقف. Patience
الفضول: العقل يقطع شوطا طويلا. عند المساهمة في المصدر المفتوح، تكون الاحتمالات هائلة. يجب أن تكون فضوليا لمعرفة الأمور. لا ينطبق فقط على معرفة التحديات التقنية ولكن أيضا أثناء العمل مع الناس. curious
كن مستجيبا: في النظام البيئي مفتوح المصدر، قد لا تلتقي وتتحدث إلى أشخاص على أساس يومي ولكن يجب أن يستمر العمل. يجب أن تكون على الاستفسارات والمهام والطلبات وأي شيء تكون مسؤولا عنه. العديد من المبادرات العظيمة تتلاشى فقط بسبب عدم استجابة الناس. responsive
كن متواضعا: الوجود هو مفتاح النجاح. غالبا ما يفشل الشخص المطلع ولكن ليس المتواضع في العمل كفريق. humble
كيف تبدأ المساهمة في مشاريع مفتوحة المصدر

دعونا نرى الآن كيفية البدء في مساهمات المصدر المفتوح. توفر القائمة أدناه روابط وموارد لك للبدء في مساهمة مفتوحة المصدر على الفور.
GitHub استكشف
يعرض لك GitHub Explore المستودعات بناء على اهتماماتك. يمكنك تعيين الإشعارات للحصول على معلومات حول المشروع.
أيضا، يمكنك البحث في المستودعات حسب الموضوعات والاتجاهات. استخدم GitHub استكشف لمعرفة المشاريع الأكثر صلة بمهارتك وحاجتك وتطلعاتك. يمكنك العثور عليه هنا: https://github.com/explore/
كيفية المساهمة في المصدر المفتوح بواسطة freeCodeCamp

هذا المستودع من freeCodeCamp هو جوهرة مطلقة. يوفر لك العديد من الموارد والمؤشرات للبدء في استخدام المصدر المفتوح. يمكنك العثور عليه هنا: https://github.com/freeCodeCamp/how-to-contribute-to-open-source
النينجا المساهم “Contributor Ninja”
يساعدك موقع الويب هذا في قائمة بلغات البرمجة للاختيار من بينها – جافا سكريبت، HTML، Rust، Go ، وغيرها الكثير. يمكنك الحصول على بطاقات المستودعات للاختيار من بينها. إنه مكان بسيط للبدء. يمكنك العثور عليه هنا: https://contributor.ninja/
المساهمات الأولى “First Contributions”
هذه قائمة ضخمة من المشاريع مفتوحة المصدر للبحث عنها والتصفية منها. لديهم أيضا وثائق موجهة جيدا للبدء. يمكنك العثور عليه هنا: https://firstcontributions.github.io/
كودالفرز “CodeTriage”
CodeTriage هي قائمة ضخمة من المشاريع ذات القضايا المفتوحة. يظهر فصلا بين القضايا والمستندات للفرز. الموقع مفيد جدا. يمكنك العثور عليه هنا: https://www.codetriage.com/
متاح للجميع
هذه قائمة شاملة بالمشاريع مفتوحة المصدر للاختيار من بينها بناء على اهتمامك. يمكنك العثور عليه هنا: https://up-for-grabs.net/#/
الموقتون الأوائل فقط “First Timers Only”
إذا لم تكن قد ساهمت أبدا في مشروع مفتوح المصدر من قبل وكنت قد بدأت للتو، ففكر في قراءة هذه الصفحة.
قد ترى العديد من المصادر التي ناقشناها بالفعل ولكن الصفحة مليئة بالدوافع. يمكنك العثور عليه هنا: https://www.firsttimersonly.com/
مفتوح المصدر الجمعة “Open Source Friday
ماذا تفعل يوم الجمعة هذا، أو يوم الجمعة المقبل؟ ماذا عن استثمار بضع ساعات في المساهمة في البرنامج الذي تستخدمه وتحبه. يرجى التحقق من ذلك والتسجيل. يمكنك العثور عليه هنا: https://opensourcefriday.com/
مشرفو المشاريع مفتوحة المصدر

حتى الآن، رأينا جانب المساهمين في المصادر المفتوحة. ستكون هذه المقالة غير مكتملة إذا لم نتطرق إلى جانب مشرفي المشاريع مفتوحة المصدر أيضا.
بصفتك مشرفا على المشروع، يجب عليك اتباع معايير معينة حتى يتمكن الآخرون من معرفة مستودع مشروعك فيه.
- تقديم اسم ووصف واضحين للمشروع. يجب عليك أيضا إضافة الموضوعات ذات الصلة بمشروعك.
- أضف ملفا واضحا لشرح أهداف المشروع وكيفية استخدامه وكيفية إعداده وما إلى ذلك. إذا كانت التعليمات البرمجية المصدر هي قلب المستودع، فإن ملف README هو وجهه. Readme.md
- إنشاء ملف تعريف مجتمعي. فهو يساعد مشرفي المستودع مفتوح المصدر على مراجعة العمل وتعلم كيفية مساعدته على النمو.
- وضع مدونة لقواعد السلوك.
- إنشاء دليل مساهمة.
- اتخاذ قرار بشأن قوالب المشكلات.
- إنشاء قالب طلب سحب (PR).
- قم بتنشيط رعاة GitHub.
ما الذي يتبادر إلى ذهنك عند سماع المصطلح؟ في عالم البرمجة Open Source، المصدر المفتوح هو مصطلح عام للبرمجيات مفتوحة المصدر (OSS). تم بناء البرامج مفتوحة المصدر على شفرة المصدر المفتوحة للجميع لعرضها وتغييرها وتوسيعها وتوزيعها. Open Source
نقترح عليك أن تقرأ
1– مواقع التحديات البرمجية الأكثر شهرة 2022
2- ما هو ال Flexbox في CSS وليه بيتم استخدام ال 2022FLEX BOX
3- ما هو الفرق بين مطوري Full Stack و Backend و2022Front End
4- ما هو ال Position في Css وما هي انواعها ومتى يتم استخدامها وكيفيه حل مشاكلها ب Z-index
5- Java مقابل JavaScript: الفرق الرئيسي بين Java و 2022JavaScript
المصادر:
1- freecodecamp