برنامهنویس،علاقمندحوزههوشمصنوعیوهزارانچیزدیگه
آموزش گیت (قسمت صفر: سورس کنترل یا ورژن کنترل چیست؟)
سلام و درود به همه دوستان
آهای با تو هستم
بله با خودتم!!!
اره اره خود خودت منظورمه
تویی که ادعات میشه به قول خارجیا computer engineer هستی یا به قول داخلی ها سی دی رایت کنی با شمام!
تا حالا ۲ تا پوزیشن شغلی تو جابینجا، ایران تلنت یا سایت های مشابه دیدی که ادعات میشه کار برای مهندسین کامپیوتر کمه و این رشته اشباع شده؟؟؟
اصلا دیدی چه مهارت هایی ازت میخوان؟
بله یکیش مسلط بودن به git هستش که اگه اتفاق قریب الوقوعی نیوفته تا انتها ادامهش میدیم و سعی میکنم به زبون خودمونی یاد بدم بهتون.
سوال اولی که پیش میاد و باید جزو اطلاعات زیرساختی یک مهندس کامپیوتر باشه اینکه سورس کنترل یا ورژن کنترل چیه؟
خوب همون جور که بزرگترین دارایی یک نقاش نقاشی هایش هست، بزرگترین دارای یک مهندس کامپیوتر هم کد های نوشته شده اش هستند.
بیاید با چند تا سناریو کوچیک شروع کنیم:
سناریو شماره ۱: فک کنید یک سری فانکشن دارید که یه سری مقادیر خاص و با دیتا تایپ های خاص براتون return میکنه، به هر دلیل تصمیم میگیرید تغییرش بدید( حالا چه یه تغییر خیلی کوچیک یا کلا تغییر ساختار) مهم اینکه تغییرش دادین; فردا دوباره میشینید پای کد هاتون و با خودتون میگید این چه کاری بود من کردم و میخواید برگردید حالت قبلی
مشکل شماره ۱: من چه تغییراتی دادم؟؟؟
مشکل شماره ۲: کد های قبلی چی بودن اصلا؟؟؟
سناریو شماره ۲: با همکارا نشستین پای یک پروژه، هر شخص یا تیم مسئولیت یک کاری رو داره عده تیم فرانت، عده ای تیم بک و... و حالا زمان اون رسیده که …
مشکل شماره ۱: چجور قیمه ها رو بریزم تو ماست ها؟؟؟
مشکل شماره ۲: اگه باگی تو محصول بود خِر کیو بگیریم بگیم این کد برای کیه؟؟؟
اینجاس که واجبه یه خاطره ریز رو بگم تقریبا اولین فرصت شغلی بود که به واسطه امیر حسین به دست اورده بودم(پیشنهاد میکنم حتما پست هاشو بخونید حرف های دل خیلی از دانشجو هارو زده) و تنها تخصصی که داشتم طراحی صفحات وب بود و اصلا با اصول و دانش های پایه آشنا نبودم و کد هایی که مینوشتم پر از آزمون و خطا بود و مسلما پر از خراب کاری، برای اینکه خراب هامو برگردونم حالت قبلی ام امیر حسین طفلی برام کد هارو ایمیل میکرد چون نه خودش و نه من مسلط به git نبودیم :)))))
اینجاس که سورس کنترل یا ورژن کنترل ها سر در میارن و مشکلات مارو مثل سوپر من حل میکنن و این قابلیت رو به ما میده تغییرات به وجود اومده رو با صطلاح track کنیم به این شکل که بفهمیم چه تغییری رو چه کسی؟ چه زمانی؟ و برای چی داده، عین یه ماشین زمان برگردیم به عقب و تغییرات خودمونو ببنیم یا اصلا انتقالشون بدیم به زمان حال
یا مثلا تو سناریو ۲ منو همکارم نشستیم پای فرانت یک صفحه html و جفتمون تغییرات لازم رو میدیم سوالی که اینجا پیش میاد تغییرات کی اعمال بشه؟ شاید اصلا لازم باشه تغییرات جفتمون اعمال بشه اون موقع چیکار کنیم؟
جواب همش استفاده از سورس کنترل هاست :)
اگه موافق به ادامه این آموزش هستید خوشحال میشم با لایک و کامنت های سازنده تون منو تو این راه همراهی کنید. اگه حس میکنی این مطلب برای دوستان مفیده براشون بفرست که تعداد بازدید بیشترین امید رو به من میده :)
قربااااان شما خدافظ
مطلبی دیگر از این انتشارات
راهنمای عملی گذاشتن فیل در یخچال (ساخت یک توزیع لینوکس، برای علاقمندان)
مطلبی دیگر از این انتشارات
پایتونستان-مینی پروژه یک برنامه GUI-قسمت یکم
مطلبی دیگر از این انتشارات
Django way s2, Database Mocking ep1