آموزش Claude Code بدون درک تفاوت آن با یک چت‌باکس، فقط وقت تلف کردن است. این ابزار یک ایجنت ترمینال‌محور (terminal-native agent) است که اگر context ساختاریافته به آن ندهی، در پروژه‌های بالای چند ده هزار خط کد شروع به ساختن API‌هایی می‌کند که اصلاً وجود ندارند. الگوی صحیح: یک فایل CLAUDE.md در ریشه‌ی پروژه، هر task روی branch مستقل، و پرامپت‌های ساختاریافته با XML tags.

چرا paste کردن codebase شکست است و CLAUDE.md تنها راه نجات#

paste کردن کل codebase به Claude Code، دو شکست همزمان ایجاد می‌کند: token budget مدل پر می‌شود و سلسله‌مراتب اطلاعات از بین می‌رود. CLAUDE.md یک فایل markdown در ریشه‌ی repo است که به‌جای حجم، ساختار می‌دهد — معماری، conventions و نقش هر پوشه. Anthropic این فایل را در مستندات رسمی به‌عنوان best practice معرفی کرده، اما در محتوای فارسی‌زبان تقریباً غایب مانده است.

مشکل paste کردن فقط «فراموشی مدل» نیست. مشکل اصلی این است که مدل نمی‌داند کدام فایل authoritative است و کدام deprecated. وقتی ۵۰ فایل یکجا وارد context می‌شوند، مدل عملاً بین فایل‌های فعال و فایل‌های منسوخ تمایز قائل نمی‌شود.

CLAUDE.md چیست و چه محتوایی باید داشته باشد#

فایل CLAUDE.md یک markdown ساده است که در ابتدای هر session توسط Claude Code خوانده می‌شود و مدل بر اساس آن تصمیم می‌گیرد کجا edit کند و کجا نکند. محتوای مؤثر آن چهار بخش دارد: معماری کلی، conventions، file map و محدودیت‌ها.

  • معماری کلی: توصیف یک‌خطی از هر module و dependency بین آن‌ها
  • Conventions: نام‌گذاری، patternهای مورد استفاده، و قوانین ساختار فایل
  • File map: کدام فایل‌ها authoritative هستند و کدام‌ها generated
  • محدودیت‌ها: چیزهایی که نباید دست بزن، مثل lock files یا migration‌های قدیمی

نکته‌ی کلیدی: CLAUDE.md را به‌عنوان «مستند» ننویس، به‌عنوان «دستورالعمل عملیاتی» بنویس. تفاوت این دو در لحن و جزئیات است. مستند توضیح می‌دهد «چرا»، دستورالعمل عملیاتی می‌گوید «بکن» و «نکن».

چرا paste کردن کل پروژه نتیجه‌ی بدتر می‌دهد نه بهتر#

مدل‌های زبانی با context windowهای طولانی کار می‌کنند، اما «طولانی» به معنای «بی‌نهایت» نیست. وقتی حجم زیادی فایل وارد context می‌شود، مدل دچار attention dilution می‌شود — یعنی نمی‌تواند به‌طور یکسان به همه‌ی توکن‌ها توجه کند و عملاً اطلاعات وسط context را نادیده می‌گیرد. این پدیده در پژوهش‌های مربوط به استفاده‌ی مدل‌ها از context windowهای طولانی مستند شده و در پروژه‌های واقعی اعضای کامیونیتی بارها مشاهده شده است.

الگوی جایگزین: فقط فایل‌های مرتبط با task جاری را در context بیاور. اگر task تو تغییر یک component در frontend است، نیازی نیست مدل‌های database و routing را هم بفرستی. این کار نه‌تنها کیفیت خروجی را بالا می‌برد، هزینه‌ی token هم کاهش می‌دهد.

الگوی context injection در پروژه‌های بزرگ#

در پروژه‌های بزرگ، الگوی سه‌لایه‌ای پاسخ می‌دهد: CLAUDE.md برای معماری کلی، فایل‌های مستقیماً مرتبط با task برای جزئیات، و sessionهای کوتاه‌تر با reset بین taskها.

  1. لایه‌ی اول: CLAUDE.md برای معماری کلی و conventions
  2. لایه‌ی دوم: فایل‌های مستقیماً مرتبط با task (مثلاً interface definition و test file)
  3. لایه‌ی سوم: مکالمه‌های کوتاه‌تر با reset بین taskها

