نرم افزار منبع باز به ستون فقرات فناوری مدرن تبدیل شده است و همه چیز را از استارتاپ های کوچک گرفته تا شرکت های غول پیکر نیرو می دهد.

مشارکت در پروژه‌های منبع باز تنها راهی برای بازگشت به جامعه نیست – همچنین فرصتی عالی برای ارتقای مهارت‌های خود، ساختن نمونه کارها و ارتباط با توسعه‌دهندگان همفکر از سراسر جهان است.

اما برای بسیاری از مبتدیان، چشم انداز مشارکت در منبع باز می تواند دلهره آور باشد. موانع رایج عبارتند از ندانستن از کجا شروع کنید، ترس از اشتباه کردن، یا احساس ترس از مبانی کد پیچیده.

هدف این راهنما شکستن این موانع و ارائه یک مسیر روشن برای اولین مشارکت منبع باز است.

آنچه را پوشش خواهیم داد:

  1. درک باز Source

  2. چگونه برای اولین مشارکت خود آماده شوید

  3. چگونه باز مناسب را پیدا کنیم Source پروژه

  4. دستورالعمل های پروژه را درک کنید

  5. چگونه اولین مشارکت خود را انجام دهید

  6. بهترین روش ها برای باز Source مشارکت

  7. ابزارهای عملی برای شروع

  8. ادامه باز شما Source سفر

  9. نتیجه گیری

درک باز Source

متن باز چیست؟

منبع باز به نرم افزاری اطلاق می شود که کد منبع آن برای مشاهده، تغییر و توزیع آزادانه در دسترس همه است. این رویکرد مشترک برای توسعه نرم افزار منجر به ایجاد بسیاری از ابزارها و پلتفرم های قدرتمندی شده است که ما روزانه از آنها استفاده می کنیم، مانند لینوکس، وردپرس و تنسورفلو.

مزایای مشارکت در پروژه های منبع باز

مشارکت در پروژه های منبع باز مزایای زیادی برای توسعه دهندگان دارد. این یک راه عالی برای بهبود مهارت های شما است و شما را در معرض سبک های متنوع کدنویسی و بهترین شیوه ها قرار می دهد. مشارکت‌های شما همچنین می‌تواند به شما کمک کند تا یک نمونه کار قوی بسازید، و مدرک ملموسی از توانایی‌های شما به کارفرمایان بالقوه ارائه دهد.

جامعه منبع باز فرصت های شبکه ای ارزشمندی را ارائه می دهد که شما را با توسعه دهندگان در سراسر جهان مرتبط می کند و به طور بالقوه منجر به فرصت های شغلی یا مربیگری می شود. با مشارکت، به جامعه نیز کمک می کنید و به بهبود ابزارهایی که شما و دیگران به آنها اعتماد دارید کمک می کنید روی روزانه

در نهایت، بینش هایی در مورد مدیریت پروژه به دست می آورید و یاد می گیرید که چگونه پروژه های نرم افزاری در مقیاس بزرگ هماهنگ و نگهداری می شوند. این مزایا در مجموع مهارت های فنی، آینده شغلی و درک اکوسیستم توسعه نرم افزار شما را افزایش می دهد.

چگونه برای اولین مشارکت خود آماده شوید

محیط توسعه خود را تنظیم کنید

  1. یک ویرایشگر کد یا IDE (محیط توسعه یکپارچه) را انتخاب کنید که با آن راحت هستید. گزینه های محبوب عبارتند از Visual Studio Code، متن Sublime یا IDE های JetBrains.

  2. Git را نصب کنید روی کامپیوتر شما Git پرکاربردترین سیستم کنترل نسخه در پروژه های متن باز است.

آموزش اصول کنترل نسخه (Git):

