اگر امروز از Cursor برای توسعه پروژههای .NET استفاده میکنید، احتمالاً متوجه شدهاید که کدها در ابتدا عالی به نظر میرسند اما بهسرعت به «آشغالهای هوش مصنوعی» (AI Slop) تبدیل میشوند. شما باید از نقش یک کدنویس ساده به یک بازبین سختگیر تغییر جایگاه دهید تا از فروپاشی معماری سیستم جلوگیری کنید.
استفاده از مدل زبانی بزرگ (LLM) — مثل کتابخانهداری که میلیاردها صفحه را خوانده و حالا با همان لحن کتابها جواب میدهد — بدون داشتن محدودیتهای سختگیرانه، اغلب منجر به پسرفتهای معماری در محیطهای عملیاتی میشود. همانطور که در تحلیل قبلی ما دربارهی امنیت مدلهای بازمتن اشاره کردیم، اعتماد کورکورانه به خروجی مدلها بدون لایهی نظارتی، ریسکهای بلندمدتی دارد. طبق گزارش وبلاگ Agentic Architect در هفتهی منتهی به ۵ جولای ۲۰۲۶، مدلهای مدرن کدنویسی را بیشتر به عنوان یک تمرین «تطبیق الگو» میبینند تا یک طراحی معماری؛ به همین دلیل اغلب طول عمر تزریق وابستگی (Dependency Injection) یا مرزهای لایهای را نادیده میگیرند. این چالشها در حالی رخ میدهد که اتوماسیونهای Cursor در حال سادهسازی مدیریت تکراری مخزن کد برای توسعهدهندگان هستند، اما همچنان نیاز به نظارت معماری را برجسته میکنند.
به گزارش dev.to، این قواعد جدید بر سه رکن اصلی استوار هستند:
مرزهای معماری
- الگوی Result: بهجای استفاده از null برای کنترل جریان، از یک شیء Result استفاده کنید تا مدل مجبور شود حالتهای موفقیت یا شکست را صریحاً مدیریت کند.
- مرزهای ماندگاری (Persistence): تمام دسترسیهای IQueryable باید در لایهی زیرساخت (Infrastructure) باقی بماند؛ هوش مصنوعی نباید هرگز منطق پایگاهداده را در کنترلرها بنویسد.
- سرویسهای پسزمینه: برای کارهای طولانیمدت از
BackgroundServiceاستفاده کنید. هوش مصنوعی اغلب بهاشتباهTask.Runرا در کنترلرها پیشنهاد میدهد که منجر به مرگ غیرمنتظرهی رشتههای درخواست میشود.
دقت فنی
- محدودیتهای ValueTask: مگر در مواردی که متد اساساً همگام (Synchronous) است،
ValueTaskرا بهTaskبازگردانید؛ چراکه Cursor این دو را بدون تفکیک درست جابهجا میکند. - امضاهای Type-Safe: پرچمهای boolean (مثل
bool isHtml) را با متدهای مجزا مثلSendHtmlEmailوSendPlainEmailجایگزین کنید تا منطق شرطی پنهان نشود.
قابلیت رصد (Observability)
- لاگگیری ساختاریافته: از
ILoggerبا قالبهای ساختاریافته بهجای درونیابی رشتهها استفاده کنید تا مدل در زمان عیبیابی بتواند الگوها را تشخیص دهد. - OpenTelemetry: برای هر پروژه یک
ActivitySourceایستا و فقط-خواند تعریف کنید، زیرا Cursor بهندرت استفاده از OTEL spans را بهطور خودکار پیشنهاد میدهد.

این رویکرد باعث میشود توسعهدهنده به جای نوشتن کد، بر اجرای یک «قرارداد معماری» نظارت کند. با محدود کردن آزادی عمل مدل، مهندسان تضمین میکنند که هوش مصنوعی زاینده (Generative AI) به خلوص منطق تجاری و پایداری خط لوله درخواستها احترام میگذارد.
گام بعدی شما
- فایل قوانین رایگان
arch-core-lite.mdcرا از گیتهاب دانلود و در پروژه خود فعال کنید تا این محدودیتها خودکار شوند. - در پرامپتهای خود بهجای «کد این ویژگی را بنویس»، از عبارت «با رعایت مرزهای لایهی Infrastructure، این ویژگی را پیادهسازی کن» استفاده کنید.
- خروجیهای Cursor را با تمرکز بر تضاد بین Task و ValueTask بازبینی کنید.
اما سوال اصلی اینجاست که آیا چند فایل تنظیمات ساده میتوانند جایگزین تجربه و بصیرت یک معمار ارشد انسانی شوند یا خیر؛ پاسخی که شاید در بررسیهای آینده دربارهی مدلهای استدلالی پیدا کنیم.




گفتگو