iAct

Act on Ai

یه ایده دارم ولی کد بلد نیستم؛ با هوش مصنوعی می‌تونم یه اپلیکیشن واقعی بسازم؟


یه ایده دارم ولی کد بلد نیستم؛ با هوش مصنوعی می‌تونم یه اپلیکیشن واقعی بسازم؟

یه سؤالی هست که احتمالاً خیلیامون باهاش درگیریم: «یه ایده‌ی خوب دارم، ولی برنامه‌نویسی بلد نیستم. می‌تونم با هوش مصنوعی یه وب‌سایت یا اپلیکیشن واقعی بسازم؟»

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

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

قبل از هر کدی، یه PRD لازم داری

بزرگ‌ترین اشتباهی که آدم می‌کنه اینه که مستقیم می‌پره سراغ کد زدن. کاری که باید بکنی اینه که اول یه PRD بسازی — یعنی یه سند که توش نوشته دقیقاً چی می‌خوای. چه فیچرهایی، چه کاربرهایی، چه منطقی.

و نکته اینجاست: لازم نیست خودت این سند رو بنویسی. می‌ری توی یه چت با هوش مصنوعی (مثلاً Claude) و ازش می‌خوای کمکت کنه PRD رو بسازه. یه چیزی شبیه این بهش می‌گی:

سلام، می‌خوام یک وب‌سایت با این مشخصات بسازم.
کمکم کن یک PRD کامل و با جزئیات برای Claude Code آماده کنم.
اما قبل از شروع، ۵ تا سؤال ازم بپرس.

اون «۵ تا سؤال ازم بپرس» مهم‌ترین تیکه‌ی این پرامپته. به‌جای اینکه هوش مصنوعی حدس بزنه و یه چیز کلی بهت بده، مجبورش می‌کنی نقطه‌های مبهم رو ازت بپرسه. توی همین پروژه، وقتی این کار رو کردم، هوش مصنوعی برداشت خودش رو گفت — «به نظرم هدف اصلی این سیستم اینه که خریدار مطمئن بشه سکه اصله و قابل ردیابیه، نه صرفاً یه سیستم QR ساده» — و بعد سؤال‌های دقیقی پرسید: ادمین خودش برند هست یا فقط ناظر سیستمه؟ اسکن باید پابلیک باشه یا لاگین اجباریه؟ این تصمیم‌ها روی کل طراحی اثر می‌ذارن.

اول ذهن هوش مصنوعی رو آماده کن

اینجا یه اصل هست که توی همه‌ی کارهات با هوش مصنوعی به دردت می‌خوره، نه فقط برنامه‌نویسی. هوش مصنوعی شبیه یه auto-complete خیلی پیشرفته‌ست؛ هر متنی که قبلش بهش بدی، روی خروجیش اثر می‌ذاره. پس قبل از اینکه سؤال اصلیت رو بپرسی، باید «ذهنش رو آماده کنی».

فکر کن می‌خوای از یه همکار یا دوستت که هیچ شناختی از پروژه نداره یه چیزی بپرسی. اول براش توضیح می‌دی «ببین یه پروژه‌ای هست، این‌جوریه، اون‌جوریه» و بعد سؤالت رو می‌پرسی. با هوش مصنوعی هم دقیقاً همینه. اگه وقت داری و خروجی خوب می‌خوای، اول باهاش حرف بزن و کانتکست بده؛ بعد بخواه که کار رو شروع کنه. این چند دقیقه وقت گذاشتن اول کار، ساعت‌ها وقت دیباگ کردن آخر کار رو ازت می‌گیره.

یه نکته‌ی دیگه: نگران prompt engineering نباش. لازم نیست بشینی حفظ کنی که برای هر مدل چه پرامپتی بهتره. هر چیزی که حفظی باشه، خودِ هوش مصنوعی بهتر از تو بلده. کافیه بهش بگی «این پرامپت رو برای Claude Code بهینه کن» — می‌ره سرچ می‌کنه، بهترین ساختار رو پیدا می‌کنه و برات می‌نویسه.

انتخاب‌های فنی رو به ابزار بسپار، ولی محدودیت‌هات رو بگو

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

چرا؟ چون برای اینکه یه سایت رو به بقیه نشون بدی دو تا راه کلی داری: یا یه هاست اشتراکی می‌خری (همون چیزی که سایت‌های وردپرسی روش بالا میان — ارزون و راحت)، یا یه سرور می‌گیری (یه کامپیوتر که لینوکس روشه و هر کاری بخوای می‌تونی روش بکنی، ولی گرون‌تر و پیچیده‌تر). برای یه MVP که فقط می‌خوای سریع دموش کنی، هاست اشتراکی خیلی ارزون‌تر و سریع‌تره.