درک Git برای کمک به منبع باز بسیار مهم است. در اینجا چند مفهوم کلیدی برای شروع وجود دارد:

  • Repository: پوشه پروژه حاوی تمام فایل ها و تاریخچه نسخه.

  • Clone: ​​ایجاد یک کپی محلی از یک مخزن روی ماشین شما

  • شعبه: یک خط توسعه جداگانه برای ویژگی های جدید یا رفع اشکال.

  • تعهد: ذخیره تغییرات در مخزن محلی شما.

  • Push: آپلود تغییرات محلی شما در مخزن راه دور.

  • درخواست کشش: پیشنهاد تغییرات شما برای ادغام در پروژه اصلی.

برای تمرین این مفاهیم وقت بگذارید روی یک پروژه شخصی قبل از فرو رفتن در مشارکت های منبع باز.

چگونه باز مناسب را پیدا کنیم Source پروژه

مهارت ها و علایق خود را شناسایی کنید:

با فهرست کردن مهارت های خود (زبان های برنامه نویسی، چارچوب ها، طراحی، مستندات) و زمینه های مورد علاقه خود شروع کنید. این به شما کمک می‌کند پروژه‌هایی را پیدا کنید که با توانایی‌ها و علایق شما همخوانی دارند.

کاوش منابع برای یافتن پروژه ها:

در حالی که بعداً در این راهنما چند ابزار خاص را معرفی خواهیم کرد، در اینجا چند پلتفرم کلی وجود دارد که می‌توانید برای یافتن پروژه‌های منبع باز آنها را بررسی کنید:

  1. بخش “کاوش” GitHub

  2. CodeTriage

  3. برای گرفتن

  4. فقط تایمرهای اول

  5. مخزن نرم افزار مورد علاقه شما (به دنبال برچسب های “اولین شماره خوب” باشید)

به یاد داشته باشید، نکته کلیدی این است که پروژه ای را پیدا کنید که واقعاً به آن علاقه دارید، زیرا این کار شما را در طول مشارکت با انگیزه نگه می دارد. process.

دستورالعمل های پروژه را درک کنید

قبل از شروع مشارکت در یک پروژه منبع باز، درک دستورالعمل های پروژه بسیار مهم است. این دستورالعمل‌ها معمولاً در فایل‌هایی مانند CONTRIBUTING.md، CODE_OF_CONDUCT.md یا در فایل README پروژه یافت می‌شوند.

دستورالعمل های مشارکت را بخوانید

فایل CONTRIBUTING.md نقشه راه شما برای تبدیل شدن به یک مشارکت کننده ارزشمند است. معمولاً حاوی اطلاعات است روی:

  • روش راه اندازی پروژه به صورت محلی

  • این process برای ارسال مشارکت

  • استانداردهای کدنویسی و راهنمای سبک

  • روش گزارش اشکال یا پیشنهاد ویژگی های جدید

  • کانال های ارتباطی پروژه

پیشنهاد می‌کنیم بخوانید:  سه راه برای ایجاد رشته های چند خطی در پایتون

به عنوان مثال، کتابخانه منبع باز محبوب React یک فایل جامع CONTRIBUTING.md دارد. شامل بخش هایی است روی:

  • کد رفتار

  • گردش کار توسعه

  • اشکالات

  • پیشنهاد تغییر

  • ارسال درخواست کشش

با ساختار پروژه و استانداردهای کدنویسی آشنا شوید

برای درک معماری پروژه و سازماندهی فایل وقت بگذارید. این ممکن است شامل موارد زیر باشد:

  1. کاوش در ساختار دایرکتوری

  2. خواندن اسناد روی معماری پروژه

  3. بررسی کدهای موجود برای درک سبک کدنویسی

بسیاری از پروژه ها از ابزارهای خودکار برای اجرای استانداردهای کدنویسی استفاده می کنند. به عنوان مثال، یک پروژه جاوا اسکریپت ممکن است از ESLint برای لینتینگ کد استفاده کند. ممکن است یک فایل پیکربندی مانند .eslintrc.js را در پروژه ببینید root:

module.exports = {
  "extends": "airbnb",
  "rules": {
    "react/jsx-filename-extension": [1, { "extensions": [".js", ".jsx"] }],
    "no-console": "off"
  }
};

