آموزش Claude Code حرفه‌ای در سه تصمیم خلاصه می‌شود: نوشتن یک CLAUDE.md ساختارمند به‌جای README، اجرای چند جلسه‌ی کوتاه و متمرکز به‌جای یک نشست طولانی، و انتخاب مدل بر اساس نوع وظیفه نه عادت. کسی که این سه را رعایت نکند، همان خروجی چت معمولی را می‌گیرد و پول اشتراک بی‌دلیل می‌پردازد.

Claude Code چیست و چه تفاوتی با چت معمولی دارد؟#

Claude Code برخلاف چت معمولی که فقط متن تولید می‌کند، یک حلقه‌ی ایجنتی (Agentic Loop) اجرا می‌کند: فایل‌ها را می‌خواند، تغییرات را مستقیماً روی دیسک اعمال می‌کند، دستورات تست را اجرا می‌کند و بر اساس خروجی تکرار می‌کند. کاربر نیازی به کپی‌پیست ندارد؛ ایجنت خودش عمل می‌کند و گزارش می‌دهد.

مفهوم ایجنت کدینگ (Agentic Coding) و تفاوت آن با چت ساده#

در چت، شما پرامپت می‌فرستید، کد می‌گیرید و خودتان paste و اجرا می‌کنید. در ایجنت کدینگ، ابزار خودش فایل‌ها را باز می‌کند، ویرایش می‌کند، دستور build را اجرا می‌کند و اگر خطا دید، خودش اصلاح می‌کند.

این تفاوت بنیادین در انتظارات کاربر اثر دارد. اگر فکر کنید با یک «چت» طرف هستید، از قابلیت‌های چرخه‌ای غافل می‌مانید و عملاً Claude Code را به یک ChatGPT گران‌قیمت تبدیل می‌کنید. ایجنت‌های هوش مصنوعی (AI Agent) در کدینگ، عاملیت دارند؛ یعنی تصمیم می‌گیرند، اجرا می‌کنند و نتیجه را بررسی می‌کنند.

چرخه‌ی کار: خواندن، ویرایش، اجرا، تکرار#

هر وظیفه در Claude Code یک چرخه‌ی کامل است. ایجنت ابتدا context پروژه را از فایل‌ها می‌سازد، سپس تغییر پیشنهادی را اعمال می‌کند، تست مرتبط را اجرا می‌کند و در صورت خطا، حلقه را تکرار می‌کند.

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

دستورات اسلش (Slash Commands) و مدیریت جلسه#

دستورات اسلش ابزارهای مدیریت context هستند:

  • /clear — پاک‌کردن کامل context جلسه و شروع تازه
  • /compact — خلاصه‌سازی context فعلی برای ادامه‌ی کار با هزینه‌ی کمتر
  • /config — دسترسی به تنظیمات مدل، permission و رفتار ایجنت

مدیریت جلسه یعنی بدانید چه‌وقت context را پاک کنید و چه‌وقت ادامه دهید. ادامه‌ی یک جلسه‌ی طولانی با context آلوده، رایج‌ترین دلیل خروجی بی‌کیفیت است.

نصب و راه‌اندازی Claude Code در ترمینال#

نصب Claude Code از طریق npm انجام می‌شود و نیاز به Node.js نسخه‌ی 18 یا بالاتر دارد. پس از نصب، ابزار با اجرای دستور claude در پوشه‌ی پروژه فعال می‌شود و از شما می‌خواهد دسترسی به فایل‌سیستم را تأیید کنید.

پیش‌نیازها#

سه چیز لازم است: Node.js نسخه‌ی 18 یا بالاتر، یک حساب Anthropic (اشتراک Claude Pro یا Max، یا API Key مستقل)، و دسترسی به ترمینال لینوکس یا macOS. برای ویندوز، WSL (Windows Subsystem for Linux) توصیه می‌شود.

مراحل نصب#

  1. نصب سراسری: در ترمینال دستور npm install -g @anthropic-ai/claude-code را اجرا کنید.
  2. ورود به پوشه‌ی پروژه: با cd به ریشه‌ی مخزن Git خود بروید.
  3. اجرای ابزار: دستور claude را تایپ کنید. اولین اجرا از شما تأیید دسترسی به فایل‌سیستم می‌خواهد.
  4. اولین دستور: یک وظیفه‌ی کوچک و مشخص بنویسید، مثلاً «فایل src/utils.ts را بخوان و توضیح بده چه کاری انجام می‌دهد».