همین یه محدودیت، بقیه‌ی تصمیم‌ها رو مشخص کرد: زبان PHP با فریم‌ورک Laravel (چون اکثر هاست‌ها PHP رو ساپورت می‌کنن، ولی خیلیاشون Node.js یا Java رو نه)، دیتابیس MySQL (به همون دلیل)، فرانت‌اند React به‌صورت PWA، و برای پنل ادمین Filament که از فارسی و راست‌به‌چپ هم پشتیبانی می‌کنه. این‌ها رو هوش مصنوعی پیشنهاد داد؛ من فقط محدودیت اصلی رو دادم.

PRD رو ببر توی Claude Code و برو روی Plan Mode

وقتی PRD آماده شد، می‌بریش توی Claude Code. ولی قبل از اینکه بذاری کد بزنه، یه چیز دیگه هم بهش اضافه کن و Plan Mode رو روشن کن (توی Claude Code با Shift+Tab سوییچ می‌شه).

پلن کردن قبل از کد زدن چند تا فایده داره. اول اینکه دوباره روی فازبندی و ساختار کار فکر می‌کنه. دوم — و مهم‌تر — به مدیریت چیزی به اسم compact کمک می‌کنه. وقتی توکن‌ها زیاد می‌شن، هوش مصنوعی کانتکست رو خلاصه می‌کنه و یه وقتایی یادش می‌ره اولش قرار بود چی کار کنه. ولی اگه از اول با پلن شروع کرده باشی، احتمال اینکه مسیر رو گم کنه خیلی کمتره.

حتماً ازش بخواه تست بنویسه

این یکی از مهم‌ترین تیکه‌هاست، مخصوصاً وقتی با هوش مصنوعی کار می‌کنی. ازش بخواه تست (unit test) بنویسه. حتی اگه قرار نیست خودت تست‌ها رو بخونی، حتی اگه تست‌های فوق‌العاده‌ای هم ننویسه، باز هم مهمه.

چرا؟ یه روشی هست به اسم TDD (Test-Driven Development) که توش اول تست می‌نویسی بعد کد. مثلاً فرض کن می‌خوای یه تابع بنویسی که a + b = c. اول یه سری تست می‌نویسی: «اگه a برابر ۱ و b برابر ۲ بود، c باید ۳ بشه.» بعد می‌ری تابع رو می‌نویسی جوری که از همه‌ی این تست‌ها رد بشه. اگه کد مشکل داشته باشه، تست خطا می‌ده و هوش مصنوعی مجبوره خودش بره درستش کنه.

این چرخه باعث می‌شه کیفیت کد بالاتر بره، و چون کد دوباره و دوباره نوشته و بازبینی می‌شه، عملاً کانتکست بیشتری ساخته می‌شه و خروجی بهتر می‌شه. در کنارش بهش بگو اصول Clean Code و SOLID رو رعایت کنه — مثلاً Single Responsibility یعنی هر تیکه از کد فقط یه کار بکنه، نه اینکه یه فایل ۱۰۰ خطی هم ایمیل بفرسته هم اطلاعات کاربر رو بگیره. این‌جوری کد کوچیک‌تر، خواناتر و کم‌باگ‌تر می‌شه. این‌ها رو باید صریح بگی، چون ممکنه به‌صورت پیش‌فرض سراغشون نره.

حواست به Context Window باشه

Claude Code الان تا یک میلیون توکن کانتکست رو ساپورت می‌کنه (قبلاً ۲۵۶ هزار تا بود). ولی یه نکته‌ی مهم: لازم نیست — و حتی بهتره — به اون یک میلیون نرسی.

دلیلش اینه که هر چقدر کانتکست بزرگ‌تر می‌شه، از یه جایی به بعد کیفیت جواب‌های هوش مصنوعی افت می‌کنه. به این پدیده می‌گن context rot. توی نمودارهایی که آنتروپیک منتشر کرده، Opus وقتی کانتکستش حدود ۲۵۶ هزار توکنه دقتش حدود ۹۰٪ ئه و حتی توی یک میلیون توکن هم حدود ۷۸٪ نگه‌ش می‌داره — که در مقایسه با مدل‌های دیگه (که از ۷۳٪ به ۳۶٪ سقوط می‌کنن) واقعاً خفنه. ولی نکته اینه که حتی بهترین مدل‌ها هم با کانتکست خیلی بزرگ افت می‌کنن.