این پیکربندی به شما می گوید که پروژه از راهنمای سبک جاوا اسکریپت Airbnb با چند تغییر سفارشی پیروی می کند.

چگونه اولین مشارکت خود را انجام دهید

بیایید از طریق راه برویم process اولین مشارکت خود را با استفاده از یک مثال واقعی انجام دهید.

یک مسئله را انتخاب کنید

فرض کنید مشکلی را در مخزن یک ویرایشگر محبوب علامت گذاری پیدا کرده اید. این مشکل با عنوان “نسخه اول خوب” شناخته می شود و اشکالی را توصیف می کند که در آن پیش نمایش زمانی که کاربر یک بک تیک (`) تایپ می کند، به روز نمی شود.

با نگهبانان پروژه ارتباط برقرار کنید

قبل از شروع کار شما نظر بدهید روی موضوع:

Hi there! I'm new to open source and would love to work روی this issue. 
Is it still available? I'm thinking of approaching it by modifying the 
event listener for the editor component. Does that sound like a good approach?

یک نگهدار پاسخ می دهد، به شما خوش آمد می گوید و رویکرد شما را تأیید می کند.

یک چنگال و کار ایجاد کنید روی راه حل شما

  1. مخزن را به حساب GitHub خود تقسیم کنید.

  2. چنگال خود را به صورت محلی کلون کنید:

     git clone https://github.com/yourusername/markdown-editor.git
    
  3. یک شعبه جدید ایجاد کنید:

     git checkout -b fix-backtick-preview
    
  4. تغییرات خود را انجام دهید به عنوان مثال، ممکن است جزء ویرایشگر را تغییر دهید:

     class Editor extends React.Component {
       handleChange = (event) => {
         const { value } = event.target;
         this.props.onChange(value);
    
         // Force update preview روی backtick
         if (value.endsWith('`')) {
           this.props.forceUpdatePreview();
         }
       }
    
       render() {
         // ... rest of the component
       }
     }
    
  5. تغییرات خود را متعهد کنید:

     git add .
     git commit -m "Fix: Update preview روی backtick input"
    
  6. به چنگال خود فشار دهید:

     git push origin fix-backtick-preview
    

یک درخواست کشش ارسال کنید

  1. به مخزن اصلی بروید روی GitHub.

  2. روی “درخواست کشش جدید” کلیک کنید و شعبه خود را انتخاب کنید.

  3. الگوی درخواست کشش را پر کنید:

     ## Description
     This PR fixes the issue where the preview doesn't update when a backtick is typed.
    
     ## Changes
     - Modified the Editor component to force an update when a backtick is entered
    
     ## Testing
     1. Open the editor
     2. Type some text followed by a backtick
     3. Verify that the preview updates immediately
    
     Fixes #123
    
  4. درخواست کشش را ارسال کنید و منتظر بازخورد باشید.

بهترین روش ها برای باز Source مشارکت

پیام های Clear Commit را بنویسید

پیام های تعهد خوب برای نگهداری پروژه بسیار مهم هستند. این دستورالعمل ها را دنبال کنید:

  • از حالت امری در خط موضوع استفاده کنید

  • خط موضوع را به 50 کاراکتر محدود کنید

  • خط موضوع را با حروف بزرگ بنویسید

  • موضوع را با نقطه تمام نکنید

  • سوژه را با یک خط خالی از بدن جدا کنید

  • بدنه را با 72 کاراکتر بپیچید

  • از بدن برای توضیح چیستی و چرایی در مقابل چگونه استفاده کنید

نمونه ای از یک پیام commit خوب:

Fix race condition in connection pool

- Add mutex lock when accessing shared resource
- Implement retry mechanism for failed connections

This change prevents multiple threads from accessing the connection
pool simultaneously, which was causing occasional crashes in high
load scenarios. The retry mechanism improves resilience to temporary
network issues.

تغییرات خود را مستند کنید