سیستم مجوزها (Permission System) و مدیریت دسترسی#

Claude Code قبل از هر ویرایش فایل یا اجرای دستور، از شما اجازه می‌خواهد. این طراحی عمدی است و نباید نادیده گرفته شود.

اشتباه رایج و پرهزینه: فعال‌کردن دسترسی خودکار (auto-accept) بدون بررسی diff. در پروژه‌های واقعی، یک ویرایش نادرست ایجنت روی فایل config می‌تواند کل build را بشکند. الگوی صحیح: permission-based + review قبل از commit.

CLAUDE.md را چطور بنویسم که واقعاً کمک کند؟#

CLAUDE.md یک فایل متنی در ریشه‌ی پروژه است که رفتار ایجنت را در هر جلسه تنظیم می‌کند؛ مثل یک دستورالعمل کاری برای یک همکار جدید. سه بخش مؤثر دارد: conventions (قواعد کدنویسی پروژه)، do-not (ممنوعیت‌ها) و test commands (دستورات تست). نوشتن README به‌جای این ساختار، رایج‌ترین اشتباه است.

ساختار عملی: conventions، do-not و test commands#

هر بخش باید مختصر و امری باشد:

  • Conventions: «از TypeScript strict mode استفاده کن»، «import‌ها را relative بنویس»، «نام توابع camelCase باشد».
  • Do-not: «فایل package.json را بدون تأیید ویرایش نکن»، «از any استفاده نکن»، «کد تولیدی را در پوشه‌ی src بنویس نه dist».
  • Test commands: «برای تست واحد: npm run test -- --watch»، «برای lint: npm run lint:fix».

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

اشتباه رایج: CLAUDE.md ≠ README#

README برای انسان نوشته می‌شود و توصیفی است. CLAUDE.md برای ایجنت نوشته می‌شود و دستوری است. لحن باید امری و مختصر باشد، نه توصیفی.

اگر پاراگراف‌های توضیحی بنویسید، ایجنت آن‌ها را به‌عنوان context عمومی می‌خواند نه قانون رفتاری. تفاوت عملی: ایجنت یک جمله‌ی «این پروژه یک اپلیکیشن مدیریت وظایف است» را به‌عنوان اطلاعات می‌خواند، ولی «از Zustand به‌جای Redux استفاده کن» را به‌عنوان قانون اجرا می‌کند.

نمونه‌ی واقعی از یک پروژه#

نمونه‌ی کامل با سه بخش مشخص:

# Conventions - از TypeScript strict mode استفاده کن - import‌ها را relative بنویس - هر کامپوننت در پوشه‌ی خودش با index.ts export شود # Do-not - فایل package.json را بدون تأیید ویرایش نکن - از any استفاده نکن - در پوشه‌ی migrations دست نزن # Test commands - تست واحد: npm run test -- --watch - تست یک فایل: npm run test -- path/to/file.test.ts - lint: npm run lint:fix

نکته‌ی کلیدی: هر خط باید یک تصمیم رفتاری باشد، نه یک توضیح. اگر خطی را حذف کنید و رفتار ایجنت تغییر نکند، آن خط اضافه است.

Claude Code در برابر Cursor و Copilot: مقایسه‌ی واقعی#

مقایسه‌ی ابزار-به-ابزار گمراه‌کننده است. Cursor خودش چند مدل مختلف را پشت صحنه فراخوانی می‌کند و Copilot در IDE ادغام شده، درحالی‌که Claude Code یک ایجنت ترمینالی مستقل است. مقایسه‌ی درست، سطح‌به‌سطح است: مدل زیرساختی، نحوه‌ی دسترسی به context و نوع تعامل.

تفاوت در مدل‌های زیرساختی#

Claude Code فقط از مدل‌های Claude استفاده می‌کند. Cursor از چند مدل مختلف (شامل GPT، Claude و مدل‌های متن‌باز) بهره می‌برد. Copilot عمدتاً به مدل‌های OpenAI وابسته است. این یعنی مقایسه‌ی کیفیت خروجی باید مدل‌به‌مدل باشد، نه ابزار-به‌ابزار.

مقایسه‌ی سطح‌به‌سطح#

