-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial 4 Prompting and Reviewing fa
🌎 زبان: فارسی — مشاهدهٔ هر ۳۳ زبان
هدف: فرا-مهارت. اکنون میتوانید یک ویژگی را با یک عامل بسازید — این فصل دربارهی انجامِ آن بهشکلِ روان و تکرارپذیر است: نوشتنِ اعلانهایی که بارِ اول به هدف میخورند، بازبینیِ کارآمدِ diffها، تکرار وقتی اوضاع بههم میریزد، و حفظِ شتاب در طول نشستها.
← قبلی: آموزش ۳ نخستین کارِ عاملِ شما · بعدی: آموزش ۵ بومیسازی
عامل یک مهندسِ جوانِ سریع، تحتاللفظی و مشتاق است. آن را همانگونه هدایت کنید که یک مهندسِ خوب را:
-
هدف و محدودیتها را بیان کنید. «
endorseرا اضافه کن» ضعیف است. «endorseرا با پیروی از الگویconnect، فقط مولدِ بذردار، همراه با آزمونها، در حالی که دروازه سبز میماند اضافه کن» قوی است. محدودیتها همان راهی هستند که کدِ متناسب میگیرید. -
به مثالها اشاره کنید. «از الگوی بهکاررفته توسط
renderConnectپیروی کن» بر یک پاراگراف توصیف میچربد. کدِ موجود بهترین مشخصات است. - پیش از ویرایشها یک برنامه بخواهید روی هر چیزِ غیرِ پیشپاافتاده. تغییرِ مسیرِ یک برنامه ارزان است؛ بازکردنِ ده فایلِ ویرایششده گران است.
- هر اعلان یک کار. بستهبندیِ «endorse را اضافه کن، مولد را هم بازآرایی کن، README را هم بهروزرسانی کن» یک diff درهمتنیده میسازد که بازبینیاش سخت است.
-
دروازهٔ آزمون را به آن بدهید. «
npm testرا اجرا کن و تا سبز نشده آن را تمامشده نشمار» عامل را به چیزی بدل میکند که کارِ خودش را بررسی میکند.
سرعت کلِ هدفِ یک عامل است — اما سرعتِ نخوانده راهی است که باگها عرضه میشوند. یک واکنشِ بازبینیِ سریع و ثابت بسازید:
- دامنه: آیا فقط آنچه را که باید تغییر داد؟ خطوطِ نامرتبطِ جابهجاشده یک بوی بد هستند.
-
الگوها: آیا با کدِ پیرامون هماهنگ است، بدون وابستگیِ جدید و بدون ورودی/خروجی
درونِ
src/؟ -
قواعدِ پروژه: برای این مخزن، آنها فقط مولدِ بذردار (diff را برای
Math.randomgrep کنید)، متنِ قابلمشاهده برای کاربر در بستههای زبانی (نه کدسختِ درونخطی)، و خطوطِ کارت که هرگز از عرضی که چیدمان تا آن لایهگذاری میکند فراتر نمیروند هستند. -
دسترسپذیری: آیا خروجیِ جدید از
--accessibleجانِ سالم به در میبرد؟lockedin --accessible <your command>را اجرا کنید و بررسی کنید که بهصورت متنِ سادهی تمیز خوانده میشود — بدون نگارهی تزئینیِ تازهای که ازa11yFilterبگذرد. - آزمونها: آیا یک آزمونِ جدید هست، و آیا واقعاً اگر ویژگی میشکست شکست میخورد؟ بپرسید: «کدام خط را عوض کنم تا این آزمونِ جدید شکست بخورد؟»
-
اجرایش کنید:
npm test، سپس فرمان را اجرا کنید و به خروجی نگاه کنید.
لازم نیست هر نویسه را بفهمید — اما باید هر تصمیم را بفهمید. اگر نمیتوانید یک تغییر را توضیح دهید، پیش از پذیرش از عامل بخواهید آن را توضیح دهد.
یک دروازهی قرمز یک گامِ عادی است، نه یک شکست. راهحل، بازخوردِ دقیق است:
«
npm testبا این شکست میخورد: [paste the exact error]. آزمونِ عرضِrenderEndorseانتظار دارد هر خطِ کارت ≤ ۶۰ ستونِ مرئی باشد. بدون تضعیفِ آزمون اصلاحش کن.»
متنِ واقعیِ خطا را بچسبانید. «خراب است» عامل را به حدس میاندازد؛ ردیابیِ پشتهای آن را به اصلاح میکشاند. و ترجیح دهید همان گفتوگو را ادامه دهید بهجای شروعِ تازه — عامل پیشاپیش زمینهی آنچه را که بهتازگی نوشت دارد. اگر دو یا سه تکرار همگرا نشد، یک گام عقب بروید و دوباره دامنه را تعیین کنید: کار ممکن است برای یک اعلان بیشازحد بزرگ باشد.
کارِ واقعی بیش از یک نشست طول میکشد. دو عادت یک عامل را در طول زمان کارآمد نگه میدارد:
-
حافظه / قراردادها. اگر عامل شما از حافظهی پایدار یا یک فایلِ دستورالعملِ پروژه
پشتیبانی میکند، قواعدی را که همیشه باید پیروی کند اینجا ثبت کنید (مثلاً «همهی
تصادفیسازی باید از
pick/shuffleاستفاده کند»، «پیش از اعلامِ اتمامnpm testرا اجرا کن»). یک قرارداد را یک بار بیان میکنید بهجای هر اعلان. -
یک یادداشتِ واگذاری. این مخزن یک سندِ وضعیتِ کوتاه و پاکیزه در
docs/HANDOFF.mdنگه میدارد: پروژه چیست، چگونه ساخته شده، چگونه آزموده میشود و بعدی چیست. وقتی برمیگردید (یا به یک همتیمی — یا عاملی دیگر — واگذار میکنید)، آن یادداشت زمینه را در چند ثانیه بازمیسازد. از عامل خود بخواهید بهعنوان بخشی از یک تغییر آن را بهروز نگه دارد.
- دروازه غیرقابلمذاکره است. آزمونهای سبز پیش از عرضهی هر چیز. همان چیزی است که به شما اجازه میدهد سریع حرکت کنید و به خروجی اعتماد کنید.
- شما بازبینِ ثبتشده هستید. عامل مینویسد؛ شما تصمیم میگیرید. پذیرشِ یک diff یعنی ضمانتش میکنید.
- گامهای کوچک و قابلراستیآزمایی بر یک جهشِ غولآسا میچربند. هر تغییرِ پذیرفتهشده باید اپلیکیشن را در حال کار رها کند.
- یک مشخصاتِ یکپاراگرافی برای یک فرمانِ
mentor(«توصیهی ناخواسته پخش میکند») بنویسید، شاملِ محدودیتها، و عامل را وادار کنید آن را آزمونمحور بسازد — برنامه، آزمونها، کد، دروازه — با بازبینی در هر گام. - از عامل بخواهید
docs/HANDOFF.mdرا بهروزرسانی کند تا از فرمانِ جدید یاد کند. - عمداً چیزی را بشکنید (مثلاً یک ورودیِ مخزن را حذف کنید)،
npm testرا اجرا کنید، و تمرین کنید که شکستِ دقیق را برای اصلاح به عامل بدهید.
- کدِ واقعی در
src/lockedin.jsرا مرور کنید — اکنون شکلِ آن را میدانید. -
docs/HANDOFF.mdرا برای یادداشتهای وضعیت و معماریِ خودِ پروژه بخوانید. - از شوخیها در مرجع فرمانها لذت ببرید.
آموزش همین است. اکنون میتوانید یک عامل هوش مصنوعی را هدایت کنید تا نرمافزارِ واقعی را پشتِ یک دروازهٔ آزمون بسازد و تغییر دهد — با بهکارگیریِ پرنخوتترین نمونهی قابلتصور. موافقید؟ 👇
Tutorial
- 1 · Orientation
- 2 · How the Code Works
- 3 · Your First Agent Task
- 4 · Prompting & Reviewing
- 5 · Localization
Reference
Satire · Sátira · 風刺. Not affiliated with LinkedIn. GPL-3.0-or-later.