این الگو در پروژه‌های واقعی اعضای کامیونیتی‌های توسعه‌دهنده‌ی Claude بارها مشاهده شده و نتایج به‌طور محسوس بهتر از paste کردن کل پروژه بوده است. دلیلش ساده است: هر لایه فقط اطلاعاتی را می‌دهد که مدل در آن لحظه نیاز دارد.

اجرای type-checking قبل از هر edit با pre-commit hook#

یکی از رایج‌ترین شکست‌های Claude Code در پروژه‌های بزرگ، تولید کدی است که type error دارد. راه‌حل عملی: یک pre-commit hook بساز که قبل از commit، type-check را اجرا کند و در صورت خطا، edit را reject کند. این hook عملاً به‌عنوان یک guardrail عمل می‌کند و از ورود کد شکسته به codebase جلوگیری می‌کند.

در پروژه‌های TypeScript، این یعنی اجرای tsc --noEmit قبل از commit. در Python، mypy یا pyright. در پروژه‌های Rust، cargo check. نکته‌ی ظریف: این hook را طوری تنظیم کن که فقط فایل‌های تغییر‌یافته را چک کند، نه کل پروژه. وگرنه latency به‌قدر بالا می‌رود که خودت hook را غیرفعال می‌کنی.

Claude Code چیست و چه تفاوتی با چت ساده در claude.ai دارد؟#

Claude Code یک CLI coding agent است که مستقیماً با فایل‌سیستم، git و terminal پروژه‌ی تو کار می‌کند. برخلاف چت claude.ai که فقط متن تولید می‌کند، این ابزار action می‌گیرد: فایل می‌سازد، edit می‌کند، تست اجرا می‌کند و commit می‌زند. تفاوت بنیادین در «agent loop» است — یک چرخه‌ی perceive-think-act که چت ساده آن را ندارد.

در چت، تو prompt می‌دهی و مدل یک‌بار پاسخ می‌دهد. در agent loop، مدل خودش context را می‌خواند، تصمیم می‌گیرد، عمل می‌کند، نتیجه را بررسی می‌کند و اگر لازم بود دوباره عمل می‌کند. این تفاوت، Claude Code را از «دستیار کدنویسی» به «مجری task» تبدیل می‌کند.

معماری مدل‌های Claude و تفاوت context window#

Claude Code بر پایه‌ی مدل‌های سری Claude Anthropic کار می‌کند. هر مدل context window متفاوتی دارد و برای workflowهای مختلف مناسب‌تر است. برای جزئیات دقیق نسخه‌ها و محدودیت‌ها، مستندات رسمی Anthropic را بررسی کن چون این اعداد با هر آپدیت تغییر می‌کنند.

نکته‌ی عملی: مدل‌های بزرگ‌تر context بیشتری دارند اما latency بالاتری هم دارند. اگر task تو یک edit ساده در یک فایل است، مدل سبک‌تر سریع‌تر و اقتصادی‌تر است. انتخاب مدل بر اساس «بزرگ‌تر = بهتر» اشتباه رایجی است که در کلاس‌ها و گفتگوهای کامیونیتی مکرر دیده می‌شود.

Extended thinking: چه زمانی فعالش کنی و چه زمانی نه#

Extended thinking (تفکر گسترده) یک قابلیت در مدل‌های جدیدتر Claude است که قبل از پاسخ، reasoning داخلی انجام می‌دهد. برای taskهای پیچیده مثل refactoring معماری یا debugging منطق چندلایه مفید است. برای editهای ساده و boilerplate، فقط latency و هزینه را بالا می‌برد.

قاعده‌ی ساده: اگر task تو نیاز به «فکر کردن» دارد، extended thinking را فعال کن. اگر task تو «انجام دادن» است، نه. این تفکیک ظریف‌تر از آن است که به‌نظر می‌رسد — بسیاری از توسعه‌دهنده‌ها extended thinking را همیشه روشن می‌گذارند و سپس از کندی ابزار شکایت می‌کنند.

تفاوت workflow: چت باکسی در مقابل agent loop#

در چت باکسی، تو prompt می‌دهی، مدل پاسخ می‌دهد، تو copy-paste می‌کنی. در agent loop، تو task تعریف می‌کنی، مدل خودش فایل‌ها را باز می‌کند، edit می‌کند، تست اجرا می‌کند و اگر تست fail شد، خودش اصلاح می‌کند. این تفاوت، Claude Code را از یک «دستیار کدنویسی» به یک «مجری task» تبدیل می‌کند.

