ویرگول
ورودثبت نام
صابر طباطبائی یزدی
صابر طباطبائی یزدیبرنامه نویس۴۴ساله. از مدرک MCSD دات نت سال 2002 شروع کردم البته بعد از لیسانس و تمام عمرم رو در مدیریت با ابزار های شیرپوینت و MSPS و CRM و غیره گذراندم. https://zil.ink/sabert
صابر طباطبائی یزدی
صابر طباطبائی یزدی
خواندن ۷ دقیقه·۳ ماه پیش

چگونه یک ابزار هوش مصنوعی، روش کدنویسی من را متحول کرد: ۷ درس شگفت‌انگیز از Cursor.

این ویدئوی آموزشی که نمیتوانم آن را منتشر کنم، به بررسی ابزار کرسر می‌پردازد که یک محیط توسعه یکپارچه (IDE) مبتنی بر هوش مصنوعی برای کدنویسی است.

اما میتوانم محتوای آن را با هوش مصنوعی برای شما خلاصه کنم.

یک ویدیو یک ساعته که میتوانید در 5 دقیقه کل آن را سریع مرور کنید.

پس با من تا آخر همراه باشید.

سخنران توضیح می‌دهد که چگونه کرسر با ارائه قابلیت‌هایی مانند پرسش از کد (Ask)، برنامه‌ریزی تغییرات (Plan)، و اجرای مستقیم توسط عامل هوشمند (Agent Mode)، فراتر از مدل‌های زبانی ساده مانند ChatGPT عمل می‌کند. تمرکز اصلی بر روی مزایای استفاده از کرسر در فرآیند توسعه، از جمله بهبود سرعت کدنویسی، بازبینی خودکار درخواست‌های ادغام (Pull Requests)، و امکان تعریف قوانین و استانداردهای کدنویسی سفارشی (Cursor Rules) برای هوش مصنوعی است. همچنین به قابلیت تعریف دستورات سفارشی (Custom Commands) و برتری‌های کرسر نسبت به سایر ابزارهای هوش مصنوعی در محیط‌های توسعه به دلیل پشتیبانی بهتر و عدم وجود محدودیت‌های تحریمی اشاره می‌شود.

مقدمه: فراتر از یک چت‌بات ساده

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

اما نسل جدیدی از ابزارهای هوش مصنوعی در حال ظهور است که به صورت «ایجنتیک» (Agentic) عمل می‌کنند. این ابزارها دیگر یک چت‌بات جانبی نیستند، بلکه به طور کامل در محیط توسعه (IDE) ادغام می‌شوند و مانند یک همکار برنامه‌نویس، به تمام فایل‌های پروژه دسترسی دارند و آن‌ها را درک می‌کنند.

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

--------------------------------------------------------------------------------

۱. هوش مصنوعی به عنوان یک هم‌تیمی، نه یک ابزار جانبی

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

دیگر نیازی به کپی-پیست کردن کلاس‌ها و مدل‌ها برای توضیح دادن ساختار پروژه نیست. Cursor به تنهایی می‌تواند فایل‌های مرتبط را پیدا کرده و با درک کامل از وابستگی‌ها، وظیفه محول شده را انجام دهد. درک این تفاوت، کلید استفاده موثر از پتانسیل واقعی این ابزار است.

۲. کنترل کامل در دستان شماست: اول «نقشه» را ببینید، بعد «اجرا» کنید

یکی از بزرگ‌ترین نگرانی‌ها در استفاده از هوش مصنوعی برای تغییر کد، ترس از ایجاد تغییرات ناخواسته یا نادرست است. Cursor با ارائه سه حالت تعامل اصلی این مشکل را حل می‌کند: Ask (پرسش و پاسخ)، Plan (ارائه نقشه) و Agent (اجرای مستقیم).

حالت Plan یک ویژگی کلیدی برای وظایف پیچیده است. وقتی شما یک درخواست ریفکتورینگ یا پیاده‌سازی یک قابلیت جدید را در این حالت مطرح می‌کنید، Cursor بلافاصله کد را تغییر نمی‌دهد. در عوض، یک «نقشه» دقیق و گام‌به‌گام از کارهایی که قصد دارد انجام دهد، ارائه می‌کند. این نقشه شامل ایجاد کلاس‌های جدید، تغییر اینترفیس‌ها، و حتی به‌روزرسانی تست‌های مرتبط است. شما می‌توانید این نقشه را بررسی، اصلاح یا رد کنید. این رویکرد، کنترل کامل را به شما می‌دهد و اطمینان حاصل می‌کند که هیچ تغییری بدون تایید شما اعمال نخواهد شد.

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

۳. بازبینی Pull Request از نگاه سه متخصص: توسعه‌دهنده، معمار و توسعه‌دهنده ارشد

شاید شگفت‌انگیزترین قابلیت Cursor، توانایی آن در بازبینی خودکار Pull Requestها (PR) از دیدگاه‌های مختلف باشد. با یک پرامپت ساده، می‌توانید از هوش مصنوعی بخواهید که تغییرات را از سه منظر تخصصی تحلیل کند:

  • به عنوان یک توسعه‌دهنده (Developer): خلاصه‌ای از تغییرات اصلی و قابلیت‌های پیاده‌سازی شده را ارائه می‌دهد تا یک دید کلی و سریع از محتوای PR به دست آورید.

  • به عنوان یک معمار نرم‌افزار (Software Architect): تغییرات را بر اساس اصول معماری مانند Cohesion و Coupling تحلیل می‌کند و به شما می‌گوید که آیا دیزاین سیستم بهبود یافته یا الگوهای نامناسبی (Anti-patterns) به کد اضافه شده است.

  • به عنوان یک توسعه‌دهنده ارشد (Senior Developer): کد را برای آماده بودن جهت استقرار در محیط پروداکشن موشکافی می‌کند. این تحلیل فراتر از بررسی‌های معمول است و روی مواردی مانند مشکلات SonarQube و به خصوص هشدارهای سرکوب‌شده (Suppressed Warnings) متمرکز می‌شود و می‌پرسد «چرا این هشدار نادیده گرفته شده است؟»