تمام کارایی که هوش مصنوعی می‌کنه — explore کردن، سرچ، function calling، شاخه‌های مختلف فکر — همش به کانتکست توکن اضافه می‌کنه، و یه بخشیش واقعاً اضافی و بی‌ربطه. برای همینه که Plan Mode و compact مهمن. یه عدد منطقی برای سقف کار، جایی حدود ۵۰۰ هزار توکنه؛ از اون بالاتر بری، ریسک جواب‌های غلط بیشتر می‌شه.

مهم‌ترین مرحله: حلقه رو ببند (Closing the Loop)

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

چه‌جوری؟ توی پرامپت بهش می‌گی که بعد از نوشتن کد، خودش اجراش کنه و تست کنه:

  • با curl توی ترمینال، API‌ها رو تست کن (یوزر بساز، فروشگاه بساز، و مطمئن شو همه چی جواب می‌ده).
  • با Chrome MCP برو توی مرورگر، خودِ سایت و UI رو باز کن و چک کن.
  • لاگ‌های سرور و خطاها رو بخون، و اگه چیزی خراب بود خودت فیکسش کن.

توی این پروژه دقیقاً همین اتفاق افتاد. هوش مصنوعی ۲۲ تا اسموک‌تست نوشت و همه پاس شدن. بعد با Chrome MCP رفت سایت رو باز کرد، دید صفحه‌ی فرانت‌اند خالی لود می‌شه (یه باگ داشتیم)، رفت فایل اصلی فرانت‌اند رو خوند، تغییرش داد، دوباره تست کرد، تا درست شد. اگه Chrome MCP رو وصل نکرده بودم، هوش مصنوعی می‌گفت «تمومه!» و من باید دستی باز می‌کردم، اسکرین‌شات می‌گرفتم و بهش توضیح می‌دادم. ولی چون حلقه بسته بود، خودش دید، خودش فهمید، خودش درست کرد.

چند تا ابزار که کارت رو راحت می‌کنن

برای اجرای محلی، از DDEV روی Docker استفاده کردم؛ این بهت اجازه می‌ده یه چیزی شبیه وب‌هاست رو روی کامپیوتر خودت شبیه‌سازی کنی، قبل از اینکه فایل‌ها رو ببری روی هاست واقعی. اگه تکنیکال نیستی، نگران این بخش نباش — وقتی فایل‌ها ساخته شدن، اگه هاست داری، فقط کافیه کپی‌شون کنی اونجا.

یه alias هم برای Claude Code ساختم که اجازه نمی‌ده هر بار ازم پرمیشن بپرسه و سطح فکر مدل رو هم می‌بره بالا:

alias cld="claude --dangerously-skip-permissions"

و یه نکته‌ی جالب: Claude Code یه statusline داره (با پلاگین فعال می‌شه) که مصرف توکن و هزینه‌ت رو نشون می‌ده. اون روز تا اون لحظه حدود ۳۱ دلار مصرف کرده بودم، ولی چون پلن ماهانه‌ی ۱۰۰ دلاری دارم، نگرانش نبودم. اگه پلن نداشتی و توکنی حساب می‌شد، باید همه‌ی این مصرف رو پول می‌دادی.

نتیجه

کل این پروژه، با اینکه Claude Code پیش‌بینی کرده بود ۵ ساعت طول می‌کشه، حدود ۴۰ دقیقه طول کشید. آخرش یه اپ کامل داشتیم: داشبورد ادمین با دارک‌مود، پنل فروشگاه، تعریف سکه و تولید خودکار QR، و صفحه‌ی اسکن به‌صورت PWA روی گوشی. تنها چیزی که کامل نبود، ترجمه‌ی فارسی بعضی صفحه‌ها بود که کار بعدیه.

خلاصه‌ی روش رو اگه بخوام بگم: مستقیم نرو سراغ کد. اول با هوش مصنوعی حرف بزن و ذهنش رو آماده کن، یه PRD تمیز بساز، با Plan Mode شروع کن، ازش تست بخواه، حواست به اندازه‌ی کانتکست باشه، و مهم‌تر از همه حلقه رو ببند تا خودش کارش رو تست و تصحیح کنه. این‌جوری حتی بدون بلد بودن برنامه‌نویسی، می‌تونی از یه ایده به یه اپلیکیشن واقعی برسی.


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *