روز نهم: version control، گیت Git و گیت هاب GitHub
موقع کد زدن و نوشتن برنامه ، ممکن است با فایلهای زیادی کار کنید، تغییرات زیادی در هریک از این فایلها ایجاد کنید.
آیا شده تا حالا، اونقدر تغییرات در برنامه و فایلها ایجاد کنید که سردرگم شده باشید؟ آیا آرزو کردید تا حالا دکمه Undo در اختیار داشته باشید و تمام تغییرات را به چند مرحله قبل برگردانید؟
یکی از مشکلات برنامهنویسی این است که به دلیل تغییرات زیادی که در کد اعمال میکنیم، ممکن است خطاهای جدیدی ایجاد شوند. فرض کنید کد برنامه را در چند فابل تغییر داده اید، به امید اینکه یک قابلیت و عملکرد جدید را به برنامه اضافه کنید. اما الان برنامه یه خطای جدید میدهد و اصلاً نمیدانید منشا خطا کجاست و مربوط به کدام تغییرات است.
در چنین شرایطی آرزو میکنید، ای کاش میشد تمام تغییرات را به مرحله امن قبلی برگرداند.
اما برای یک برنامه نویس سنتی چنین امکانی وجود ندارد. تنها راه حل، اعمال تغییرات محتاطانه است
، طوری که زیاد از وضعیت امن قبلی فاصله نگیریم. مثل آدم چشم بسته ای که با احتیاط و با عصا را میرود. جرات ریسک کردن را ندارید.
اما امروزه میتوان بدون ترس از بروز خطا، هر سعی و خطایی کرد و هر تغییراتی را بدون ترس از خراب شدن برنامه اعمال کرد. میترسید برنامه خراب شود؟ خوب دکمه Undo را فشار میدهید!
(دارم دکمه Undo را به عنوان استعاره استفاده میکنم.)
منظور از دکمه Undo همان مفهوم Version Control است. یعنی اینکه به طریقی بتوانیم ورژنهای مختلف برنامه را کنترل کنیم و امکان بازگشت به مراحل قبلی را داشته باشیم(و خیلی امکانات دیگر).
معروف ترین پروتکل برای اینکار Git است که یک ابزار خط فرمان یا شل است. البته برنامههای گرافیکی یا GUI های مختلفی نیز برای آن وجود دارد.
گیت یک سیستم کنترل ورژن توزیعشده است. یعنی به کمک آن افراد مختلف از جاهای مختلف دنیا میتوانند همزمان روی یک پروژه کار کنند، بدون اینکه نگران باشند مشکلی پیش بیاید. برای اینکار یک واسط گرافیکی مبتنی بر وب وجود دارد به نام GitHub که یکی از ارزشمندترین سایتهای وب محسوب میشود . به گفته پروفسور Srinivasan استاد کامیپوتر دانشگاه استنفورد، GitHub یکی از مهمترین پیشرفتهای 5سال اخیر اینترنت بوده است.
امروزه همانطور اگر یک دختر نوجوان اکاونت فیسبوک یا وایبر نداشته باشد، دوستانش نگاه عاقل اندر سفی تحویلش میدهند!، اگر یک برنامه نویس حرفهای اکاونت گیتهاب نداشته باشد، سنگینی چنین نگاهی رو تجربه خواهد کرد. درس بعضی از شرکتهای معتبر دنیا، به هنگام استخدام رزومهشان را نگاه نمیکنند. بلکه اکاونت گیتهاب شان را بررسی میکنند که بدانند این برنامه نویس چند مرده حلاج است.
به عنوان مثال،
آرش منطقی یکی از برنامهنویسهای خوب کشورمان است. ایشان در صفحه اول سایتش لینک توییتر، ایمیل و گیتهاباش را قرار داده است.
پاداش طراحان و برنامهنویسانی که با ابزارهای جدید آشنایی دارند، علاوه بر اعتبار اجتماعی و فنی، راحتی و سرعت در کدنویسی و توسعه است.
اما شما دوست عزیز که داری این کلمات رو میخونی، قصد دارید Git و GitHub را یاد بگیری؟ اگر جوابت مثبت هست، بگو تا در مور نحوه یادگرفتنش صحبت کنیم.