گیت هاب چیست ؟
- DOTWEB
گیت هاب چیست ؟
اگر بگویم بهشت برنامهنویسها، دروغ نگفتهام. صحبت از پلتفرمی است که استفاده از آن کمک بسیار زیادی به توسعهدهندگان کرده و کار انها را در بسیاری از مواقع راحت کرده است. بهنوعی بزرگترین میزبان کدها در فضای شلوغ اینترنت!
همانطور که گفتیم، دسترسی به Git از طریق خط فرمان ممکن میشود و شاید استفاده از آن برای همه آسان نباشد؛ اما Github یک ساختار ابری مبتنی بر Git است که بهره بردن از این VC را برای عموم راحتتر کرده.
رابط کاربری این سایت بهقدری خوب است که حتی تازهکارها هم میتوانند بهراحتی از آن استفاده کنند. البته دسترسی مستقیم به Git کمی مهارت و تخصص لازم دارد ولی استفاده از سایت کار بسیار ساده ایست و افراد مبتدی هم میتوانند از آن استفاده کنند.
ماهیت و هدف نهایی این پلتفرم، پیشرفت امور و بهتر شدن خروجیها است. چگونه؟ خواهیم گفت.
برنامهنویسها میتوانند کدهایی که نوشتهاند را داخل پروفایلشان در github قرار دهند. این کدها در معرض دید عموم قرار دارند و هرکس که بخواهد میتواند در آنها تغییرات ایجاد کند. در واقع نوعی همفکری از جنس مشارکت درست میشود که در نهایت منجر به بهبود خروجی نهایی و رفع ایرادات میشود و برنامه نویسان از سراسر دنیا میتوانند باهم ارتباط داشته باشند و بتوانند باهم همفکری کنند و تجربیاتشان را در اختیار هم بگذارند.
همچنین توسعهدهندگان میتوانند کدهای برنامههای موجود در این سایت را ببینند و بهعنوان Best Practice و در جهت کسب دانش از آنها استفاده کنند. حتی میتوانند برای بهبود آنها اقداماتی را انجام دهند و به این ترتیب، برند شخصیشان را تقویت کنند. جالب است بدانید که افراد بسیاری از گیت هاب استفاده میکنند، عددی نزدیک به ۹۰ درصد از کل توسعهدهندگان این یعنی از واجبات یادگیری در دنیای برنامه نویسی.
از گیت هاب بیشتر بدانید...
گیتهاب یک شبکهی اجتماعی نیز محسوب میشود. بنابراین امکاناتی همچون Follow کردن کاربران، قابلیت نظر دادن و لایک را فراهم کرده است.
در سال ۲۰۱۷ گیتهاب با داشتن تقریباً ۲۰ میلیون کاربر و ۵۷ میلیون مخزن، به عنوان بزرگترین میزبان کد منبع، در جهان شناخته شد.
در سال ۲۰۱۹ گیتهاب با ارسال ایمیلی به کاربران ایرانی از محدود شدن دسترسی آنها به گیتهاب خبر داد. اما با ساخت اکانت با آی پی غیر ایرانی نیز میتوان همچنان از خدمات آن استفاده کرد.
گیتهاب با داشتن قابلیتهای متعدد، برای مدیریت پروژه، مدیریت تیم، تقسیم کار و اشتراک گذاری نتایج، ابزار مناسبی محسوب میشود که برنامه نویسان باید بتوانند با این ابزار کار کنند.
گیت هاب چه ویژگیهایی دارد؟
در کنار خصوصیاتی که در بخش قبلی مختصراً به آنها پرداختیم، گیت هاب ویژگیهای متنوع دیگری هم دارد. ویژگیهایی که بیشتر آنها مربوط به Git هستند و برخی از آنها هم مختص گیت هاب! ویژگیهایی که این VC را از دیگر رقبایش متمایز میکند.
Repository
وقتی پروژهای (بخوانید برنامهای) طراحی میشود، تمام کدهای مربوط به آن در یک Repository یا Repo قرار میگیرند. از همان اول کار که شالوده اصلی کار شکل میگیرد تا تمام تغییرات و آپدیتها در Repo هر برنامه قابل مشاهده هستند.
همچنین Repo مربوط به هر پروژه، یک URL منحصربهفرد دارد که دسترسی به آن را ممکن میکند .
Forking a Repo
همانطور که احتمالاً میدانید، Forking معنای انشعاب یا چندشاخه شدن را میدهد. انشعاب Repo؟! خب این چه مفهومی دارد؟
فرض کنید در گیت هاب پروژهای را میبینید که کلی از آن خوشتان میآید؛ اما ناگهان احساس میکنید که میتوانید تغییراتی را در قسمتی از کدهای آن اعمال کنید! این قابلیت در چنین حالتی کاربرد دارد.
با کمک Forking a Repo، میتوانید در یک Repository جداگانه، تغییرات مدنظرتان را روی برنامهای که انتخاب کردهاید اعمال کنید.
حتی وقتی در Repository اصلی تغییری ایجاد شود، بهطور خودکار (البته با تکه کدی که از قبل اضافه کردید) تغییرات لازم در Repo جدید حاصل از Fork هم ایجاد خواهد شد.
در واقع این قابلیت، ابزاری است که توسعه برنامههای قدیمی را ممکن میکند. حتی اگر بگویم پیشرفت در دنیای برنامهنویسی، تا حد زیادی میتواند مدیون این قابلیت باشد، بیراه نگفتهام و این اتفاق به صورت جد قابل مشاهده است.
اگر نگاهی به گذشته بشر داشته باشید هم این موضوع را متوجه خواهید شد. هر دستاوردی، مقدمه و پلهای شد برای رسیدن به دستاوردهای بزرگتر و مهمتر.
یک نکته بسیار جالب اینکه: وردپرس حاصل یک Forking a Repo است!
Pull Request
بعد از اینکه یک برنامه یا مجموعهای از کدها را اصلاح و یک Repo جدید برای آن تعریف کردید، شاید بخواهید سازندگان برنامه اصلی را هم مطلع کنید. این امر هم به شناختهشدن خودتان و برنامهتان کمک میکند و هم ممکن است آنها را متقاعد کند تا شما را هم به تیمشان بیفزایند و اصلا شاید برنامه شما را جایگزین برنامه شان کردند.
قابلیت Pull Request برای چنین شرایطی است. بعد از اینکه یک برنامه را Fork کردید، سراغ آن بروید تا گیت هاب یک رسانه تعاملی کارآمد بین شما و سازندگان اصلی ایجاد کند. آنها از خلق برنامه جدید در Repo جداگانه مطلع میشوند و در صورت نیاز میتوانند سوالاتشان را هم با شما مطرح کنند.
البته فراموش نکنید که تصمیمگیری نهایی هم با آنها است؛ یعنی لزوماً قرار نیست چون برنامه آنها را تغییر دادهاید، بتوانید نظر مثبتشان را هم جلب کنید و گاهی ممکن است آن ها از برنامه شما هیچگونه استقبالی نکنند.
Social Networking
یکی از مهمترین آوردههای گیت هاب برای جامعه برنامهنویسها، تشکیل یک شبکه اجتماعی از متخصصهای این حوزه است. اعدادی که بالاتر گفتم را به یاد دارید؟ آنها نشاندهنده عظمت این شبکه هستند.
تمام کدها میتوانند بهصورت عمومی نمایش داده شوند و مورد بحث قرار بگیرند. کاربلدها با تازهکارها تبادل نظر میکنند و هر دو طرف بیشتر یاد میگیرند. واقعاً چه چیزی بهتر از این؟!
تا قبل از ارائه گیت هاب، ارتباط گرفتن با این افراد بهخودی خود یک معضل بود. مثلاً اگر به روشهای مختلف در برنامهای تغییری ایجاد میکردید و میخواستید سازندگان اصلی را مطلع کنید، موثرترین راه ارتباط ایمیل بود. مسلماً ایمیل حداقل در مقایسه به پلتفرم کنونی گیت هاب، کارایی بسیار پایینتری خواهد داشت و در بیشتر اوقات هم این ایمیل ها دیده نمیشد.
اما Git تنها VC موجود نیست و گیت هاب رقبایی هم دارد، البته که مزیت های گیت هاب را در بالاتر برای شما بیان کرده ایم.
کدام پلتفرمها رقیب گیت هاب هستند؟
اینکه توقع داشته باشیم در سال ۲۰۲۱، آن هم در زمینه تکنولوژی، کمپانی یا پلتفرمی بدون رقیب باشد، تصور بسیار باطل و بیهودهای است! گیت هاب هم از این قاعده مستثنی نیست.
در ادامه ۴ رقیب اصلی این سایت که سرزمین موعود برنامهنویسها است را معرفی خواهیم کرد. البته که تعداد VC ها بیشتر از این حرفها است:
1. Gitlab
2. Attlassian
3. Google
4. Amazon
اگر به سایت Comparably سر بزنید، مقایسه گیت هاب با رقبایش را مشاهده خواهید کرد. حتی در برخی از موارد، این رقبا نمرات بهتری نسبت به Github دریافت کردهاند. مثلاً این سایت برای سنجش عملکرد مدیرعامل هرکدام از این شرکتها، در بین کارکنانشان نظرسنجیای انجام داد.
در کل که یادگیری کار کردن با گیت هاب برای هر برنامه نویسی از واجبات است و اینکار را باید انجام دهد.
همچنین شما میتوانید از طریق صفحه تماس با ما و یا صفحه اینستاگرام با تیم ما در ارتباط باشید.