اما agent loop ذاتاً کندتر است. چندین step یعنی چندین round-trip. اگر به پاسخ فوری نیاز داری، این ابزار گزینه‌ی اشتباه است.

Claude Code یا Cursor یا Copilot؟ کدام برای workflow تو مناسب است#

انتخاب بین Claude Code، Cursor و GitHub Copilot به مدل هوشمندتر مربوط نیست؛ به این بستگی دارد که تو در IDE کار می‌کنی یا در ترمینال، latency برایت مهم است یا نه، و budget ماهانه‌ات چقدر است. اشتباه رایج در انتخاب ابزار، مقایسه بر اساس benchmark است. هیچ benchmark‌ای نمی‌گوید کدام ابزار در workflow واقعی تو — با codebase واقعی‌ات و taskهای واقعی‌ات — بهتر عمل می‌کند.

جدول مقایسه‌ای ابزارهای AI coding#

ابزارنوع workflowPlatformمناسب برای
Claude CodeTerminal-native agentmacOS / Linux / Windows (WSL)Refactoring سنگین، multi-file edit، task-based work
CursorIDE-based (VS Code fork)Desktop IDEInline edit، autocomplete هوشمند، کار روزمره در IDE
GitHub CopilotExtension در IDEVS Code، JetBrains، Vim، NeovimAutocomplete، boilerplate، کار سریع در context IDE
AiderCLI agent (open-source)Terminalکسانی که می‌خواهند مدل را خودشان انتخاب کنند
WindsurfIDE-basedDesktop IDECascade workflow، multi-step edit در IDE

الگوی ترکیبی: Claude Code برای refactoring سنگین + Copilot برای autocomplete#

در پروژه‌های واقعی، بهترین نتیجه از ترکیب ابزارها می‌آید نه از انتخاب یکی. الگوی رایج در بین توسعه‌دهنده‌های حرفه‌ای: Claude Code را برای taskهای چندفایلی و refactoring‌های عمیق استفاده کن، و Copilot یا Cursor را برای autocomplete روزانه و editهای کوچک.

این الگو در پروژه‌های کامیونیتی مشاهده شده و دلیلش ساده است: هر ابزار در یک نوع task بهتر عمل می‌کند. کسی که فقط Claude Code استفاده می‌کند برای autocomplete، latency غیرقابل‌قبولی تجربه می‌کند. کسی که فقط Copilot استفاده می‌کند برای refactoring چندفایلی، عملاً ابزار مناسب ندارد.

چرا مقایسه‌ی صرفاً بر اساس benchmark شکست‌خورده‌ی ذهنی است#

Benchmarkها معمولاً روی taskهای ایزوله و کوچک تست می‌شوند. در پروژه‌ی واقعی، چالش اصلی «مدیریت context» و «درک معماری» است نه «نوشتن یک تابع». ابزاری که benchmark بهتری دارد ولی context management ضعیف‌تری دارد، در پروژه‌ی بزرگ شکست می‌خورد.

یک مثال مشخص: benchmark می‌گوید مدل X در نوشتن یک تابع sort بهتر از مدل Y است. اما در پروژه‌ی تو، چالش این است که مدل Y بفهمد این تابع sort باید با conventionهای خاص پروژه‌ات هماهنگ باشد و importهایش را از جای درست بیاورد. این چیزی نیست که benchmark اندازه می‌گیرد.

مراحل نصب و اولین workflow با Claude Code#

پیش‌نیاز اصلی Node.js و یک terminal سازگار است. پس از نصب با npm، اولین workflow شامل init پروژه، ساخت CLAUDE.md، تعریف task با branch مستقل و اجرای edit-then-test است. نصب ساده است، اما اولین workflow صحیح تفاوت بین یک تجربه‌ی خوب و یک تجربه‌ی ناامیدکننده را تعیین می‌کند.

پیش‌نیازهای فنی: Node.js، OS support و محدودیت‌های Windows#

Claude Code برای macOS و Linux به‌صورت native کار می‌کند. در Windows، معمولاً از طریق WSL (Windows Subsystem for Linux) اجرا می‌شود. برای جزئیات پشتیبانی فعلی، مستندات رسمی Anthropic را چک کن چون این اطلاعات وابسته به زمان است.

