منطق ایجنت‌ها › M5 — محافظت
۵.۱ پایدار تدریسی ~۳۰ دقیقه

محافظت از فایل‌های خودت

قبل از این فصل: فصل ۳.۳

در یک نگاه

۵.۱.۱

همیشه روی کپی

در فصل ۰.۹ زمین بازی ساختی و همین قاعده را گفتیم. حالا دلیلش را دقیق‌تر می‌دانی، چون M3 و M4 را خوانده‌ای:

این سه با هم یک نتیجه می‌دهند: احتمال اینکه چیزی غلط عوض شود، صفر نیست — و احتمال اینکه بی‌صدا باشد هم صفر نیست. پس کپی، بیمه‌ی ارزانی است.

و «کار جدی» فقط کار بزرگ نیست. هر بار که ایجنت قرار است چیزی را عوض کند — نه فقط بخواند — قاعده اعمال می‌شود.

۵.۱.۲

بک‌آپ قبل از هر کار جدی

کپی و بک‌آپ یکی نیستند، و تفاوتشان ارزش دانستن دارد:

پس کپی روی همان دیسک، بک‌آپ نیست. برای کارِ این دوره کافی است، ولی برای داده‌ی واقعی کارت نه.

سه سطح، به ترتیب هزینه:

  1. کپی در همان پوشه — ده ثانیه. برای هر کار روی فایل.
  2. کپی در جای دیگر (دیسک دیگر، فضای ابری) — برای داده‌ای که اگر برود دردناک است.
  3. نسخه‌بندی — که تاریخچه نگه می‌دارد، نه فقط یک نسخه. فصل بعدی.

و یک عادت که وقت زیادی نجات می‌دهد: اسم کپی را با تاریخ بگذار. فروش-۱۴۰۵-پشتیبان-۰۵۰۴ بهتر از فروش کپی است، چون سه هفته بعد می‌دانی کدام کدام است.

۵.۱.۳

undo واقعی چیست و چه چیزی undo نیست

این بخش مهم است چون تصور غلطش گران تمام می‌شود.

به‌خاطر بسپار Ctrl+Z مالِ برنامه‌ای است که در آن هستی، نه مالِ دیسک. اگر برنامه‌ی دیگری — از جمله ایجنت — فایلی را روی دیسک عوض کند، Ctrl+Z در ویرایشگر تو آن را برنمی‌گرداند. آن دو دنیای جدا هستند.

چه چیزی undo نیست:

چه چیزی undo هست: یک نسخه‌ی قبلی که روی دیسک وجود دارد. یعنی کپی، بک‌آپ، یا نسخه‌بندی. همین سه.

۵.۱.۴

سه کار برگشت‌ناپذیر

همه‌ی تغییرها یک‌جور نیستند. این سه از بقیه خطرناک‌ترند:

و همین است که در فصل ۳.۳.۶ گفتیم این سه هیچ‌وقت نباید خودکار تأیید شوند. حالا دلیلش را می‌دانی: پنجره‌ی اجازه برای این سه، تنها فرصتِ توقف است.

در مقابل، این‌ها کم‌خطرند: ساختن فایل تازه · خواندن · و نوشتن در پوشه‌ای که فقط خروجی می‌گیرد.

۵.۱.۵

سطل زباله دوست تو نیست

سه دلیل که نمی‌شود رویش حساب کرد:

پس مدل ذهنی درست: سطل زباله برای اشتباه‌های خودت با موس است، نه برای کارهایی که یک برنامه انجام می‌دهد.

نکته‌ی طلایی یک سؤال قبل از هر تأیید، که کل این فصل را خلاصه می‌کند: «اگر این کار غلط انجام شود، چطور برش می‌گردانم؟» اگر جواب روشنی نداشتی، همان‌جا بایست و اول یک نسخه بگیر. این ده ثانیه است و جایگزینش می‌تواند یک بعدازظهر باشد.
ضدالگو «فقط این یک بار روی فایل اصلی، چون کارِ کوچکی است.» تقریباً همه‌ی داستان‌های «فایلم را از دست دادم» با همین جمله شروع می‌شوند — و دقیقاً چون کار کوچک است، حواست کمتر جمع است و پنجره‌ی اجازه را سریع‌تر رد می‌کنی.

تمرین (فکری)

برای این سه کار بگو قبلش چه محافظتی لازم است — و برای هرکدام جواب بده: کدام‌یک از سه کار برگشت‌ناپذیر درگیر است؟ و اگر غلط انجام شود، چطور برش می‌گردانی؟

  1. «از پوشه‌ی قراردادها یک فهرست خلاصه بساز.»
  2. «در همه‌ی فایل‌های این پوشه، نام شرکت قدیم را با نام جدید عوض کن.»
  3. «فایل‌های تکراری این پوشه را پیدا کن و پاکشان کن.»
پاسخنامه — سه جواب

۱ — کم‌خطرترین. فقط می‌خواند و یک فایل تازه می‌سازد. هیچ‌یک از سه کار برگشت‌ناپذیر درگیر نیست. محافظت لازم: هیچ، جز اینکه مطمئن شوم فایل خروجی روی چیز موجودی نمی‌نویسد. برگرداندن: خروجی را پاک می‌کنم، تمام.

۲ — بازنویسی + تغییر گروهی. دو تا از سه تا، با هم. خطرناک‌ترینِ این سه است، هرچند بی‌خطرترین به نظر می‌رسد. محافظت: کپی کل پوشه، و اول بخواهم فهرست کند قرار است در کدام فایل‌ها چه چیزی عوض شود — قبل از اینکه چیزی عوض شود. برگرداندن: از همان کپی. سطل زباله هیچ کمکی نمی‌کند چون چیزی حذف نمی‌شود.

۳ — حذف. محافظت: کپی، و مهم‌تر — به‌جای پاک‌کردن، بگویم منتقل کند به یک پوشه‌ی «تکراری‌ها». آن‌وقت اگر تشخیصش غلط بود، فایل‌ها هستند. برگرداندن: از آن پوشه.

چرا این جواب خوب است: مورد ۲ را درست خطرناک‌ترین شناخته — و راه‌حل مورد ۳ (انتقال به‌جای حذف) یک کارِ برگشت‌ناپذیر را به یک کارِ برگشت‌پذیر تبدیل کرده، که بهترین شکل محافظت است.

ذخیره شد