منطق ایجنت‌ها › M9 — پروژه‌ی پایانی و ادامه
۹.۲ پایدار تدریسی ~۴۵ دقیقه

ساخت و خودارزیابی

قبل از این فصل: فصل ۹.۱ · فصل ۴.۵

در یک نگاه

۹.۲.۱

ساخت با استفاده از همه‌ی مسیر

spec داری. حالا بساز — و این بار هیچ قدمِ تازه‌ای یاد نمی‌گیری؛ فقط همه‌ی چیزهایی که بلدی را پشت سر هم می‌گذاری. مسیر همان است:

  1. زمین را امن کن. پوشه‌ی کار، نسخه‌ی پشتیبان، و یک ثبت اولیه (فصل ۵.۲.۴). ده ثانیه.
  2. اول طرح بخواه، بعد اجرا (فصل ۳.۱.۲). spec را بده و بگو «قبل از اینکه چیزی بسازی، بگو چطور می‌خواهی انجامش بدهی.»
  3. تکه‌تکه بساز و بین تکه‌ها نگاه کن (فصل ۲.۵.۲). نه یک درخواستِ بزرگ.
  4. راستی‌آزمایی کن — با همان روشی که در spec نوشتی، نه با نگاه‌کردن به خروجی (M4).
  5. مقصد را وصل کن (فصل ۸.۵) و یک بار واقعی اجرا کن.
  6. و فایل توضیح بنویس (فصل ۸.۸.۱)، همین حالا نه بعداً.

و اگر جایی گیر کردی: از خودِ ایجنت بپرس (فصل ۲.۸.۳)، یا session را ببند و تازه شروع کن (فصل ۱.۳.۵). این دو تا، هشتاد درصدِ گیرها را باز می‌کنند.

به‌خاطر بسپار اگر وسط کار احساس کردی داری چیز تازه‌ای یاد می‌گیری، احتمالاً پروژه‌ات بزرگ‌تر از حدِ لازم است. پروژه‌ی پایانی قرار است تثبیت کند، نه گسترش بدهد. آن چیزِ تازه را در بک‌لاگ بنویس برای اتوماسیون بعدی.

۹.۲.۲

چک‌لیست «تمام شد»

حالا خودت بسنج. این چک‌لیست کلِ دوره را در ده سؤال جمع می‌کند:

  1. سه شرطِ spec برقرارند؟ (هر سه، نه دو تا.)
  2. با یک ورودی واقعی — نه نمونه — اجرا شده؟
  3. خروجی را راستی‌آزمایی کردی، با روشی غیر از نگاه‌کردن؟
  4. یک ورودی عجیب امتحان شد و رفتارش معلوم است؟ (فصل ۸.۷.۱)
  5. خروجی به مقصد واقعی می‌رود؟ (نه به یک فایل آزمایشی.)
  6. اگر خراب شود، می‌فهمی؟ (فصل ۸.۷.۳)
  7. فایل توضیح دارد که فردا هم قابل فهم باشد؟
  8. داده‌ی حساسی جایی نمی‌رود که نباید؟ (فصل ۵.۳)
  9. کلیدی در جای غلط نیست؟ (فصل ۷.۵.۳)
  10. و می‌توانی توضیح بدهی چرا کار می‌کند؟

اگر بندهای ۱ تا ۷ تیک خوردند، پروژه‌ات تمام است. بندهای ۸ و ۹ شرطِ لازم‌اند نه امتیاز — بدون آن‌ها تمام نیست، هرچقدر هم خوب کار کند. و بند ۱۰ موضوع دو بخش بعد است.

۹.۲.۳

وقتی نیمه‌کاره کار می‌کند (و این هم موفقیت است)

احتمال زیادی هست که پروژه‌ات همه‌ی آنچه می‌خواستی را نکند. مثلاً:

به‌خاطر بسپار اتوماسیونی که هشتاد درصدِ کار را می‌کند، هشتاد درصدِ وقت را برمی‌گرداند. این شکستِ ناقص نیست؛ نتیجه‌ی کامل است. و آن بیست درصدِ باقی‌مانده معمولاً همان‌جایی است که قضاوت لازم دارد — یعنی همان‌جایی که M5 گفت باید دستِ تو بماند.