گام‌به‌گام از init تا commit#

  1. نصب: با npm یا دستور مشخص‌شده در مستندات رسمی، Claude Code را نصب کن
  2. Init پروژه: در ریشه‌ی repo دستور init را اجرا کن تا CLAUDE.md اولیه ساخته شود
  3. ویرایش CLAUDE.md: معماری، conventions و file map را بنویس
  4. ساخت branch: git checkout -b task-name — هر task یک branch مستقل
  5. تعریف task: با پرامپت ساختاریافته، task را مشخص کن
  6. اجرای edit-then-test: بگذار Claude Code edit کند، سپس تست‌ها را اجرا کن
  7. Commit: اگر تست‌ها pass شدند، commit بزن. اگر نشد، feedback بده و اصلاح کن

الگوی «هر task یک branch» و چرا بدونش undo کردن غیرممکن است#

وقتی Claude Code چند فایل را همزمان تغییر می‌دهد و تو بدون branch شروع کرده‌ای، undo کردن عملاً غیرممکن است. Git stash برای این کار طراحی نشده و diff گرفتن از working directory بدون baseline، گیج‌کننده است.

الگوی صحیح: قبل از هر task جدید، git checkout -b بزن. بعد از اتمام، merge یا discard کن. این یک عادت ساده است ولی هزینه‌ی ریکاوری را از «چند ساعت debug کردن» به «چند ثانیه git reset» کاهش می‌دهد. در کلاس‌های آموزش Claude Code، این اولین نکته‌ای است که توسعه‌دهنده‌های تازه‌کار نادیده می‌گیرند و بعداً پشیمان می‌شوند.

اتصال به MCP servers برای گسترش ابزارها#

Model Context Protocol (MCP) یک پروتکل استاندارد برای اتصال مدل‌های زبانی به ابزارهای خارجی است. با MCP، Claude Code می‌تواند به database، APIهای خارجی یا toolهای custom تو متصل شود.

برای شروع، MCP serverهای built-in را فعال کن و سپس در صورت نیاز، serverهای custom بنویس. ساختار هر server در مستندات MCP توضیح داده شده است. نکته‌ی عملی: با یک server ساده شروع کن — مثلاً اتصال به filesystem. پیچیده‌سازی زودهنگام، رایج‌ترین اشتباه در اولین تجربه‌ی MCP است.

تکنیک‌های prompt engineering مخصوص Claude که خروجی را متحول می‌کند#

Claude با structured XML tags و system prompt مشخص بهتر کار می‌کند نه با پرامپت‌های چند هزار کلمه‌ای بدون ساختار. تکنیک‌های XML structured prompting و multi-turn context management تفاوت بین خروجی قابل‌استفاده و خروجی بی‌ربط را تعیین می‌کنند. Anthropic در مستندات خود تأکید دارد که Claude به XML tags حساسیت ویژه‌ای دارد و استفاده از آن‌ها به‌طور محسوس کیفیت خروجی را بالا می‌برد.

الگوی XML structured prompting با مثال#

به‌جای نوشتن پرامپت به‌صورت پاراگراف متنی، از XML tags برای تفکیک بخش‌ها استفاده کن:

<task>تغییر auth middleware برای پشتیبانی از JWT</task>
<constraints>
- فقط فایل src/middleware/auth.ts را تغییر بده
- test suite در tests/auth.test.ts باید pass بماند
- از library جدید استفاده نکن
</constraints>
<context>فایل فعلی: [paste]</context>

این الگو به مدل می‌گوید دقیقاً چه کار کند، محدودیت‌ها چیست و context کجاست. نتیجه: editهای دقیق‌تر و توهم کمتر. در گفتگوهای کامیونیتی، توسعه‌دهنده‌هایی که XML tags را جدی می‌گیرند، به‌طور محسوس round-trip کمتری نیاز دارند.

System prompt مؤثر در مقابل پرامپت‌های طولانی#

یک system prompt خوب، کوتاه و هدفمند است. «تو یک senior TypeScript developer هستی که فقط روی file X کار می‌کنی و باید testها را maintain کنی» مؤثرتر از یک پاراگراف ۵۰۰ کلمه‌ای با جزئیات غیرمرتبط است.

