سه قسمت اول مهارتِ تککار بود: یک سوال میپرسیدی، یک جواب میگرفتی. این کار میکند — ولی هر بار از صفر. هفتهی بعد همان کار را داری و دوباره باید همان جملهها را از نو بنویسی، و جواب هم دقیقاً همان کیفیت را ندارد.
این قسمت دربارهٔ چیزی است که این را عوض میکند: یک بار خوب بنویس، صد بار استفاده کن. و مهمتر از آن، بدانی کجا نباید بگذاری ماشین تصمیم بگیرد.
اولین اشتباهی که تقریباً همه میکنند این است: ذوقزده میشوند و میخواهند همهچیز را خودکار کنند. بعد سه ساعت وقت میگذارند تا کاری را خودکار کنند که ماهی یک بار پیش میآید و ده دقیقه طول میکشد.
ساختن یک رویه هزینه دارد — وقت، حوصله، و چند بار آزمون و خطا. آن هزینه فقط وقتی برمیگردد که کار تکرار شود، شکلش هر بار یکی باشد، و خروجیاش قابل داوری باشد. اگر یکی از این سه نباشد، همان بار به بار انجامش بده و بیخیال سیستم شو.
یک کار وقتی ارزش سیستمشدن دارد که تعدادِ دفعات ضربدر وقتی که میگیرد، از وقتی که ساختن رویه میبرد بیشتر باشد — و شکل ورودیاش هر بار همان باشد.
یک کار واقعی از هفتهی خودت را در ذهن بیاور — چیزی که هر بار حوصلهات را میبرد — و چهار سوال زیر را دربارهٔ آن جواب بده.
هر چهار سوال را انتخاب کن تا بگویم این کار ارزش رویهساختن دارد یا نه.
اگر جواب «نه» بود، ناراحت نشو — این خودش یک نتیجه است. کارِ درست را انتخاب کردن، نصفِ کار است.
در قسمت دوم یاد گرفتی یک درخواست خوب شش تکه دارد. یک رویه همان است، بهعلاوهٔ سه چیزی که باعث میشود بار دوم هم همان کیفیت را بدهد.
| پرامپت | رویه |
|---|---|
| یک بار تایپ میشود و از بین میرود. | یک جا ذخیره میشود و هر بار همان برداشته میشود. |
| ورودی داخل خودش نوشته شده. | جای ورودی خالی است و هر بار پُر میشود. |
| معلوم نیست جواب خوب چه شکلی است. | شکلِ خروجی از قبل تعریف شده — چند بند، چه بخشهایی، چه طولی. |
| اگر بد جواب داد، باز از اول مینویسی. | یک نمونهی درست کنارش هست تا با آن مقایسه کنی. |
این پنج تکه، همان شش تکهی قسمت دوم است که برای تکرارشدن بازنویسی شده.
| تکه | چه کار میکند |
|---|---|
| ۱. نقش و هدفRole | یک جمله: تو چه کسی هستی و این کار برای چیست. ثابت میماند و هرگز عوض نمیشود. |
| ۲. ورودیInput | تنها تکهای که هر بار عوض میشود. جایش را با یک نشانهی روشن خالی بگذار، مثل {{متن}}. |
| ۳. مراحلSteps | ترتیب کاری که باید بکند، شمارهدار. مدل ترتیب را جدی میگیرد، و تو هم بعداً میفهمی کدام مرحله خراب شده. |
| ۴. قالب خروجیFormat | دقیقاً چه شکلی برگردد: چند بند، با چه عنوانهایی، چند کلمه. بدون این، هر بار یک شکل میگیری. |
| ۵. مرزهاLimits | چه کاری نکند: چیزی از خودش اضافه نکند، عدد نسازد، اگر اطلاعات کم بود بپرسد نه اینکه حدس بزند. |
در قسمت اول دربارهٔ توهم و راستیآزمایی حرف زدیم. وقتی یک کار را صد بار تکرار میکنی، آن یک بار که مدل عدد از خودش میسازد حتماً پیش میآید. جملهی «اگر اطلاعات کافی نبود، بپرس؛ حدس نزن» را در هر رویهای بنویس.
مثل دو قسمت قبل، خودت پرش کن. هر چه بنویسی، پایین ساخته میشود. بعد کپی کن و یک جای همیشگی نگهش دار — یادداشت گوشی، یک فایل، هرجا که دفعهی بعد پیدایش کنی.
حالا هر بار فقط جای ورودی را عوض میکنی. همین. این تفاوت بین «هر بار از نو» و «یک بار برای همیشه» است.
بعضی کارها با یک درخواست تمام نمیشوند. راهحل، نوشتن یک پرامپت غولپیکر نیست — راهحل این است که کار را به چند مرحله بشکنی و خروجی هر مرحله را ورودی مرحلهی بعد کنی.
چرا این بهتر از یک درخواست بزرگ است؟ چون وقتی نتیجه بد میشود، میفهمی کدام مرحله خراب شده و فقط همان را درست میکنی. در یک پرامپت بزرگ، فقط میدانی «بد شد».
یک نمونهی واقعی: از یک مستند یوتیوب تا یک پست کانال. روی هر حلقه بزن.
هر حلقه باید یک کار بکند و خروجیاش قابل خواندن باشد. اگر نمیتوانی خروجی یک مرحله را بخوانی و بگویی درست است یا نه، آن مرحله را بشکن.
و یک هشدار که دیر یا زود به آن میخوری: خطا در زنجیره جمع میشود. اگر مرحلهی اول ده درصد اشتباه کند و مرحلهی دوم روی همان اشتباه بسازد، تا مرحلهی چهارم چیزی دستت میآید که هیچ ربطی به واقعیت ندارد و کاملاً هم مطمئن بهنظر میرسد. برای همین است که لایهی بعدی وجود دارد.
این مهمترین بخش این درس است. یک سیستم خوب آن نیست که همهچیز را خودکار کند — آن است که بداند کجا باید از تو بپرسد.
یک معیار ساده هست که تقریباً همیشه جواب میدهد: آیا این تصمیم برگشتپذیر است؟ اگر اشتباه از آب دربیاید، میشود در پنج دقیقه جبرانش کرد، یا نه؟
| بگذار ماشین انجام دهد | خودت تصمیم بگیر |
|---|---|
| پیشنویس نوشتن، خلاصهکردن، مرتبکردن | منتشر کردن — هر چیزی که اسم تو رویش میرود |
| پیشنهاد چند گزینه | انتخاب بین آن گزینهها |
| پیدا کردن الگو در دادهای که خودت دادهای | هر عدد یا تاریخی که قرار است جایی نوشته شود |
| ترجمه و بازنویسی برای فهم خودت | هر چیزی دربارهٔ آدمهای واقعی — نام، ادعا، نسبت |
| دستهبندی و برچسبزدن | پول، قرارداد، سلامت، و هر چیز قانونی |
هیچوقت آخرین حلقهی زنجیره را «انتشار» نکن. آخرین حلقه همیشه باید نشان دادن به تو باشد. سیستمی که خودش منتشر میکند، سیستمی است که روزی چیزی منتشر میکند که نباید.
رویهات را مینویسی، خوب کار میکند، خیالت راحت میشود. سه هفته بعد کیفیت افت کرده و تو متوجه نشدهای — چون هر بار فقط یک خروجی میبینی و مبنایی برای مقایسه نداری.
راهش ساده است: یک ورودی ثابت انتخاب کن و خروجی درستش را یک جا ذخیره کن. هر وقت رویه را عوض کردی، اول همان ورودی ثابت را بزن و نتیجه را با نمونه مقایسه کن. اگر بدتر شده، تغییرت اشتباه بوده.
یک فایل داشته باش با سه چیز: خودِ رویه، یک ورودی نمونه، و خروجیای که قبولش داری. این کوچکترین کاری است که یک کار دستی را به یک چیز قابل اتکا تبدیل میکند — و همان کاری است که تیمهای حرفهای هم دقیقاً همینطور انجامش میدهند.
شش کار. تیکها روی همین مرورگر میمانند.
قسمت پنجم آخرین قسمت بخش مبتدی است، و دربارهٔ چیزی است که همهی چهار قسمت قبل را به هم وصل میکند: کارِ خودت، نه تمرین.
تا آن موقع، رویهات را بنویس و یک هفته واقعاً استفادهاش کن. قسمت پنجم روی چیزی ساخته میشود که خودت ساخته باشی و یک هفته باهاش زندگی کرده باشی.
هر چه در این درس آمد، قاعده است نه قابلیت — ولی اگر خواستی همانها را در مستندات رسمی ببینی:
تاریخ نگارش: مرداد ۱۴۰۵. ساختار این درس کهنه نمیشود؛ نام قابلیتها ممکن است عوض شود.