پاک کردن اسناد به اندازه کد خوب مهم است. در اینجا برخی از بهترین شیوه ها وجود دارد:

  1. فایل های مرتبط README را به روز کنید

  2. برای منطق پیچیده نظرات درون خطی اضافه کنید

  3. اسناد API را برای ویژگی های جدید به روز کنید یا ایجاد کنید

به عنوان مثال، اگر یک تابع جدید به کتابخانه پایتون اضافه کرده باشید:

def validate_email(email: str) -> bool:
    """
    Validate an email address.

    Args:
        email (str): The email address to validate.

    Returns:
        bool: True if the email is valid, False otherwise.

    Example:
        >>> validate_email("user@example.com")
        True
        >>> validate_email("invalid-email")
        False
    """
    # Implementation details...

به بازخورد پاسخ دهید

وقتی بازخورد دریافت می کنید روی درخواست کشش شما:

  1. سریع و مودبانه پاسخ دهید

  2. همه نظرات را آدرس دهی کنید، حتی اگر صرفاً برای تأیید آنها باشد

  3. اگر با پیشنهادی مخالف هستید، استدلال خود را محترمانه توضیح دهید

  4. تغییرات درخواستی را انجام دهید و درخواست کشش خود را به روز کنید

به عنوان مثال:

بازبین: “آیا می توانید یک تست واحد برای تابع validate_email جدید اضافه کنید؟”

شما: “مطمئنا، این یک پیشنهاد عالی است. من یک مجموعه آزمایشی جامع برای فرمت های مختلف ایمیل و موارد لبه اضافه خواهم کرد. به زودی تغییرات را اعمال خواهم کرد.”

ابزارهای عملی برای شروع

Git Begin: دروازه شما برای باز کردن Source مشارکت ها

برای کمک به شما در برداشتن اولین گام‌های خود در منبع باز، Git Begin را توسعه داده‌ام، یک برنامه وب رایگان که برای یافتن اولین فرصت مشارکت شما تا حد امکان آسان طراحی شده است.

Git Begin چگونه کار می کند:

  1. از Git Begin دیدن کنید

  2. زبان برنامه نویسی یا فریمورک دلخواه خود را از گزینه های ارائه شده انتخاب کنید.

  3. در میان پروژه‌های متن‌باز مختلف فهرستی از مسائل را که با عنوان «نسخه اول خوب» یا «مبتدی پسند» برچسب‌گذاری شده‌اند، مرور کنید.

  4. هر شماره با اطلاعات کلیدی مانند نام پروژه، شرح موضوع و مهارت های مورد نیاز ارائه می شود.

  5. وقتی مشکلی را پیدا کردید که به آن علاقه دارید، کلیک کنید روی به موضوع اصلی هدایت شود روی GitHub.

پیشنهاد می‌کنیم بخوانید:  یک React Application در فهرست فعلی خود ایجاد کنید

Git Begin موارد فوق العاده را از بین می برد process جستجو از طریق مخازن بی شمار این فرصت‌های هدفمند و مبتدی را به شما ارائه می‌دهد که با مهارت‌ها و علایق شما مطابقت دارد و شروع سفر منبع باز شما را آسان‌تر از همیشه می‌کند.

یک پروژه واقعی برای اولین بار

علاوه بر Git Begin، خوشحالم که پروژه رایگان و متن باز دیگری را به شما معرفی کنم که به طور خاص برای مبتدیان طراحی شده است تا مهارت های خود را تمرین کنند و مشارکت های معناداری داشته باشند:

  • پروژه: Job Scraper

  • توضیحات: ابزاری برای حذف لیست مشاغل از چندین صفحه شغلی شرکت

  • مخزن: https://github.com/The-Enthusiast-404/career-craft-scrapper

درباره پروژه:

این پروژه Job Scraper جزء حیاتی یک پلتفرم بزرگتر و جاه طلبانه است که به توسعه آن کمک می کنم که در جستجوی کار انقلابی ایجاد خواهد کرد. process. هدف این پلتفرم رایگان این است که منبعی جامع برای جویندگان کار باشد و طیف وسیعی از ابزارها را برای ساده‌سازی جستجوی کار و درخواست آنها ارائه دهد. process.