قاعده: هر جمله‌ی system prompt باید یک تصمیم عملی را تغییر دهد. اگر جمله‌ای هیچ تصمیمی را تغییر نمی‌دهد، حذفش کن. این قاعده ساده، حجم بسیاری از پرامپت‌های طولانی را بدون افت کیفیت کاهش می‌دهد.

Chain-of-thought reasoning و extended thinking#

Chain-of-thought (زنجیره‌ی تفکر) یعنی از مدل بخواهی قبل از پاسخ نهایی، reasoning خود را نشان دهد. Extended thinking این را در سطح مدل انجام می‌دهد. برای taskهای پیچیده، هر دو مفیدند. برای taskهای ساده، فقط هزینه و latency اضافه می‌کنند.

تفاوت عملی‌شان: chain-of-thought را تو در پرامپت درخواست می‌کنی و خروجی‌اش را می‌بینی. extended thinking در سطح مدل فعال می‌شود و reasoning پنهان است. برای debugging، دیدن reasoning (chain-of-thought) ارزشمندتر است. برای سرعت، extended thinking بهتر است چون توکن‌های کمتری مصرف می‌شود.

مدیریت token budget در مکالمه‌های طولانی#

در sessionهای طولانی، token budget به‌تدریج پر می‌شود. راه‌حل‌های عملی:

  • بین taskها session را reset کن
  • فقط فایل‌های مرتبط را در context نگه‌دار
  • از CLAUDE.md به‌جای paste کردن مستندات استفاده کن
  • خروجی‌های طولانی مدل را خلاصه کن و در context نگه‌دار

یک الگوی رایج در پروژه‌های بزرگ: بعد از هر ۳ تا ۴ task، session را reset کن و CLAUDE.md را دوباره load کن. این کار از «drift» مدل جلوگیری می‌کند — یعنی از اینکه مدل به‌تدریج از conventions فاصله بگیرد.

ساخت ایجنت‌های چندمرحله‌ای با Claude API و tool use#

Claude API با function calling و Model Context Protocol امکان ساخت ایجنت‌های multi-step را فراهم می‌کند. الگوی orchestrator با sub-agents که هرکدام روی یک module کار می‌کنند و نتایج merge می‌شوند، در نتایج فارسی‌زبان تقریباً وجود ندارد. این الگو برای پروژه‌هایی که taskهای بزرگ را به زیرtaskها تقسیم می‌کنند و هر زیرtask را به یک agent مستقل می‌دهند، مناسب است.

Tool use و function calling در Claude API#

Function calling به مدل اجازه می‌دهد در پاسخ، به‌جای متن، یک call ساختاریافته به tool مشخص تولید کند. مدل تصمیم می‌گیرد چه toolی، با چه arguments. سپس تو tool را اجرا می‌کنی و نتیجه را به مدل برمی‌گردانی.

ساختار request شامل تعریف tools (نام، توضیح، parameter schema) در ابتدای مکالمه است. مدل در پاسخ، tool_use block تولید می‌کند و تو باید آن را execute کنی. نکته‌ی ظریف: quality tool descriptions را جدی بگیر. اگر توضیح tool مبهم باشد، مدل arguments اشتباه تولید می‌کند و تو در یک loop بی‌پایان از retry گیر می‌کنی.

الگوی multi-agent orchestration#

در پروژه‌های بزرگ، یک agent نمی‌تواند همه‌چیز را handle کند. الگوی orchestrator:

  1. Orchestrator agent: task کلی را می‌خواند، به زیرtaskها تقسیم می‌کند و هرکدام را به module agent می‌دهد
  2. Module agents: هرکدام روی یک module یا فایل خاص کار می‌کنند
  3. Merge step: نتایج همه‌ی module agents جمع می‌شوند و conflict resolution انجام می‌گیرد

این الگو در پروژه‌های واقعی که از Claude API استفاده می‌کنند مشاهده شده، به‌ویژه در کارهایی مثل migration بین frameworkها یا refactoring یکپارچه‌ی چند module. چالش اصلی merge step است: وقتی دو module agent به‌طور همزمان یک interface مشترک را تغییر داده‌اند، conflict resolution باید هوشمند باشد.

Model Context Protocol (MCP) چیست و چرا برای ایجنت‌ها حیاتی است#

