جلسه ۱ از ۱۳

Vibe Coding و Agentic Programming چیست؟

From Vibes-Only Coding to Disciplined, Agent-Driven Engineering

تعریف و مفهوم

کدنویسی مبتنی بر حس و هدایت سطح بالا

گذار از سینتکس به «قصد»

Vibe Coding یعنی کدنویسی مبتنی بر حس و هدایت سطح بالا، بدون درگیر شدن با جزئیات سینتکس. در این روش شما به‌جای تایپ کردن تک‌تک خطوط، «قصد» و «معماری» را با زبان طبیعی توصیف می‌کنید و هوش مصنوعی کد را تولید می‌کند. این همان چیزی است که به آن توسعه مبتنی بر قصد (Intent-Driven Development) می‌گویند.

این اصطلاح را نخستین‌بار پژوهشگران حوزه هوش مصنوعی رایج کردند تا حالتی را توصیف کنند که در آن توسعه‌دهنده «به حس» کاری که می‌خواهد اعتماد می‌کند و جزئیات پیاده‌سازی را به مدل می‌سپارد. نتیجه، جهشی در سرعت است اما تنها در صورتی که کنترل و بازبینی را از دست ندهید.

نقش برنامه‌نویس از «تایپ‌کننده کد» به «مدیر محصول و معمار سیستم» ارتقا پیدا می‌کند. شما تصمیم می‌گیرید چه چیزی ساخته شود، چگونه ماژول‌ها کنار هم بنشینند و کیفیت خروجی را بازبینی می‌کنید؛ کار تکراری نوشتن را به AI می‌سپارید.

🎯 تشبیه واقعی

هوش مصنوعی مثل یک کارآموز فوق‌سریع اما بی‌تجربه است که ۲۴ ساعته کار می‌کند و بی‌چون‌وچرا دستور می‌گیرد. اگر دقیق راهنمایی‌اش کنید، در چند ثانیه ده‌ها خط کد تحویل می‌دهد؛ اما اگر رهایش کنید، ممکن است کد کثیف یا اشتباه بنویسد و بدتر، با اطمینان کامل! شما «سرپرست» این کارآموز هستید، نه جایگزین او. مسئولیت نهایی کیفیت همچنان با شماست.

Vibe Coding در برابر Agentic Programming

یک تمایز مهم که خیلی‌ها با هم قاطی‌شان می‌کنند

عبارت اصلی «Vibe Coding» در معنای اولیه‌اش (که برای اولین‌بار در جامعه پژوهشگران هوش مصنوعی رایج شد) خیلی رادیکال بود: کاملا به حس اعتماد کن، حتی Diff را هم نخوان؛ مناسب آزمایش سریع و پروژه‌های شوخی/اکتشافی، نه محصول واقعی. وقتی همین ایده وارد دنیای حرفه‌ای شد، یک نسخه منضبط‌تر از آن شکل گرفت که این دوره روی همان تمرکز دارد: Agentic Programming یعنی همان هدایت AI با زبان طبیعی، اما با بازبینی Diff، تست، Git و مدیریت آگاهانه هزینه و امنیت.

جنبهVibe Coding خام (اصیل)Agentic Programming (این دوره)
بازبینی کدمعمولا نه «حس‌اش کن»همیشه بازبینی Diff قبل از Accept
مناسبپروتوتایپ سریع، آزمایش شخصیمحصول واقعی، تیم، مشتری
Git / تستاختیاریالزامی و مداوم
مسئولیت خروجیمبهمهمیشه با انسان هدایت‌گر
مقصد نهایی«کار می‌کند، همین کافی است»Deploy، امنیت، نگهداری‌پذیری

در ادامه این دوره، هرجا «Vibe Coding» می‌گوییم، منظورمان همین نسخه حرفه‌ای و منضبط است.

طیف Vibe Coding

از تکمیل خودکار تا عامل کاملا مستقل Background

Vibe Coding یک نقطه نیست، یک طیف است. هرچه به راست می‌روید، کنترل لحظه‌ای شما کمتر و سرعت بیشتر می‌شود و نیاز به بازبینی دقیق‌تر هم بیشتر:

Autocomplete تکمیل خط
Inline Edit ویرایش انتخابی
Chat گفت‌وگو + تولید
Agent عامل مستقل
Background اجرا بدون نظارت لحظه‌ای
🎯 کنترل بیشتر سرعت بیشتر ⚡

یک مهندس خوب می‌داند برای هر کار، کجای این طیف بایستد: برای یک تغییر ظریف، Inline Edit؛ برای ساخت یک ماژول کامل، Agent؛ برای کارهای طولانی پس‌زمینه (مثلا رفع یک باگ در حین نهار)، یک Background/Cloud Agent؛ مفهومی که در جلسه «اپ‌ساز و انتخاب مدل» باز می‌کنیم.

تغییر طرز فکر

Mindset Shift: نقش جدید شما

😰 ترس رایج

«اگر خودم کد نزنم، مهارتم را از دست می‌دهم» یا «به کدی که خودم ننوشته‌ام اعتماد ندارم».

پاسخ: شما مهارت مهم‌تری به‌دست می‌آورید: توانایی طراحی، بازبینی و هدایت. دقیقا مثل یک Tech Lead که لزوما همه کدهای تیم را خودش نمی‌نویسد، اما مسئول کیفیت آن‌هاست. ضمنا برای بازبینی درست کد، هنوز باید بفهمید کد چه می‌کند، پس دانش فنی‌تان نه‌تنها بی‌ارزش نمی‌شود، بلکه ضروری‌تر می‌شود.

