From Vibes-Only Coding to Disciplined, Agent-Driven Engineering
کدنویسی مبتنی بر حس و هدایت سطح بالا
Vibe Coding یعنی کدنویسی مبتنی بر حس و هدایت سطح بالا، بدون درگیر شدن با جزئیات سینتکس. در این روش شما بهجای تایپ کردن تکتک خطوط، «قصد» و «معماری» را با زبان طبیعی توصیف میکنید و هوش مصنوعی کد را تولید میکند. این همان چیزی است که به آن توسعه مبتنی بر قصد (Intent-Driven Development) میگویند.
این اصطلاح را نخستینبار پژوهشگران حوزه هوش مصنوعی رایج کردند تا حالتی را توصیف کنند که در آن توسعهدهنده «به حس» کاری که میخواهد اعتماد میکند و جزئیات پیادهسازی را به مدل میسپارد. نتیجه، جهشی در سرعت است اما تنها در صورتی که کنترل و بازبینی را از دست ندهید.
نقش برنامهنویس از «تایپکننده کد» به «مدیر محصول و معمار سیستم» ارتقا پیدا میکند. شما تصمیم میگیرید چه چیزی ساخته شود، چگونه ماژولها کنار هم بنشینند و کیفیت خروجی را بازبینی میکنید؛ کار تکراری نوشتن را به AI میسپارید.
هوش مصنوعی مثل یک کارآموز فوقسریع اما بیتجربه است که ۲۴ ساعته کار میکند و بیچونوچرا دستور میگیرد. اگر دقیق راهنماییاش کنید، در چند ثانیه دهها خط کد تحویل میدهد؛ اما اگر رهایش کنید، ممکن است کد کثیف یا اشتباه بنویسد و بدتر، با اطمینان کامل! شما «سرپرست» این کارآموز هستید، نه جایگزین او. مسئولیت نهایی کیفیت همچنان با شماست.
یک تمایز مهم که خیلیها با هم قاطیشان میکنند
عبارت اصلی «Vibe Coding» در معنای اولیهاش (که برای اولینبار در جامعه پژوهشگران هوش مصنوعی رایج شد) خیلی رادیکال بود: کاملا به حس اعتماد کن، حتی Diff را هم نخوان؛ مناسب آزمایش سریع و پروژههای شوخی/اکتشافی، نه محصول واقعی. وقتی همین ایده وارد دنیای حرفهای شد، یک نسخه منضبطتر از آن شکل گرفت که این دوره روی همان تمرکز دارد: Agentic Programming یعنی همان هدایت AI با زبان طبیعی، اما با بازبینی Diff، تست، Git و مدیریت آگاهانه هزینه و امنیت.
| جنبه | Vibe Coding خام (اصیل) | Agentic Programming (این دوره) |
|---|---|---|
| بازبینی کد | معمولا نه «حساش کن» | همیشه بازبینی Diff قبل از Accept |
| مناسب | پروتوتایپ سریع، آزمایش شخصی | محصول واقعی، تیم، مشتری |
| Git / تست | اختیاری | الزامی و مداوم |
| مسئولیت خروجی | مبهم | همیشه با انسان هدایتگر |
| مقصد نهایی | «کار میکند، همین کافی است» | Deploy، امنیت، نگهداریپذیری |
در ادامه این دوره، هرجا «Vibe Coding» میگوییم، منظورمان همین نسخه حرفهای و منضبط است.
از تکمیل خودکار تا عامل کاملا مستقل Background
Vibe Coding یک نقطه نیست، یک طیف است. هرچه به راست میروید، کنترل لحظهای شما کمتر و سرعت بیشتر میشود و نیاز به بازبینی دقیقتر هم بیشتر:
یک مهندس خوب میداند برای هر کار، کجای این طیف بایستد: برای یک تغییر ظریف، Inline Edit؛ برای ساخت یک ماژول کامل، Agent؛ برای کارهای طولانی پسزمینه (مثلا رفع یک باگ در حین نهار)، یک Background/Cloud Agent؛ مفهومی که در جلسه «اپساز و انتخاب مدل» باز میکنیم.
Mindset Shift: نقش جدید شما
«اگر خودم کد نزنم، مهارتم را از دست میدهم» یا «به کدی که خودم ننوشتهام اعتماد ندارم».
پاسخ: شما مهارت مهمتری بهدست میآورید: توانایی طراحی، بازبینی و هدایت. دقیقا مثل یک Tech Lead که لزوما همه کدهای تیم را خودش نمینویسد، اما مسئول کیفیت آنهاست. ضمنا برای بازبینی درست کد، هنوز باید بفهمید کد چه میکند، پس دانش فنیتان نهتنها بیارزش نمیشود، بلکه ضروریتر میشود.
| جنبه | کدنویسی سنتی | Vibe / Agentic Programming |
|---|---|---|
| واحد کار | خط کد | قصد و فیچر |
| مهارت اصلی | حفظ سینتکس | طراحی + بازبینی + پرامپت/Context |
| سرعت اولیه | کند | بسیار سریع |
| ریسک اصلی | خطای تایپی | کد اشتباه باورپذیر AI (Hallucination) |
| ابزار کنترل کیفیت | کامپایلر + تست | بازبینی Diff + تست + Git |
| گلوگاه | سرعت تایپ | سرعت بازبینی انسان |
The Three-Step Loop (گام چهارم، انتشار، در جلسات پایانی)
Deconstruction
پروژه را به فیچرهای مینیاتوری و قابلتست بشکنید. «سیستم لاگین» → «فرم ورود»، «اعتبارسنجی»، «توکن نشست».
Scaffolding
استخوانبندی پروژه (فولدرها، فایلهای اولیه، پیکربندی) را با AI تولید کنید و بلافاصله در Git ثبت کنید.
Iterative Prompts
هر فیچر را با یک پرامپت پیش ببرید، فورا تست کنید، Diff را بازبینی کنید و Commit بزنید.
هرچه واحد کار کوچکتر باشد، بازبینی آسانتر است و اگر AI اشتباه کند، خرابی محدود میماند. پرامپت «کل اپلیکیشن فروشگاه را بساز» به کد غیرقابلکنترل ختم میشود؛ اما «فقط کامپوننت دکمه افزودن به سبد را بساز» نتیجهای دقیق و قابلتست میدهد.
commit.از «دستیار» به «همکار خودمختار»
تا اینجا درباره Vibe Coding بهعنوان یک طیف صحبت کردیم: از Autocomplete ساده تا Background Agent. اما نقطهعطف اصلی این طیف، جایی است که ابزار از یک «تکمیلکننده کد» به یک عامل (Agent) تبدیل میشود. Agent برخلاف Autocomplete، صرفا خط بعدی را حدس نمیزند؛ بلکه هدف را میفهمد، برنامه میریزد، ابزارها را صدا میزند، کد مینویسد، فایل میسازد، تست را اجرا میکند و خروجی را تصحیح میکند همه در یک سیکل خودکار.
یک Agent مدرن (مثل Copilot Agent Mode، Cursor Agent، یا Claude Code) این حلقه را طی میکند:
این دقیقا همان ReAct Loop معروف در AI است: Reason → Act → Observe → Repeat.
| Autocomplete / Inline | Agent / Background |
|---|---|
| «حدس بزن خط بعدی چیست» | «بفهم هدف چیست و برو انجام بده» |
| واکنشی (Reactive) شما شروع میکنی | پیشکنشی (Proactive) خودش شروع میکند |
| بدون حافظه مکالمه | حافظه بلندمدت در چت و Context |
| یک فایل، یک تغییر | چند فایل، چند ابزار، چند دور |
| شما Driver هستید | شما Navigator هستید |
در Agentic Programming، شما کار را واگذار (Delegate) میکنید، نه رها. مثل مدیری که پروژه را به اعضای تیم میسپارد: خودش کد نمیزند، اما معماری را تعیین میکند، پیشرفت را چک میکند، خروجی را بازبینی میکند و در صورت نیاز مسیر را اصلاح میکند. این دقیقا نقشی است که در جلسات بعدی از پرامپتنویسی تا Skills و Subagents قدمبهقدم یاد میگیرید.
رمز موفقیت: نه «اعتماد کور» و نه «کنترل وسواسی». بلکه اعتماد آگاهانه با بازبینی هوشمندانه دقیقا همان تعادلی که یک Tech Lead حرفهای با تیم انسانیاش برقرار میکند.
این دوره شما را از سطح «Prompt-and-Pray» (پرامپت بده و دعا کن درست جواب بده) به سطح «Prompt-Plan-Review» (برنامهریزی کن، هدایت کن، بازبینی کن) میرساند. هر جلسه یک لایه از این مهارت را میسازد: اول پرامپت دقیق (جلسه ۲)، بعد شناخت ابزارها (جلسه ۳)، سپس مدیریت Context و Token (جلسه ۶)، Git گردشکار (جلسه ۸)، و نهایتا طراحی Skills و Subagents اختصاصی خودتان (جلسه ۱۱).
Common Anti-Patterns
Blind Trust
تأیید کد بدون خواندن آن. AI با اطمینان کامل، کد اشتباه هم تولید میکند (Hallucination).
Mega Prompt
خواستن یک فیچر عظیم در یک پیام. نتیجه گیجکننده و غیرقابلبازبینی میشود.
No Safety Net
کار بدون Commit مرتب. یک پرامپت بد میتواند ساعتها کار را نابود کند.
Not Understanding
اگر نمیدانید کد چه میکند، نمیتوانید بازبینیاش کنید. Vibe Coding «بیسوادی فنی» را جبران نمیکند.
Endless Chat
یک گفتوگوی طولانی برای ده تسک مختلف. مدل گیج و هزینه بالا میشود.
Ignoring Security
کد کارکننده لزوما امن نیست. کلید هاردکد و نبود اعتبارسنجی، دامهای رایج AIاند (جلسه ۱۰ کامل به این اختصاص دارد).