← 返回列表

آموزش سری Claude Code قسمت ۳: چرا فقط ترمینال؟

۱.۳ چرا باید در ترمینال کد بنویسیم؟

مثلاً: شما در حال نوشتن یک قابلیت جدید هستید و ناگهان متوجه می‌شوید که باید یک تابع ابزار سطح پایین را تغییر دهید که در سه فایل پراکنده شده است و برخی فراخوانی‌ها از ماژول‌ها عبور می‌کنند. ویرایشگر را باز می‌کنید، جستجوی سراسری انجام می‌دهید، فایل به فایل ورق می‌زنید، با دقت تغییر می‌دهید و سپس تست را اجرا می‌کنید — قرمز شد. خطا را نگاه می‌کنید، پشته را بررسی می‌کنید، تعمیر می‌کنید و دوباره تکرار می‌کنید.

در این فرآیند، زمانی که واقعاً صرف «فکر کردن به نحوه تغییر» می‌شود، احتمالاً کمتر از نصف است. نصف دیگر کارهای مکانیکی است: پیدا کردن فایل‌ها، تغییر ارجاعات، منتظر ماندن برای کامپایل، کلیک کردن با ماوس.

هدف اصلی قرار دادن هوش مصنوعی در ترمینال، فشرده‌سازی این کارهای مکانیکی است.

ترمینال نزدیک‌ترین مکان به کد است

ممکن است از VS Code، JetBrains یا Vim استفاده کنید. مهم نیست از کدام استفاده می‌کنید، در فرآیند نوشتن کد، نمی‌توانید از ترمینال فرار کنید. اجرای npm test، git log، grep، make build — این عملیات به طور طبیعی در خط فرمان انجام می‌شوند.

پس اگر همکار هوش مصنوعی شما نیز در همان ترمینال نشسته باشد، کار ساده‌تر می‌شود. نیازی نیست محتوای فایل را کپی و در پنجره چت پیست کنید، نیازی نیست خودتان توصیف کنید «در پروژه من یک کلاس به نام UserService وجود دارد که در خط ۴۲ src/services/user.ts است...». Claude Code در ریشه پروژه ایستاده و خودش می‌بیند.

این یک برتری در زمینه است. وقتی به Claude Code می‌گویید «لطفاً مدیریت خطاهای ماژول ورود را بازنویسی کن»، واقعاً auth/login.ts شما را می‌خواند، errors.ts را می‌خواند، همه جاهایی که از آن استفاده شده را پیدا می‌کند و مستقیماً تغییر می‌دهد. در این میان نیازی نیست شما نقش انتقال‌دهنده را بازی کنید.

شما را از نقش «اپراتور» آزاد می‌کند

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

طراحی Claude Code به گونه‌ای است که شما را دوباره به جایگاه «متفکر» بازمی‌گرداند. شما ایده را می‌گویید، آن عمل می‌کند. پس از تغییر، مستقیماً در ترمینال diff را می‌بینید و تصمیم می‌گیرید که آیا قبول کنید یا نه. همچنین می‌تواند به راحتی تست‌ها را اجرا کند، lint را اجرا کند. شما بیشتر زمان را صرف خواندن کد و تصمیم‌گیری می‌کنید، نه جابجایی مکرر بین پنجره‌ها.

چرا افزونه ویرایشگر نه؟

ممکن است بپرسید: پس چرا مستقیماً در ویرایشگر یک افزونه هوش مصنوعی راه‌اندازی نکنیم؟

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

  1. بدون محدودیت ویرایشگر. شما امروز از VS Code استفاده می‌کنید، فردا به Neovim تغییر می‌دهید، حتی در سرور راه دور بدون رابط کاربری گرافیکی، Claude Code قابل استفاده است. این به ابزار انتخابی شما وابسته نیست.
  2. می‌تواند کارهای «خارج از چارچوب» بیشتری انجام دهد. در ترمینال، می‌تواند هر دستور Shell را اجرا کند. این به معنای مرز وسیع‌تری از کارهایی است که می‌تواند انجام دهد — می‌تواند کانتینر Docker را برای تأیید مهاجرت پایگاه داده راه‌اندازی کند، می‌تواند شاخه راه دور را بگیرد و تضادها را بررسی کند، می‌تواند پس از تغییر کد به طور خودکار تست‌های e2e را اجرا کند. این کارها را افزونه‌های ویرایشگر معمولاً جرات انجام نمی‌دهند یا اصلاً نمی‌توانند انجام دهند.
  3. پردازش دسته‌ای و اتوماسیون. می‌توانید Claude Code را در اسکریپت‌ها قرار دهید تا به شما در پردازش ده‌ها مخزن، تولید انبوه مستندات و مدیریت خودکار Issues کمک کند. در این حالت دیگر یک «دستیار» نیست، بلکه بخشی از خط لوله است.

یک مثال کوچک از خودم

قبلاً نیاز داشتم یک پروژه JavaScript را به TypeScript منتقل کنم، حدود بیست هزار خط کد. روش من این نبود که به صورت دستی فایل به فایل تایپ اضافه کنم یا انتظار داشته باشم یک افزونه ویرایشگر همه کار را برایم انجام دهد.

مستقیماً در دایرکتوری آن پروژه Claude Code را راه‌اندازی کردم و به آن گفتم: «این پروژه را به تدریج به حالت سخت‌گیرانه TypeScript منتقل کن، هر بار چند فایل را تغییر بده، بعد از هر دسته tsc --noEmit را اجرا کن، اگر خطا داشت خودت درستش کن تا همه عبور کنند.»

در نیم ساعت بعدی، من اساساً فقط یک کار انجام دادم: نگاه کردن به diffهای اصلاح شده، تکان دادن سر (تأیید) یا خیر. گاهی به آن می‌گفتم «اینجا از نوع any استفاده نکن، یک interface تعریف کن»، و آن به کار خود ادامه می‌داد. در نهایت پروژه کامپایل شد و چندین برابر سریع‌تر از تخمین من بود.

این بدان معنا نیست که Claude Code از افزونه باهوش‌تر است. اما می‌تواند خودش چرخه «تغییر-تأیید-رفع» را کامل کند، این تفاوت اساسی آن با هوش مصنوعی گفتگویی است.

در نهایت، ترمینال به هوش مصنوعی دست و پا می‌دهد

قرار دادن هوش مصنوعی در ترمینال، اساساً به آن قدرت اجرا می‌دهد، نه فقط قدرت پیشنهاد.

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

شما همچنان جهت پروژه و تمام تصمیمات کلیدی را در دست دارید، اما آن کارهای خسته‌کننده، کم‌خلاقیت و نیازمند جابجایی مکرر، مجری مناسب‌تری پیدا کرده‌اند.

评论

暂无已展示的评论。

发表评论(匿名)