معیارClaude CodeCursorCopilot
نوع تعاملایجنت ترمینالیچت + autocomplete در IDEAutocomplete در IDE
دسترسی به contextخواندن مستقیم فایل‌سیستمIndexing خودکار پروژهContext محدود به فایل باز
اجرای دستوربله (build, test, git)بله (terminal داخلی)خیر
مدل‌های پشتیبانی‌شدهفقط Claudeچند مدلعمدتاً OpenAI
مدل هزینهاشتراک یا APIاشتراکاشتراک

چه‌وقت کدام ابزار؟#

Claude Code: پروژه‌های لینوکس/مک با فایل‌سیستم واضح، نیاز به اجرای تست و commit خودکار. Cursor: کار روزمره در IDE با نیاز به autocomplete سریع و چت context-aware. Copilot: تکمیل خطی در پروژه‌های بزرگ با وابستگی به اکوسیستم VS Code.

انتخاب مدل: Opus 4 یا Sonnet 4؟#

برای وظایف تکراری و ساده مثل rename، format یا تغییرات جزئی، Sonnet کافی است و استفاده از Opus صرفاً هزینه‌ی اضافی می‌سازد. برای معماری، دیباگ پیچیده و وظایف چندمرحله‌ای، Opus تفاوت محسوس دارد. راهنمای تصمیم‌گیری بر اساس نوع وظیفه، نه عادت.

راهنمای تصمیم‌گیری بر اساس نوع وظیفه#

  • به‌کارگیری Sonnet: تغییرات یک‌فایلی، نوشتن تست ساده، توضیح کد، rename، format، migration‌های خطی.
  • به‌کارگیری Opus: طراحی معماری، دیباگ باگ‌های چندفایلی، refactoring پیچیده، وظایف چندمرحله‌ای با وابستگی‌های متقابل.

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

مدیریت هزینه و بهینه‌سازی مصرف توکن#

Claude Code در اشتراک‌های Claude Pro و Max بدون هزینه‌ی اضافی در دسترس است. در استفاده از API مستقیم، نرخ‌ها بر اساس میلیون توکن محاسبه می‌شود. برای ارقام دقیق، صفحه‌ی قیمت‌گذاری رسمی Anthropic را بررسی کنید.

اشتباه رایج: «هرچه توکن بیشتری بدهید نتیجه بهتر است». در عمل، ورودی‌های پرحجم بدون ساختار دقت را کاهش می‌دهند. الگوی مؤثرتر: ورودی کوتاه و متمرکز با بازخورد تدریجی. این اصل در راهنمای Prompt Engineering هم تأیید شده است.

MCP و اتصال به ابزارهای خارجی#

MCP (Model Context Protocol) یک پروتکل متن‌باز است که Anthropic معرفی کرد و به Claude Code امکان می‌دهد به منابع داده و ابزارهای خارجی متصل شود. هر سرور MCP یک ابزار تخصصی است که ایجنت می‌تواند در حین کار فراخوانی کند.

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

پروتکل MCP چیست و چرا ساخته شد#

بدون MCP، ایجنت فقط به فایل‌سیستم محلی دسترسی دارد. MCP لایه‌ای استاندارد اضافه می‌کند که ایجنت بتواند به دیتابیس، APIهای خارجی، سیستم‌های فایل ابری و ابزارهای دیگر وصل شود. تشبیه ساده: مثل USB-C برای هوش مصنوعی — یک پروتکل، دستگاه‌های متعدد.

اتصال سرور MCP به Claude Code#

از طریق دستور claude mcp add انجام می‌شود. سرورهای آماده برای دیتابیس‌ها، GitHub، Slack و ابزارهای دیگر وجود دارند. پیکربندی در فایل settings.json ذخیره می‌شود.

کاربردهای عملی#

مثال واقعی: اتصال به دیتابیس برای query مستقیم در حین دیباگ، اتصال به GitHub برای خواندن issueها و PRها بدون خروج از ترمینال. این کاربردها در پروژه‌های اعضای کامیونیتی بارها مشاهده شده‌اند.

الگوهای حرفه‌ای: Multi-Session، تست‌نویسی و ساخت ایجنت#