MCP یک پروتکل استاندارد است که بین مدل‌های زبانی و ابزارهای خارجی رابط می‌سازد. بدون MCP، هر tool integration باید دستی پیاده‌سازی شود. با MCP، هر server که این پروتکل را implement کند، به‌صورت plug-and-play قابل استفاده است.

برای ایجنت‌های چندمرحله‌ای، MCP حیاتی است چون agentها نیاز دارند به منابع مختلف (database، file system، APIها) متصل شوند بدون اینکه هر بار code جدید بنویسی. این یعنی یک module agent می‌تواند مستقیماً به production database وصل شود و schema را بخواند، بدون اینکه تو یک integration دستی بنویسی.

Claude Artifacts و Projects برای کار با فایل‌های مرجع#

در claude.ai، قابلیت Artifacts برای تولید خروجی‌های قابل مشاهده (کد، HTML، SVG) استفاده می‌شود. Projects امکان آپلود فایل‌های مرجع را می‌دهد که در هر مکالمه به‌صورت context استفاده می‌شوند. این‌ها برای non-developerها و کارهای سبک‌تر مناسب‌اند.

اما جایگزین Claude Code نیستند. اگر task تو شامل edit فایل‌های واقعی در repo است، Artifacts و Projects ابزار درستی نیستند. این تفکیک در گفتگوهای کامیونیتی مکرر برمی‌گردد — بعضی کاربران سعی می‌کنند با Projects همان کاری را بکنند که Claude Code انجام می‌دهد.

هزینه‌ی Claude API و اشتراک Pro/Max: چه زمانی کدام اقتصادی‌تر است؟#

برای پروژه‌های کوچک، Claude Pro یا API pay-as-you-go اقتصادی‌تر است. Claude Max فقط زمانی توجیه دارد که حجم کار روزانه‌ات از حد مشخصی بیشتر باشد. فرض اینکه همه باید Max بخرند، اشتباه رایجی است. برای قیمت‌های دقیق، صفحه‌ی pricing رسمی Anthropic را چک کن چون این اعداد تغییر می‌کنند. اما منطق کلی انتخاب ثابت است.

ساختار قیمت‌گذاری token-based#

Claude API بر اساس token محاسبه می‌شود. Input tokens (context تو) و output tokens (پاسخ مدل) هر کدام نرخ متفاوتی دارند. مدل‌های بزرگ‌تر گران‌ترند ولی context بیشتری دارند.

نکته‌ی عملی: اگر در پروژه‌ی بزرگی کار می‌کنی و هر بار حجم زیادی token input می‌فرستی، هزینه‌ی تو نسبت به کسی که با CLAUDE.md فقط خلاصه‌ای ساختاریافته می‌فرستد، چند برابر می‌شود. Context injection مؤثر مستقیماً هزینه را کاهش می‌دهد — نه فقط کیفیت را.

مقایسه‌ی عملی هزینه: refactor با و بدون context injection#

در یک refactor متوسط که ۱۰ فایل را درگیر می‌کند:

  • بدون CLAUDE.md: هر round-trip شامل paste کردن چندین فایل است. مدل گاهی اشتباه می‌کند و round-trip اضافه لازم است. هزینه‌ی کل بالاتر.
  • با CLAUDE.md: context اولیه کوچک‌تر است، مدل دقیق‌تر عمل می‌کند، round-trip کمتری لازم است. هزینه‌ی کل پایین‌تر.

این الگو در پروژه‌های واقعی تکرار شده: context injection مؤثر نه‌تنها کیفیت را بالا می‌برد، هزینه را هم کاهش می‌دهد. دو متغیر که معمولاً متضادند — کیفیت و هزینه — اینجا هم‌جهت‌اند.

چه زمانی Claude Max واقعاً ارزش خرید دارد#

اگر روزانه چندین ساعت با Claude Code کار می‌کنی، taskهای پیچیده‌ی multi-file داری، و از extended thinking استفاده می‌کنی، Max می‌تواند اقتصادی‌تر باشد. اما اگر هفته‌ای یک‌بار از Claude استفاده می‌کنی، Pro یا pay-as-you-go کافی است.

اشتباه پرهزینه‌تر از آن است که به‌نظر می‌رسد: بسیاری از کاربران Max می‌خرند «چون همه می‌خرند» و بعد می‌بینند که حجم کارشان به‌اندازه‌ی Pro است. قبل از خرید، یک هفته دقیقاً track کن چقدر استفاده می‌کنی.

