پرش به محتوای اصلی
پرش به محتوای مقاله

تولید نرم‌افزار با «حس»؛ چرا Vibe Coding امنیت سامانه‌ها را به خطر می‌اندازد؟

·۵ تیر ۱۴۰۵۶ دقیقه مطالعه۱ بازدید
تحلیل
برنامه‌نویسی وایبی توسعه نرم‌افزار نیست — و دارد خودش را نشان می‌دهد
برنامه‌نویسی وایبی توسعه نرم‌افزار نیست — و دارد خودش را نشان می‌دهد
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

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

تصور کنید صاحب کسب‌وکاری هستید که اخیراً محصولی زنده و کاربردی را تنها با کمک مدل Claude روانه بازار کرده است. او این کار را بدون دانستن زبان برنامه‌نویسی بک-اند، نوع پایگاه داده یا حتی نحوه عملکرد مکانیسم‌های احراز هویت (Authentication) انجام داده است. او کاملاً بر روشی تکیه کرده است که اندرو کارپاتی آن را Vibe Coding (برنامه‌نویسی بر اساس حس) نامیده است؛ اصطلاحی برای توصیف ساخت نرم‌افزار از طریق پرامپت‌های هوش مصنوعی، بدون خواندن یا درک کدهای تولیدشده.

این رویکرد توهمی خطرناک از پیشرفت ایجاد می‌کند: نرم‌افزار در مسیرهای ساده و ایده‌آل (Happy Path) به‌سادگی کار می‌کند، اما سازنده تا لحظه انفجار سیستم، نسبت به فضای داخلی موتور کاملاً نابیناست. در این مورد خاص، برنامه صرفاً یک پروتوتایپ یا دمو نبود، بلکه یک محصول واقعی با کاربران واقعی و داده‌های واقعی بود؛ یعنی یک کسب‌وکار روی سیستمی اداره می‌شد که مالک آن نمی‌توانست نحوه کارکردش را برای هیچ انسان دیگری توصیف کند.

این روند دقیقاً زمانی رخ می‌دهد که هوش مصنوعی خلق نرم‌افزار را برای مؤسسان غیرفنی دموکراتیزه می‌کند. همان‌طور که در تحلیل‌های پیشین ما درباره‌ی این موضوع که چگونه کتابخانه‌های پرامپت ماژولار می‌توانند وظایف پیچیده‌ای مانند سئو (SEO) و برنامه‌ریزی سفرها را خودکار کنند اشاره کردیم، اکنون سد ورود برای عرضه محصولات دیجیتال کاملاً شکسته شده است. این تسهیلات در دسترس‌ترین حالت خود را در ابزارهای جدیدی برای ساخت اپلیکیشن‌های کامل با زبان طبیعی یافته‌اند که فاصله میان ایده و اجرا را به حداقل رسانده‌اند. بسیاری از کاربران حالا با هوش مصنوعی مانند یک معمار رفتار می‌کنند، نه یک پیمانکار؛ و به همین دلیل، سال‌ها تجربه مهندسی بنیادین که باعث ایجاد تشخیص الگوهای ضروری می‌شود را نادیده می‌گیرند.

توهم کد «سالم»

به نقل از گزارشی در ۲۶ ژوئن ۲۰۲۶ در وب‌سایت dev.to، خطر اصلی این نیست که مدل‌هایی مثل GPT-5 کدهای بد می‌نویسند. در واقع، این مدل‌ها اغلب کدهایی تمیز، استاندارد و اصطلاحاً Idiomatic برای مسائل تعریف‌شده تولید می‌کنند. ریسک واقعی، نبودِ کاملِ درک در تمام لایه‌های سیستم است. جذاب‌ترین بخش Vibe Coding این است که نرم‌افزار سریعاً «کار می‌کند»؛ شما می‌توانید در محیط برنامه کلیک کنید و ببینید که دقیقاً همان اتفاقی می‌افتد که توصیف کرده بودید.