حرفه‌ای‌ها به‌جای یک جلسه‌ی طولانی، چند جلسه‌ی کوتاه و متمرکز اجرا می‌کنند (هرکدام با یک وظیفه‌ی مشخص). مؤثرترین کاربرد Claude Code نوشتن تست‌های واحد (Unit Tests) است، چون مدل‌ها در تشخیص رفتار مورد انتظار از کد موجود بهتر عمل می‌کنند تا در تولید کد از صفر.

الگوی Multi-Session: چرا جلسات کوتاه بهترند#

هر جلسه‌ی طولانی، context را آلوده می‌کند. الگو:

  1. وظیفه‌ی مشخص تعریف کنید
  2. جلسه‌ی جدید باز کنید
  3. نتیجه‌ی قابل‌سنجش بگیرید
  4. commit کنید
  5. context را پاک کنید (/clear)

این الگو در هیچ آموزش فارسی‌زبان توضیح داده نشده و مستقیماً از تکرار در پروژه‌های واقعی استخراج شده است.

تست‌نویسی مؤثرتر از کدنویسی از صفر#

Claude Code برای نوشتن تست‌هایی که رفتار مورد انتظار را از کد موجود استخراج می‌کنند، بسیار مؤثر است. برای تولید کد اصلی از صفر، هنوز نیاز به نظارت انسانی دارد.

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

ساخت ایجنت با Claude Agent SDK#

برای ساخت ایجنت‌های سفارشی خارج از محیط Claude Code، از Claude Agent SDK استفاده می‌شود. این SDK امکان تعریف ابزارها، حلقه‌ی تصمیم و مدیریت context را می‌دهد. برای شروع، آموزش Anthropic API مسیر مناسبی است.

یکپارچه‌سازی با Git و جریان کار تیمی#

Claude Code مستقیماً git add، git commit و git push انجام می‌دهد. الگوی تیمی: هر developer یک CLAUDE.md پروژه‌ی مشترک دارد و commit‌ها با message ساختارمند انجام می‌شوند. CLAUDE.md در مخزن Git قرار می‌گیرد و همه‌ی اعضای تیم از یک دستورالعمل رفتاری مشترک استفاده می‌کنند.

چه زمانی Claude Code مناسب نیست؟#

Claude Code برای پروژه‌های موبایل (Xcode، Android Studio) و embedded که وابستگی‌های گرافیکی سنگین دارند، کندتر و خطاپذیرتر است. در این موارد، ترکیب IDE سنتی + Claude Code برای بخش‌های server-side مؤثرتر از تلاش برای جایگزینی کامل IDE است.

محدودیت در پروژه‌های موبایل و embedded#

Claude Code برای فایل‌سیستم و ترمینال لینوکس/مک بهینه شده است. پروژه‌هایی که نیاز به simulators، asset catalogs یا build systemهای گرافیکی دارند، در این ابزار به‌خوبی کار نمی‌کنند. این محدودیت در تبلیغات ذکر نمی‌شود.

ترکیب Claude Code + IDE سنتی#

بسیاری از توسعه‌دهندگان حرفه‌ای، Claude Code را برای backend، scripts و testها استفاده می‌کنند و IDE سنتی (VS Code، JetBrains) را برای frontend و debugging تعاملی نگه می‌دارند.

اشتباهات رایج و هزینه‌ی هرکدام#

  • فعال‌کردن auto-accept بدون review: ویرایش نادرست config → شکست build. هزینه: ساعت‌ها دیباگ.
  • CLAUDE.md بدون ساختار: ایجنت قوانین را نادیده می‌گیرد. هزینه: بازگشت مکرر به ویرایش دستی.
  • یک جلسه‌ی طولانی بدون /clear: context آلوده → خروجی بی‌کیفیت. هزینه: توکن‌های هدررفته + دوباره‌کاری.

تفاوت واقعی بین «امتحان کردن Claude Code» و «استفاده‌ی حرفه‌ای از آن» در همین سه تصمیم مشخص است: دستورالعمل رفتاری CLAUDE.md به‌جای README، جلسات کوتاه و متمرکز به‌جای یک جلسه‌ی طولانی، و انتخاب مدل بر اساس نوع وظیفه به‌جای همیشه Opus. اگر در ساخت ایجنت یا یکپارچه‌سازی Claude Code با جریان کار تیمی‌تان به راهنمایی نیاز دارید، در کامیونیتی Claude اسکول سؤالتان را بپرسید یا در دوره‌ی «آموزش جامع Claude و ابزارهای مشابه» شرکت کنید.