Job Scraper خود فهرست‌های شغلی را از صفحات شغلی مختلف شرکت جمع‌آوری می‌کند و پایه و اساس پلتفرم ما را تشکیل می‌دهد. اما این تازه شروع است. چشم انداز ما به ایجاد یک اکوسیستم کامل است که شامل موارد زیر است:

  1. یک سیستم درخواست کار متمرکز که به کاربران امکان می دهد برای چندین موقعیت در شرکت های مختلف به طور یکپارچه درخواست دهند.

  2. ابزارهای ایجاد رزومه مبتنی بر هوش مصنوعی برای کمک به جویندگان کار برای ایجاد رزومه های قانع کننده متناسب با نقش های هدفشان.

  3. یک مصاحبه گر ساختگی هوش مصنوعی مبتکر، قادر به شبیه سازی مصاحبه ها برای نقش های خاص و پشته های فنی، به داوطلبان کمک می کند تا به طور موثرتری آماده شوند.

با مشارکت در پروژه Job Scraper، نه تنها تجربه ارزشمندی در زمینه خراش دادن وب و پردازش داده ها به دست می آورید، بلکه در ساختن پلتفرمی که تفاوت واقعی در حرفه افراد ایجاد می کند نیز نقشی ایفا می کنید.

این یک فرصت برای کار است روی پروژه‌ای با کاربردهای عملی فوری و در عین حال به چشم‌اندازی بزرگ‌تر برای دسترسی بیشتر و کارآمدتر کردن کاریابی برای همه کمک می‌کند.

به عنوان یک مشارکت کننده منبع باز، این شانس را خواهید داشت که کار کنید روی جنبه های مختلف این سیستم، از بهبود الگوریتم های خراش دادن تا کمک بالقوه به توسعه برخی از ویژگی های مبتنی بر هوش مصنوعی در آینده.

این پروژه ترکیبی منحصر به فرد از تجربه کدنویسی عملی و رضایت از کار را ارائه می دهد روی ابزاری که مستقیماً بر جویندگان کار در سراسر جهان تأثیر می گذارد.

فرصت های مشارکت فعلی:

تعدادی از “مسائل اول خوب” موجود است که همه متمرکز هستند روی وظایف خراش دادن وب اینها ممکن است شامل موارد زیر باشد:

  • افزودن پشتیبانی برای حذف لیست مشاغل از حرفه یک شرکت جدید page

  • بهبود پاکسازی داده ها process برای یک سایت شغلی خاص

  • افزایش انعطاف پذیری اسکراپر در برابر تغییرات در ساختار یک وب سایت

هر موضوع به دقت مستند شده است تا به تازه واردان کمک کند تا کار و زمینه آن را در پروژه بزرگتر درک کنند.

مراحل اول در باز Source

پروژه Job Scraper برای بسیاری از توسعه دهندگانی که اولین مشارکت های منبع باز خود را انجام می دهند، به یک نقطه ورود خوشایند تبدیل شده است. تا به امروز، ما چندین مشارکت‌کننده داشته‌ایم که مخزن را برای اولین درخواست کشش خود انتخاب کرده‌اند، اکثر آنها دانش‌آموزانی هستند که مشتاق کسب تجربه در دنیای واقعی هستند.

این تازه واردان به منبع باز با موفقیت قابلیت های جدید خراش را اضافه کرده اند، الگوریتم های موجود را بهبود بخشیده اند و قابلیت های پردازش داده ما را افزایش داده اند.

دستاوردهای آنها نشان می دهد که مخزن ما یک نقطه شروع ایده آل برای هر کسی است که به دنبال شروع سفر منبع باز خود است، به ویژه دانش آموزانی که می خواهند مهارت های خود را در یک پروژه عملی به کار ببرند.

