مستند Free Solo داستان 8 سال تلاش الکس هانولد، سنگنورد مشهور آمریکایی، برای صعود فریسولوی دیوارهی El Capitan است. این صخرهی عمودی 914متری تا به حال صعودهای امن زیادی به خود ندیده است، چه برسد به صعود فریسولو! فریسولو به صعود بدون طناب، قلاب و سایر تجهیزات و تنها با تکیه بر قدرت بدنی و مهارتهای فرد گفته میشود. به این معنی که اولین اشتباه، آخرین اشتباه زندگیِ فرد صعودکننده خواهد بود. بدون شک صعود فریسولوی چنین مسیری به معجزهی قرن در سنگنوردی شباهت دارد. هانولد برای انجام این صعود شگفتانگیز خود را متعهد میداند که هر بار فقط یک حرکت به جلو انجام دهد.
الکس هانولد برای آمادهشدن برای صعود فریسولو از El Capitan، بارها و بارها با استفاده از طناب و تجهیزات ایمنی از این صخره بالا رفته است. او در تمام صعودهای تمرینی، از طناب و قلابهای مختلف استفاده میکند. با این کار یک پرش مهلک و خطرناک را به شکلی نسبتاً امن انجام میدهد و اگر هم اشتباه کند، به کمک طنابها به همان جایی برمیگردد که آنها را بسته و بعد، دوباره امتحان میکند. درست مثل savepointها در بازیهای کامپیوتری.
از همهی اینها بگذریم، این مقاله درمورد استفاده از گیت است! وقتی تغییرات زیادی در کدهای خود اعمال میکنید درست مثل الکس هانولد، میتوانید کدهای خود را در یک محل ثابت کرده و نقاط نجات متعددی را ایجاد کنید تا دچار فاجعه نشوید و بهراحتی به نسخههای قبلی کدتان که کار میکرد، برگردید.
میکروکامیتها
الکس هانولد در صعود خطرناکش سعی میکرد تا با گامهای خیلی کوتاه از یک نقطه به نقطهی دیگر برود. این تکنیک درمورد ویرایش کدها نیز صدق میکند. برای ویرایش کدها باید گامهای کوچک و آگاهانهای بردارید و جلو بروید و هربار که کد بدون هیچ خطایی کامپایل شد، تغییرات را در گیت کامیت کنید. علاوه بر این، باید به شکلی حرکت کنید که فاصله بین دو کامیت تا حد ممکن کم باشد. Tim Ottinger به این کار میکروکامیت میگوید.
با هر روشی که تصمیم میگیرید کدهایتان را ویرایش کنید، مسیری را انتخاب کنید که گامهای شما از همه کوتاهتر باشند. بیشتر افراد اهمیت این موضوع را نمیدانند. شروع به برنامهنویسی میکنند و ساعتها بعد در گیت کامیت میکنند تا یک نسخه ذخیره شود. وقتی میتوانید حرکتهای کوچک و کنترلشده داشته باشید، چرا باید بلند بپرید؟
وقتی یک تغییر بزرگ را برای پیادهسازی یک ویژگی یا رفع یک باگ به گیت ارسال میکنید، فرایند قدمبهقدم که از طریق آن به راهحل نهایی رسیدهاید را کاملاً پنهان میکنید. مجموعهای از میکروکامیتها که بهخوبی نوشته شده باشند میتوانند مرحله به مرحله داستان و فرایند تغییرات کد شما را به کسانی که در آینده قرار است آن را بررسی کنند ارائه دهند.
از طرفی برای بیان یک داستان منسجم از طریق کامیتها، باید آنها را بهدرستی سازماندهی کنید. هر کامیت باید یک گام مستقل بهسمت یک ویژگی جدید یا رفع یک باگ باشد. این یک تمرین بسیار خوب برای تقسیم یک راهحل پیچیده به دنبالهای تعریفشده از تغییرات کد است که منجر به شیوههای توسعهی منظمتر میشود.
کدنویسی قدمبهقدم با گیت
گیت قابلیتها و پتانسیلهایی بیشتر از آنچه تصور میشود دارد. برنامهنویسان معمولاً برای هماهنگی کارشان با دیگران از گیت استفاده میکنند. بنابراین، فقط وقتی از گیت استفاده میکنند که به آن نیاز پیدا کرده باشند و این معمولاً به دستورات git pull و git push محدود میشود.
با این حال یک استراتژی خوب برای کدنویسی این است که وقتی کدهایتان را ویرایش میکنید، خود را ملزم بدانید که در بازههای زمانی کوتاه یک کامیت در گیت داشته باشید. با این کار همیشه میتوانید به آخرین نقطهی ذخیرهشده برگردید و با یک قطعهکد تمیز شروع کنید. با گیت میتوانید سعی و خطا کنید، میتوانید یک مسیر را امتحان کنید و اگر به بنبست رسیدید، برگردید و مسیر دیگری را امتحان کنید. کافی است تغییرات خود را قدمبهقدم کامیت کنید، به یک نقطه ذخیره قبلی برگردید و مسیر دیگری را امتحان کنید.
با میکروکامیتها بهجای یک حرکت نامطمئن و با برنامهریزی نامناسب و بدون هدف، میتوانیم با گامهای کوچک پیش برویم و در عین حال، یک تعداد نقطه برگشت هم داشته باشیم. درست مانند مثل الکس هانولد که با تجهیزاتی مثل طناب و قلاب از کوه بالا میرفت.
آموزش گیت (Git) در کوئرا کالج
اگر با سیستم کنترل نسخهی گیت و نحوهی استفاده از آن در روند کارتان آشنایی ندارید، اکنون زمان گنجاندن آموزش گیت در برنامههایتان است. پس اگر به یادگیری Git علاقهمند هستید و تمایل دارید با یکی از محبوبترین و پرکاربردترین سیستمهای کنترل نسخه آشنا شوید، دورهی آموزش گیت کوئراکالج گزینهی خوبی برای شما خواهد بود تا روش استفاده از این سیستم کنترل نسخه محبوب را به شکل کاربردی یاد بگیرید.