اشتباهات رایج در Claude Code که هزینه‌ی پنهان دارند#

پنج اشتباه اصلی — paste بدون ساختار، نداشتن test suite، شروع بدون branch، نادیده‌گرفتن محدودیت‌های platform و استفاده‌ی صرفاً چت‌باکسی — هرکدام به‌تنهایی می‌توانند هزینه‌ی کار را چند برابر کنند یا خروجی کاملاً بی‌اعتبار بسازند. این اشتباهات در پروژه‌های واقعی اعضای کامیونیتی بارها تکرار شده و هر بار هزینه‌ی پنهانی داشته‌اند.

چند نسخه شبح‌وار از یک برنامه‌نویس در مسیرهای مختلف گره‌خورده و بن‌بست‌دار غرق می‌شوند
هر مسیر اشتباه یک هزینه‌ی پنهان است که در چت ساده دیده نمی‌شود اما در Claude Code به‌وضوح خودش را نشان می‌دهد.

توهم API در پروژه‌های بزرگ و راه‌حل#

بدون context دقیق، Claude Code شروع به صدا زدن functionهایی می‌کند که در پروژه‌ات وجود ندارند. این به‌ویژه در پروژه‌های بزرگ با APIهای custom رخ می‌دهد. راه‌حل: test suite معتبر + pre-commit type-checking. اگر تست وجود نداشته باشد، مدل «توهم» را به‌عنوان «کد صحیح» تولید می‌کند و تو متوجه نمی‌شوی تا deploy کنی.

این خطرناک‌ترین اشتباه در لیست است. باقی اشتباهات هزینه‌ی زمانی دارند، اما توهم API هزینه‌ی production دارد — یعنی باگ در محیط واقعی.

هزینه‌ی پنهان round-trip#

هر بار که مدل اشتباه می‌کند و تو feedback می‌دهی، یک round-trip اضافه است. بدون CLAUDE.md، تعداد round-tripها به‌طور محسوس بالا می‌رود. هر round-trip یعنی token بیشتر، latency بیشتر و هزینه‌ی بیشتر.

الگوی صحیح: context اولیه را درست بساز تا اولین attempt درست باشد. یک round-trip موفق بهتر از پنج round-trip اصلاحی است. این قاعده‌ی ساده، بیشتر توسعه‌دهنده‌ها را از «چت کردن با مدل» به «مهندسی context» تغییر می‌دهد.

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

Claude Code در زبان‌هایی که در داده‌ی آموزشی کمتر بوده‌اند — مثل Rust، Zig و Haskell — به‌طور محسوس ضعیف‌تر از TypeScript و Python عمل می‌کند. این محدودیت ذاتی مدل است نه ابزار.

اگر در پروژه‌ی Rust یا Zig کار می‌کنی، انتظارات واقع‌بینانه داشته باش و حتماً test suite قوی‌تری داشته باش. مدل در این زبان‌ها بیشتر توهم تولید می‌کند. این چیزی نیست که در تبلیغات ابزار گفته می‌شود، اما در گفتگوهای روزمره‌ی کامیونیتی به‌طور مکرر تأیید شده است.

نادیده‌گرفتن latency: چه زمانی Claude Code گزینه‌ی اشتباه است#

اگر به پاسخ فوری نیاز داری — مثلاً در یک pairing session یا debugging تعاملی — Claude Code گزینه‌ی اشتباه است. Agent loop ذاتاً کندتر از autocomplete است چون چندین step دارد. برای این موارد، Copilot یا Cursor مناسب‌ترند.

Claude Code برای taskهای async و batch مناسب است: «برو این refactor را انجام بده و وقتی تمام شد به من بگو». نه برای «الان این خط را اصلاح کن». این تفکیک در انتخاب ابزار، به‌اندازه‌ی خود انتخاب ابزار اهمیت دارد.

جمع‌بندی: از دمو تا workflow واقعی#

Claude Code وقتی شکست می‌خورد که مثل چت با آن رفتار کنی. وقتی موفق می‌شود که مثل یک tool در workflow ساختاریافته‌ات به آن نگاه کنی. CLAUDE.md، branch discipline و structured prompting سه ستون اصلی‌اند که بدون هیچ‌کدام، خروجی در حد دمو می‌ماند.

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