منطق ایجنت‌ها › M3 — ابزار در عمل
۳.۲ پایدار تدریسی ~۲۵ دقیقه

چطور پروژه و فایل‌ها را می‌بیند

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

در یک نگاه

۳.۲.۱

پوشه‌ی کار چیست

در فصل ۰.۸ دیدی که terminal همیشه داخل یک پوشه ایستاده. برای ایجنت همان پوشه، پوشه‌ی کار است — و مرزِ دیدش.

سه نتیجه‌ی مستقیم که خیلی چیزها را روشن می‌کند:

پس «کجا ایستاده‌ام؟» اولین سؤال هر session است — و با pwd جوابش را می‌گیری.

کلِ کامپیوتر تو پوشه‌ی کار — این را می‌بیند فایل‌های اینجا زیرپوشه‌ها فایل قانون هرچه بدهی و همه‌شان را وقتی لازم شود می‌خواند، نه یک‌جا بیرونش — نمی‌بیند دسکتاپ پوشه‌ی دیگر ایمیل تو مرورگرت مرزِ کادر، هم دیدش را محدود می‌کند و هم محافظتت است. پس «کجا ایستاده‌ام؟» اولین سؤال هر session است.
پوشه‌ی کار و مرز دید. هر چیزی بیرون کادر، برای ایجنت وجود ندارد.
۳.۲.۲

چه فایل‌هایی را می‌خواند و کِی

یک تصور غلط رایج: «پوشه را باز کرده، پس همه‌ی فایل‌ها را خوانده.» نه.

ایجنت معمولاً اسم فایل‌ها را می‌بیند ولی محتوایشان را فقط وقتی می‌خواند که لازم شود. و این عمدی و درست است — به دلیلی که در فصل ۱.۳ فهمیدی: خواندن هر فایل، context را بزرگ‌تر و شلوغ‌تر می‌کند.

پس رفتار عادی این است: فهرست پوشه را می‌گیرد ← از اسم‌ها حدس می‌زند کدام‌ها مربوط‌اند ← همان‌ها را باز می‌کند.

و این یک نتیجه‌ی عملیِ مهم دارد: اسم فایل‌هایت مهم است. فایلی که اسمش سند نهایی(۲).txt است، شانس کمتری دارد که درست انتخاب شود تا فایلی که اسمش قرارداد-شرکت-الف.txt است. این همان چیزی است که در درس ۶.۲ به‌عنوان «نام‌گذاری، تصمیم طراحی است» برمی‌گردد.

و یک استثنا: فایل قانون — آن را در شروع هر session خودش می‌خواند، بدون اینکه بگویی (فصل ۱.۴).

۳.۲.۳

مسیر فایل: چطور دقیق آدرس بدهی

وقتی می‌خواهی فایل مشخصی را ببیند، دقیق آدرس بده. دو شکل آدرس:

سه تله‌ی رایج در کار فارسی:

۳.۲.۴

چه چیزی را نمی‌بیند (و چرا مهم است)

این مهم‌ترین بخش این فصل است، چون بیشتر سوءتفاهم‌ها از اینجا می‌آید.

نمی‌بیند:

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

و یک حالت خاصِ ظریف: فایلی که تو باز کرده‌ای و ذخیره نکرده‌ای. ایجنت نسخه‌ی روی دیسک را می‌خواند، نه آنچه روی صفحه‌ی تو باز است. اگر تغییری داده‌ای و ذخیره نکرده‌ای، او نسخه‌ی قدیمی را می‌بیند.

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

تمرین (فکری)

برای یک کار، فهرست کن ایجنت به چه فایل‌هایی نیاز دارد. همان کاری که در فصل ۲.۴ برایش spec نوشتی.

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

ستون سوم مهم‌ترین است — آن‌ها همان چیزهایی هستند که اگر حواست نباشد، کار نیمه‌کاره می‌ماند و علتش را نمی‌فهمی.

پاسخنامه — یک نمونه‌ی خوب را ببین

لازم دارد: فایل سفارش‌های این هفته · فایل نمونه‌ی گزارش هفته‌ی قبل (برای قالب).

لازم ندارد ولی در پوشه است: فایل‌های یازده هفته‌ی قبل · چند تصویر که اشتباهی آنجا کپی شده‌اند. «این‌ها فقط انتخاب را سخت‌تر می‌کنند — بردمشان به یک زیرپوشه‌ی آرشیو.»

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

تصمیم: «شیت را به CSV گرفتم و داخل پوشه کپی کردم. قاعده‌ی ذهنی را در فایل قانون نوشتم، چون در هر هفته لازمش دارم.»

چرا این جواب خوب است: ستون سوم هم یک فایل دارد هم یک دانسته‌ی نانوشته. دومی همان چیزی است که آدم‌ها فراموش می‌کنند که ایجنت نمی‌داندش.

ذخیره شد