🧭 نقش‌های جدید شما

  • معمار (Architect): ساختار کلی و تصمیم‌های فنی را می‌چینید.
  • بازبین (Reviewer): هر خط تولیدشده توسط AI را قبل از تأیید می‌خوانید.
  • مدیر محصول (PM): اولویت فیچرها و «چه چیزی ساخته شود» با شماست.
  • هماهنگ‌کننده عامل‌ها (Orchestrator): در پروژه‌های بزرگ‌تر، چند Agent/Subagent را به‌جای یک نفر هدایت می‌کنید.
جنبه کدنویسی سنتی Vibe / Agentic Programming
واحد کارخط کدقصد و فیچر
مهارت اصلیحفظ سینتکسطراحی + بازبینی + پرامپت/Context
سرعت اولیهکندبسیار سریع
ریسک اصلیخطای تایپیکد اشتباه باورپذیر AI (Hallucination)
ابزار کنترل کیفیتکامپایلر + تستبازبینی Diff + تست + Git
گلوگاهسرعت تایپسرعت بازبینی انسان

مراحل شروع کار با Vibe Coding

The Three-Step Loop (گام چهارم، انتشار، در جلسات پایانی)

۱

بخش‌بندی ایده

Deconstruction

پروژه را به فیچرهای مینیاتوری و قابل‌تست بشکنید. «سیستم لاگین» → «فرم ورود»، «اعتبارسنجی»، «توکن نشست».

۲

ایجاد ساختار پایه

Scaffolding

استخوان‌بندی پروژه (فولدرها، فایل‌های اولیه، پیکربندی) را با AI تولید کنید و بلافاصله در Git ثبت کنید.

۳

توسعه تکرارشونده

Iterative Prompts

هر فیچر را با یک پرامپت پیش ببرید، فورا تست کنید، Diff را بازبینی کنید و Commit بزنید.

چرا «مینیاتوری»؟

هرچه واحد کار کوچک‌تر باشد، بازبینی آسان‌تر است و اگر AI اشتباه کند، خرابی محدود می‌ماند. پرامپت «کل اپلیکیشن فروشگاه را بساز» به کد غیرقابل‌کنترل ختم می‌شود؛ اما «فقط کامپوننت دکمه افزودن به سبد را بساز» نتیجه‌ای دقیق و قابل‌تست می‌دهد.

یک مثال واقعی از حلقه

  • پرامپت: «مدل User با فیلدهای name و email بساز».
  • بازبینی Diff ← اجرا ← تست ← commit.
  • پرامپت بعد: «حالا endpoint ثبت‌نام را اضافه کن».
  • باز هم بازبینی ← تست ← commit. و همین‌طور جلو.

ورود به دنیای Agentic Programming

از «دستیار» به «همکار خودمختار»

عامل (Agent) یعنی چی؟

تا اینجا درباره Vibe Coding به‌عنوان یک طیف صحبت کردیم: از Autocomplete ساده تا Background Agent. اما نقطه‌عطف اصلی این طیف، جایی است که ابزار از یک «تکمیل‌کننده کد» به یک عامل (Agent) تبدیل می‌شود. Agent برخلاف Autocomplete، صرفا خط بعدی را حدس نمی‌زند؛ بلکه هدف را می‌فهمد، برنامه می‌ریزد، ابزارها را صدا می‌زند، کد می‌نویسد، فایل می‌سازد، تست را اجرا می‌کند و خروجی را تصحیح می‌کند همه در یک سیکل خودکار.

🤖 Agent چطور فکر می‌کند؟

یک Agent مدرن (مثل Copilot Agent Mode، Cursor Agent، یا Claude Code) این حلقه را طی می‌کند:

  1. دریافت هدف (Goal): پرامپت شما را به یک «ماموریت» تبدیل می‌کند.
  2. تحلیل و برنامه‌ریزی (Plan): تسک را به زیرتسک‌های کوچک می‌شکند.
  3. اجرا با ابزار (Tool Use): فایل می‌خواند، کد می‌نویسد، ترمینال را صدا می‌زند، خطاها را می‌خواند.
  4. بازخورد و تصحیح (Feedback Loop): اگر خروجی اشتباه باشد، خودش خطا را می‌خواند و دوباره تلاش می‌کند بدون دخالت شما.

این دقیقا همان ReAct Loop معروف در AI است: Reason → Act → Observe → Repeat.

🧠 تفاوت ذهنی Autocomplete و Agent

Autocomplete / InlineAgent / Background
«حدس بزن خط بعدی چیست»«بفهم هدف چیست و برو انجام بده»
واکنشی (Reactive) شما شروع می‌کنیپیش‌کنشی (Proactive) خودش شروع می‌کند
بدون حافظه مکالمهحافظه بلندمدت در چت و Context
یک فایل، یک تغییرچند فایل، چند ابزار، چند دور
شما Driver هستیدشما Navigator هستید

🔑 مفهوم کلیدی: Delegation with Oversight

در 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

خواستن یک فیچر عظیم در یک پیام. نتیجه گیج‌کننده و غیرقابل‌بازبینی می‌شود.

نبود Git

No Safety Net

کار بدون Commit مرتب. یک پرامپت بد می‌تواند ساعت‌ها کار را نابود کند.

نفهمیدن کد

Not Understanding

اگر نمی‌دانید کد چه می‌کند، نمی‌توانید بازبینی‌اش کنید. Vibe Coding «بی‌سوادی فنی» را جبران نمی‌کند.

ادامه چت بی‌پایان

Endless Chat

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

بی‌توجهی به امنیت

Ignoring Security

کد کارکننده لزوما امن نیست. کلید هاردکد و نبود اعتبارسنجی، دام‌های رایج AI‌اند (جلسه ۱۰ کامل به این اختصاص دارد).

جلسه بعد: پرامپت‌نویسی و Context Engineering ←