با این حال، شکاف عمیقی میان «کار کردن در دمو» و «آماده بودن برای محیط تولید» (Production-ready) وجود دارد. این شکاف تنها در شرایط استرس‌زای دنیای واقعی، تحت یک حمله هدفمند یا در هنگام بار ترافیکی شدید (Heavy Load) نمایان می‌شود. وقتی سیستمی که بر اساس «حس» ساخته شده به دیوار محیط تولید برخورد می‌کند، فقدان تخصص در چهار نقطه بحرانی و مشخص خودش را نشان می‌دهد:

  • آسیب‌پذیری‌های امنیتی: مدل‌های هوش مصنوعی ذاتاً خوش‌بین هستند. آن‌ها برای مسیر موفقیت کد می‌زنند و اغلب ورودی‌های خصمانه (Adversarial Inputs)، پیش‌فرض‌های ناامن یا کنترل‌های دسترسی شکسته را نادیده می‌گیرند. این موضوع می‌تواند منجر به آسیب‌پذیری‌های IDOR شود، زیرا هوش مصنوعی هرگز به این فکر نمی‌کند که پرس‌وجوها (Queries) را بر اساس کاربر احرازهویت‌شده محدود کند.
  • گلوگاه‌های مقیاس‌پذیری: سیستم ممکن است تحت فشار کرش کند یا با خطای Time-out مواجه شود، زیرا هوش مصنوعی فراموش کرده است ایندکس‌های لازم را روی ستون‌هایی که در پایگاه داده مورد پرس‌وجو هستند، قرار دهد.
  • بدهی نگهداری: غیربرنامه‌نویسان نمی‌توانند ارزیابی کنند که آیا پروژه در حال فراخوانی وابستگی‌های تکراری (Redundant Dependencies) است یا از بسته‌ها و کتابخانه‌هایی استفاده می‌کند که دیگر توسط توسعه‌دهندگان پشتیبانی نمی‌شوند.
  • نابینایی سیستمی: وقتی برنامه در نهایت خراب شود — که قطعاً چنین اتفاقی می‌افتد — برنامه‌نویسِ حسی هیچ ایده‌ای ندارد که برای یافتن خطا کجا را نگاه کند، چون اصلاً نمی‌داند موتور برنامه چگونه می‌چرخد.

چرا مستندات فنی راهکار قطعی نیستند؟

برخی معتقدند «توسعه مبتنی بر مشخصات» (Spec-driven development) — یعنی نوشتن یک مدل داده مفصل، تعریف مرزهای احراز هویت و ایجاد یک قرارداد API پیش از شروع — این ریسک‌ها را حل می‌کند. این یک روش بهتر است و به هر کسی که از کمک AI استفاده می‌کند توصیه می‌شود. با این حال، یک مستند (Spec) تنها به اندازه درکِ نویسنده‌اش ارزشمند است.

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

  • شرایط مسابقه (Race Conditions) که پیش‌بینی نشده‌اند.
  • شکاف‌ها در مدل مجوزهای دسترسی (Authorization Model).
  • ساختارهای داده‌ای که در زمان حذف رکوردها با شکست مواجه می‌شوند.
  • فرضيات کشینگ (Caching) که در زمان نوشتن‌های هم‌زمان (Concurrent Writes) می‌شکنند.

تأیید اینکه آیا اجرای مدل هوش مصنوعی واقعاً با یک مستند فنی متقاعدکننده مطابقت دارد، نیازمند همان قضاوت مهندسی است که Vibe Coding آن را دور می‌زند. این دانش سال‌ها زمان می‌برد تا ساخته شود و نمی‌توان آن را میان‌بر زد یا نادیده گرفت. توسعه مبتنی بر مشخصات تنها مشکل ریسک را جابه‌جا می‌کند، اما آن را حذف نمی‌کند.

ایستگاه بازرسی انسانی

عرضه نرم‌افزاری که با داده‌های واقعی سروکار دارد و نیازمند امنیت واقعی است، مستلزم وجود انسانی است که مهندسی نرم‌افزار را بفهمد تا به عنوان آخرین ایستگاه بازرسی عمل کند. هوش مصنوعی می‌تواند یک ضرب‌کننده بهره‌وری عظیم باشد، اما نمی‌تواند جایگزین قضاوت (Judgment) شود. یک مهندس حرفه‌ای باید چهار بازبینی حیاتی انجام دهد:

۱. بازبینی معماری: تحلیل اینکه آیا ساختار سیستم پایدار خواهد بود و آیا مرزهای بین اجزا منطقی هستند یا خیر. هدف این است که اطمینان حاصل شود سیستم در افق زمانی ۱۲ ماهه قابل نگهداری باقی می‌ماند.
۲. بازرسی امنیتی: تفکر مانند یک مهاجم برای شکار کنترل‌های دسترسی شکسته و آسیب‌پذیری‌هایی که هوش مصنوعی از قلم انداخته است.
۳. بررسی مقیاس‌پذیری: شناسایی گلوگاه‌های بدیهی و اطمینان از اینکه پرس‌وجوهای پایگاه داده منطقی هستند، پیش از آنکه سیستم به ۱۰ برابر بار فعلی خود برسد.
۴. حسابرسی وابستگی‌ها: بررسی هر بسته برای آسیب‌پذیری‌های شناخته‌شده و تعیین اینکه آیا پروژه واقعاً به تمام کتابخانه‌هایی که فراخوانی شده‌اند نیاز دارد یا خیر.