روش مشارکت:

  1. از مخزن دیدن کنید: https://github.com/The-Enthusiast-404/career-craft-scrapper

  2. فایل‌های README و CONTRIBUTING.md را بخوانید تا دستورالعمل‌های پروژه و مشارکت را درک کنید

  3. شماره‌های باز با برچسب “اولین شماره خوب” را مرور کنید

  4. نظر دهید روی مسئله ای که دوست دارید کار کنید روی، و من شما را در مراحل بعدی راهنمایی خواهم کرد

به یاد داشته باشید، هم Git Begin و هم پروژه Job Scraper منابع کاملا رایگان هستند. ما متعهد به ارائه یک محیط حمایتی برای توسعه دهندگان هستیم تا در سفر منبع باز خود بیاموزند و رشد کنند.

ادامه باز شما Source سفر

ساختمان روی اولین مشارکت شما:

پس از ارائه اولین مشارکت خود، کمی زمان بگذارید تا فکر کنید روی آنچه شما آموخته اید در نظر بگیرید:

  • چه جنبه هایی از process آیا شما چالش برانگیز یافتید؟

  • چه مهارت یا دانش جدیدی کسب کردید؟

  • چگونه می توانید این تجربه را در مشارکت های آینده به کار ببرید؟

از این بینش ها برای راهنمایی گام های بعدی خود در متن باز استفاده کنید.

یک مشارکت کننده معمولی شوید:

برای تبدیل شدن به یک مشارکت کننده منظم:

  1. اعلان های پروژه را تنظیم کنید تا از مسائل و بحث های جدید مطلع شوید.

  2. در بحث های پروژه، ارائه بینش یا پرسیدن سوال شرکت کنید.

  3. بگیرید روی هرچه بیشتر با پروژه آشنا می شوید، مسائل پیچیده تر می شوند.

  4. با پاسخ دادن به سؤالات یا بررسی درخواست های جذب به سایر تازه واردان کمک کنید.

  5. مشارکت در آزمون‌های مستندسازی یا نوشتن را در نظر بگیرید، که اغلب نادیده گرفته می‌شوند اما جنبه‌های حیاتی پروژه‌های منبع باز هستند.

کاوش پروژه های جدید:

همانطور که اعتماد به نفس پیدا می کنید، در کشف پروژه های جدید تردید نکنید:

  1. به دنبال پروژه هایی در حوزه های مختلف باشید تا مهارت های خود را گسترش دهید.

  2. به ابزارها یا کتابخانه هایی که در کار روزانه خود استفاده می کنید کمک کنید.

  3. پروژه ها را با مقیاس های مختلف کاوش کنید – از ابزارهای کوچک تا چارچوب های بزرگ.

به یاد داشته باشید، هر پروژه فرصت ها و چالش های یادگیری منحصر به فردی را ارائه می دهد.

نتیجه گیری

مشارکت در منبع باز می تواند یک تجربه فوق العاده ارزشمند باشد. این به شما امکان می دهد مهارت های کدنویسی خود را بهبود ببخشید، با توسعه دهندگان در سراسر جهان همکاری کنید و تأثیر معناداری داشته باشید. روی پروژه های مورد استفاده میلیون ها نفر

یادت باشه همه از یه جایی شروع میکنن از اشتباه کردن نترسید – آنها بخشی از یادگیری هستند process. جامعه منبع باز عموماً از تازه واردان استقبال و حمایت می کند.

امیدواریم این راهنما، همراه با ابزارهایی مانند Git Begin و پروژه Job Scraper ما، به شما کمک کند اولین قدم‌های خود را در دنیای مشارکت منبع باز بردارید. کد نویسی مبارک، و ما مشتاقانه منتظر مشارکت شما هستیم!

منابع:

  • Git Begin: https://gitbegin.theenthusiast.dev

  • پروژه Job Scraper: https://github.com/The-Enthusiast-404/career-craft-scrapper

  • Git Documentation: https://git-scm.com/doc

  • راهنمای GitHub: https://guides.github.com/

  • باز کنید Source راهنما: https://opensource.guide/