و اشتباهی که اینجا رایج است: دنبال صددرصد رفتن. آن بیست درصدِ آخر معمولاً به‌اندازه‌ی هشتاد درصد اول کار می‌برد — و اغلب ارزشش را ندارد. تصمیمِ درست این است: بنویس چه چیزی پوشش داده نمی‌شود (در همان فایل توضیح، بندِ «چه چیزی را نمی‌کند»)، و برو سراغ اتوماسیون بعدی.

و یک حالتِ دیگر که واقعاً موفقیت است و به نظر شکست می‌آید: فهمیدی که این کار ارزش اتوماسیون نداشت. اگر با معیارهای فصل ۲.۱.۱ سنجیدی و جواب «نه» شد، تو یک تصمیم درست گرفته‌ای و چند ساعت وقتِ خودت را نجات داده‌ای. این هم پروژه‌ی پایانیِ قابل قبولی است — به شرط اینکه بنویسی چرا.

۹.۲.۴

توضیح بده چرا کار می‌کند

و حالا آخرین آزمونِ این دوره، که مهم‌ترینش هم هست.

در پنج خط توضیح بده چرا پروژه‌ات کار می‌کند. نه اینکه چه می‌کند — چرا. یعنی:

و دلیلِ این آزمون، همان چیزی است که کلِ دوره رویش ساخته شده:

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

و اگر در نوشتنِ آن پنج خط جایی گیر کردی، همان‌جا نقطه‌ی ضعفِ پروژه است — نه ضعفِ توضیح دادنت. برگرد و همان تکه را بفهم.

نکته‌ی طلایی آن پنج خط را در بالای فایل توضیح بگذار. هم آزمونِ خودت را داده‌ای، هم بهترین بخشِ مستندات را نوشته‌ای — چون فایل توضیحی که چرا را می‌گوید، از فایلی که فقط دستورها را می‌گوید بی‌نهایت مفیدتر است (فصل ۸.۸.۱).

تمرین (ساختنی + توضیحی)

بساز، چک‌لیست را پر کن، و در پنج خط توضیح بده چرا کار می‌کند.

و بعد یک کار آخر که ارزشش را دارد: پروژه‌ات را با آن کارِ اولِ فصل ۰.۱۰ مقایسه کن. چه چیزی این بار متفاوت بود؟

پاسخنامه — پنج خطِ نمونه، و آن تفاوتی که باید دیده باشی

پنج خط برای «خلاصه‌ی هفتگی جلسات»:

  1. فقط فایل‌های همان هفته داده می‌شوند، نه کلِ پوشه — چون context بزرگ‌تر هم گران‌تر است و هم دقت را پایین می‌آورد (۱.۳ و ۲.۷).
  2. قضاوت درباره‌ی اینکه «کدام تصمیم مهم بود» دستِ من می‌ماند؛ ایجنت فقط تصمیم‌ها را فهرست می‌کند، اولویت‌بندی نمی‌کند (۵.۵).
  3. درستی را با شمارش می‌سنجم: تعداد بندهای خلاصه باید با تعداد فایل‌های آن هفته یکی باشد (۸.۲.۵).
  4. اگر خراب شود، اول شمارش فایل‌ها را نگاه می‌کنم — چون شایع‌ترین خرابی این است که فایلی خوانده نشده (۸.۷.۴).
  5. عمداً نساختم: پیگیریِ اینکه کارهای سپرده‌شده انجام شدند یا نه. آن یک سیستم است، نه یک خلاصه — و جای خودش را دارد (M6).

و تفاوتی که باید با فصل ۰.۱۰ دیده باشی: آن بار خروجی گرفتی و خوشحال شدی که کار کرد. این بار خروجی گرفتی و سنجیدی که درست است — و می‌دانی اگر نبود، از کجا می‌فهمیدی.

همین یک تفاوت، کلِ فاصله‌ی بین «با ایجنت کار کردن» و «به کاری که با ایجنت ساخته‌ای اعتماد کردن» است. و دومی چیزی است که می‌شود رویش کسب‌وکار گذاشت.

ذخیره شد