تفاوت این دو حالت شبیه تفاوت جراحی توسط یک جراح با استفاده از سیستم رباتیک در مقابل کسی است که سعی می‌کند بعد از دیدن یک آموزش یوتیوب جراحی کند. ابزار، تخصص نمی‌بخشد؛ بلکه تخصص است که نحوه استفاده از ابزار را شکل می‌دهد. مهندس می‌داند چه زمانی پیشنهاد AI را رد کند و تشخیص دهد که یک راهکار تولیدشده بیش از حد ساده‌انگاشته (Naive) است و نیاز به بازطراحی کامل دارد.

برای غیربرنامه‌نویسان، مسیر مسئولانه این است که از هوش مصنوعی برای نمونه‌سازی (Prototyping)، اکتشاف و آزمایش‌های آخر هفته استفاده کنند. این‌ها فعالیت‌های کم‌ریسک هستند. اما پیش از انتقال به محیط تولید، آن‌ها باید یک مهندس نرم‌افزار را به عنوان یک ایستگاه بازرسی دائمی استخدام کنند، نه فقط برای یک بازرسی یک‌باره. خطرناک‌ترین وضعیت در عصر فعلی هوش مصنوعی، داشتن «اعتماد بدون درک» است.

اگر شما مهندسی هستید که از شما خواسته شده یک سیستم Vibe-coded را بازبینی کنید، با دقت نگاه کنید. شکاف‌ها تقریباً همیشه دقیقاً در جایی هستند که انتظار دارید: در مدیریت ورودی‌ها، تعیین محدوده داده‌ها (Data Scoping) و موارد مربوط به خطاها. مسیر موفقیت (Happy Path) معمولاً کار می‌کند، اما هر چیز دیگری یک قمار است. به محض وقوع یک حادثه در دنیای واقعی، «حس‌ها» دیگر کار نمی‌کنند. تنها چیزی که پوشش واقعی ایجاد می‌کند، قضاوت مهندسی است.

گام بعدی شما

  • اگر غیرفنی هستید، از AI برای ساخت MVP استفاده کنید اما پیش از جذب کاربر واقعی، یک Audit فنی جامع بگیرید.
  • اگر مهندس هستید و سیستمی Vibe-coded را بازبینی می‌کنید، مستقیماً سراغ مدیریت ورودی‌ها و لایه‌های دسترسی بروید؛ احتمالاً حفره‌ها آنجاست.
  • یاد بگیرید چگونه «مستندات فنی» را به جای «پرامپت‌های بلند»، به عنوان ورودی به مدل بدهید تا خطاهای معماری کاهش یابد.

اما ابزارهای جدیدی در راهند که سعی می‌کنند خودشان نقش این بازرس انسانی را بازی کنند — در تحلیل ما درباره‌ی مدل‌های استدلالی (Reasoning Models) بررسی کنید که آیا آن‌ها می‌توانند جایگزین قضاوت مهندسی شوند یا خیر.

چرا این موضوع مهم است؟

این پدیده تخصص مهندسی را از «نوشتن کد» به «بازبینی و قضاوت» منتقل می‌کند. اعتبار سیستم‌های نرم‌افزاری اکنون دیگر به توانایی تولید کد نیست، بلکه به تخصص انسانی در شناسایی لبه‌های شکست (Edge Cases) وابسته است.

تأثیر برای ایران

برای توسعه‌دهندگان ایرانی که به دلیل محدودیت منابع، بیشتر از ابزارهای AI برای سرعت بخشیدن به پروژه‌ها استفاده می‌کنند، این هشدار حیاتی است تا در مراحل نهایی، بازبینی انسانی را فدای سرعت نکنند.

·نگاه ما
تحریریه دات‌هوش

Vibe Coding در واقع انتقال ریسک از «زمان توسعه» به «زمان اجرا» است. ما با پدیده‌ای روبه‌رو هستیم که در آن سرعتِ عرضه محصول (Time-to-Market) به قیمت نابودی استانداردهای پایداری تمام می‌شود. این روند باعث می‌شود در آینده با موجی از «بدهی‌های فنی» (Technical Debt) عظیم روبرو شویم که پاکسازی آن‌ها برای تیم‌های مهندسی بسیار دشوارتر از ساخت اولیه خواهد بود.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.