این ویژگی نه تنها فرآیند بازبینی کد را به شدت تسریع می‌کند، بلکه دیدگاه‌هایی را فراهم می‌آورد که ممکن است توسط یک بازبین انسانی نادیده گرفته شوند.

۴. می‌توانید «قوانین پروژه» را به هوش مصنوعی آموزش دهید

هر پروژه، قوانین و استانداردهای خاص خود را دارد. Cursor به شما اجازه می‌دهد تا این قوانین را از طریق فایل‌های .cursor-rules به هوش مصنوعی آموزش دهید. این فایل‌ها که با فرمت ساده Markdown نوشته می‌شوند، می‌توانند شامل موارد بسیار مشخصی باشند، مانند:

  • اصول مربوط به کیفیت کد (Code Quality)

  • روش‌های شناسایی و رفع کد اِسمل‌ها (Code Smells)

  • تکنیک‌های استاندارد برای ریفکتورینگ

  • دیزاین پترن‌های مورد تایید در پروژه

این فرآیند می‌تواند تکرارشونده باشد. اگر هوش مصنوعی کدی تولید کرد که با استانداردهای شما مغایرت داشت، می‌توانید آن را اصلاح کرده و سپس قانون مربوط به آن اصلاح را به مجموعه قوانین اضافه کنید. با این کار، تضمین می‌کنید که کدهای تولید شده توسط AI همیشه با کیفیت، سازگار و منطبق بر استانداردهای منحصر به فرد پروژه شما هستند.

۵. افزایش بهره‌وری ۵ برابری یک ادعا نیست، یک واقعیت است

شاید ادعای افزایش بهره‌وری چند برابری کمی اغراق‌آمیز به نظر برسد، اما تجربه واقعی این موضوع را ثابت می‌کند. در یک پروژه پیچیده با زبان #C که بیش از ۵۰۰ تست واحد داشت، بیش از ۹۰ درصد کدها به طور کامل توسط Cursor نوشته شد. نتیجه این تجربه، یک جهش چشمگیر در سرعت توسعه بود.

کاری که مثلاً یک هفته احتمالاً طول می‌کشید نصف روز یک روز از من زمان گرفت و سرعتم حداقل پنج تا شش برابر شد.

این سطح از بهره‌وری، هوش مصنوعی را از یک ابزار «جالب» و «سرگرم‌کننده» به یک ابزار ضروری و توانمندساز تبدیل می‌کند که می‌تواند به طور معناداری زمان توسعه را کاهش دهد.

۶. دستورات تکراری را به کامندهای سفارشی تبدیل کنید

بسیاری از کارهای روزمره ما، مانند نوشتن خلاصه برای توضیحات Pull Request، شامل نوشتن پرامپت‌های تکراری است. Cursor به شما این امکان را می‌دهد که این پرامپت‌های طولانی را یک بار به عنوان یک «کامند سفارشی» تعریف کنید و بارها از آن استفاده نمایید.

برای مثال، می‌توان یک کامند به نام /summary-pr ایجاد کرد که به طور خودکار شاخه فعلی را با شاخه master مقایسه کرده و یک عنوان کوتاه به همراه یک پاراگراف توضیحی برای PR تولید کند. این قابلیت، وظایف روتین مستندسازی و ارتباطی را خودکار کرده و به افزایش هرچه بیشتر بهره‌وری کمک شایانی می‌کند.

۷. چالش‌های تحریم و راه‌اندازی پیچیده را فراموش کنید

برای توسعه‌دهندگان ایرانی، یکی از بزرگ‌ترین موانع استفاده از ابزارهای هوش مصنوعی، مشکلات مربوط به تحریم، نیاز به VPN و فرآیندهای پیچیده راه‌اندازی است. Cursor از این نظر یک مزیت عملی و بسیار مهم دارد:

  • بدون نیاز به VPN یا ابزارهای تغییر IP کار می‌کند.

  • خرید اشتراک آن ساده است و حساب‌های کاربری به دلیل موقعیت جغرافیایی مسدود نمی‌شوند.

  • یک اشتراک واحد، دسترسی به چندین مدل زبانی قدرتمند (مانند مدل‌های مختلف GPT) را فراهم می‌کند.

این مزایای عملی، Cursor را به گزینه‌ای قابل اعتماد و دسترس‌پذیر تبدیل می‌کند، به خصوص در مقایسه با چالش‌های راه‌اندازی پلاگین‌های مشابه روی IDEهای دیگر مانند JetBrains که با مشکلاتی نظیر مسدود شدن حساب‌ها مواجه هستند.

--------------------------------------------------------------------------------

نتیجه‌گیری: نقش جدید ما در عصر هوش مصنوعی

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

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

هوش مصنوعیمهندسی پرامپتپرامپتai
۱۲
۱
صابر طباطبائی یزدی
صابر طباطبائی یزدی
برنامه نویس۴۴ساله. از مدرک MCSD دات نت سال 2002 شروع کردم البته بعد از لیسانس و تمام عمرم رو در مدیریت با ابزار های شیرپوینت و MSPS و CRM و غیره گذراندم. https://zil.ink/sabert
شاید از این پست‌ها خوشتان بیاید