چرا به پوشهای نیاز داری که هیچچیزش مهم نیست
وقتی چیز تازهای یاد میگیری، طبیعی است که چند بار خرابش کنی. مشکل وقتی شروع میشود که آن «چند بار» روی فایلهای واقعی کارت باشد.
و اینجا یک نکته هست که در فصل ۰.۲ دیدی: قدرتِ ایجنت از این میآید که واقعاً به فایلها دسترسی دارد. همان چیزی که میتواند یک پوشه را برایت مرتب کند، میتواند همان پوشه را هم بههم بریزد. قدرت و ریسک از یک جا میآیند و نمیشود یکی را بدون دیگری داشت.
ولی مسئلهی اصلی حتی این نیست. مسئلهی اصلی ترس است. کسی که میترسد چیزی را خراب کند، محتاط امتحان میکند، کم امتحان میکند، و کندتر یاد میگیرد. زمین بازی این ترس را برمیدارد — و این مهمترین کاری است که میکند.
پس زمین بازی برای محافظت از فایلهایت است، بله. ولی بیشتر از آن، برای این است که راحت باشی و جسورانه امتحان کنی.
ساختنش
یک پوشه است. همین. ولی سه ویژگی باید داشته باشد:
- جدا از فایلهای واقعیات — نه داخل Documents کاریات، نه داخل پوشهی پروژهای که واقعاً استفاده میشود.
- اسمش واضح باشد — مثلاً
playgroundیازمین-بازی. جوری که شش ماه بعد هم با یک نگاه بدانی این پوشه قابلدورانداختن است. - هیچچیز یکتایی داخلش نباشد — یعنی هر فایلی که داخلش است، یا کپی است یا ساختگی. هیچ چیزی که اگر پاک شود از دست برود.
ساختنش با terminal (از فصل ۰.۸):
mkdir ~/playground و بعد cd ~/playground
آن ~ یعنی «پوشهی خانگی من» — پس این پوشه در ریشهی
حساب کاربریات ساخته میشود، دور از فایلهای پروژه. اگر با terminal راحت نیستی،
همانطور که همیشه پوشه میسازی بسازش؛ فرقی نمیکند.
حالا فایلهای نمونهی همراه دوره را داخلش کپی کن — پوشهی
نمونهها/. کپی، نه انتقال. اصلشان سرِ جایشان بماند
تا اگر خرابشان کردی دوباره برداری.
قاعدهی طلایی: هرگز روی نسخهی اصل امتحان نکن
بهخاطر بسپار قبل از هر کار جدی، یک کپی بگیر و روی کپی کار کن. این تنها قاعدهای است که در کل دوره هیچ استثنایی ندارد.
و منظور از «کار جدی» فقط کارهای بزرگ نیست. هر بار که ایجنت قرار است چیزی را عوض کند — نه فقط بخواند — قاعده اعمال میشود.
سه چیز که باید بدانی، چون آدمها همینجا اشتباه میکنند:
- سطل زباله همیشه نجاتت نمیدهد. بعضی تغییرها اصلاً از سطل زباله رد نمیشوند — بازنویسیِ محتوای یک فایل یکی از آنهاست. فایل همان فایل است، فقط داخلش عوض شده.
- Undo مرورگر و Undo فایلسیستم یکی نیستند. Ctrl+Z چیزی را که یک برنامهی دیگر روی دیسک نوشته برنمیگرداند.
- کپی روی همان دیسک، بکآپ نیست. برای یادگیری کافی است، ولی برای کار واقعی نه.
راههای جدیترِ برگشت — از جمله git که یک دکمهی بازگشت
واقعی است — در ماژول ۵ میآید. فعلاً همین کپیگرفتن کافی است.
تمرین (ساختنی)
زمین بازی خودت را بساز و فایلهای نمونه را داخلش کپی کن.
بعد یک کار عمدی بکن: یکی از فایلهای داخل زمین بازی را پاک کن. ببین چه حسی دارد وقتی میدانی مهم نیست. همان حس، چیزی است که قرار است در تمام دوره داشته باشی.
بعد دوباره از اصل کپیاش کن. همین رفتوبرگشت، کل ایدهی این فصل است.
پاسخنامه — از کجا بفهمی درست ساختی
یک آزمون ساده: اگر همین الان کل این پوشه پاک شود، چیزی از دست میدهی؟ اگر جوابت «نه» است، درست ساختی. اگر مکث کردی، یعنی چیزی داخلش هست که نباید باشد — همان را بیرون ببر.
و اگر فایلهای نمونه را منتقل کردهای بهجای کپی، الان اصلشان را نداری. دوباره از پوشهی همراه دوره برشان دار — همین اشتباهِ کوچک، دقیقاً همان چیزی است که این فصل دربارهاش است.