iAct

Act on Ai

Vibe Coding چیست؟


خیلی ساده بگم دیگه نیاز نیست که برنامه نویسی بلد باشید تا یه نرم افزار درست کنید. و یا ایده اولیتون رو به محصول تبدیل کنید!

دیگه دوره ما برنامه نویس ها تموم شد. دیگه کسی مارو لازم نداره. (یا اینکه بیشتر از قبل لازم دارن!)

خوب وایب کدینگ به این معنی هست که خیلی دیگه حسی کد میزنیم. با هوش مصنوعی AI چت می کنیم و تنها کاری که لازمه بکنیم اینه که دقیق بهش بگیم چی می خوایم و اون برای ما کد رو می زنه.

چقدر میشه بهش اعتماد کرد؟
شاید تا چند ماه پیش اونقدر خوب نبود اما با اومدن مدل های جدیدی مثل Claude 3.7 Sonnet و یا Gemini 2.5 Pro دنیا خیلی تغییر کرده. کد ها تمیز و دقیق کار می کنه. من خودم یه نمونه بازی موبایل Snake رو درست کردم که میتونید از اینجا بازی کنید: https://eiliyaabedini.github.io/snake-battle-royale

سورسش هم میتونید اینجا ببینید: https://github.com/eiliyaabedini/snake-battle-royale

اگر براتون جالب شد میتونم پرامتش رو هم بدم:

Snake Battle Royale Language: HTML/CSS/JavaScript (vanilla, no frameworks) 
Libraries: None, pure JavaScript Style: Minimalist design with accent colors in teal and orange 
Rules: 
1. All files should be in the folder snake_battle_royale 1. Keep the code clean and reusable, use functions and classes and split the code into multiple files to keep it organized Guidelines: 
2. You can move the snake around the screen using the arrow keys 
3. Eat food to grow the snake 
4. Avoid hitting the edges of the screen, or the snakes own body, or the enemy snake, or you lose. The game is only over when the players snake is dead. 
5. There are at least 3 powerups that change the game mechanics, including effects that show how the powerups work 
6. A scoring system that rewards the player for eating food and hitting powerups 
7. A simple AI opponent that competes with the player using pathfinding 
8. A home screen where the player can hit enter to start the game 
9. A game over screen that shows your score and allows you to go back to the home screen or restart the game 
10. On the game screen, display a legend containing the powerups and their names, as well as the user and enemy snake's name and score 
11. When the game starts, we should have a 3 second countdown where everything is frozen in place, then the game starts

خب فقط کافیه یکی از ابزار های وایب کدینگ مثل کرسر Cursor استفاده کنید و همین متن بالا رو کپی پست کنید.

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

خیلی جذابه اما سوال پیش میاد که یعنی کار ما برنامه نویسی ها تموم شد دیگه؟
و یا چقدر میشه به این کد اعتماد کرد؟

توی این چند ماه من با برنامه های مختلف وایب کدینگ مثل Lovable , Replit , Bolt , Cursor, WindSurf, Augment Code, Roo Code, Aider, Claude Desktop کار کردم، هر کدوم مزیت و معایب خودش رو داره که برای هر کدوم پست می سازم اما کلیت این هست که این برنامه ها برای ساخت یه محصول اولیه خیلی خوب کار می کنن، مثلا برای ساخت یک MVP میتونید کامل با پرامپت و بدون دانش برنامه نویسی محصول رو درست کنید. حتی شاید بتونید شانس بیارید و منتشر کنید و پول هم دربیارید.
اما وقتی که شروع می کنید به ارسال درخواست دوم و سوم و هر چی بیشتر پیش میرید کار سخت تر و سخت تر میشه، تغییرات جدید کد های قبلی رو خراب می کنه و خیلی سخت پیش میرید.
قطعا با مدل های هوش مصنوعی قوی تر و گرون تر مثل Claude 3.7 خطا ها کمتر و خروجی بهتر هست. اما همچنان سخت هست.
و دلیل هم داره. دلیلش اینه که درخواستی که ما به هوش مصنوعی ارسال می کنیم و چتی که بین ما شکل میگیره یک محدودیت داره. مثلا Claude 3.7 در حال حاضر 200 هزار توکن و Gemini 2.5 pro در حال حاضر 1 میلیون توکن ظرفیت داره. این عدد 2 سال پیش برای GPT 3.5 Turbo حدود 16 هزار توکن بود که پیشرفت خیلی قابل توجهی توی این مدت زمان کم هست و همین هم دلیل پیدایش وایب کدینگ Vibe Coding شده. خب قطعا با پیشرفت مدل ها و این سرعتی که جلو میرن وایب کدینگ راحت تر میشه و میشه پروژه های بزرگ تری هم Vibe code کرد.



هر توکن تقریبا معادل یک کلمه هست که در محاصبات هوش مصنوعی به یک معادل عددی تبدیل میشه تا بشه محاصبات رو ساده تر و بازدهی رو بالاتر برد. مثلا خود کلمه “توکن” میتونه معادل که بردار ۳ بعدی (234, 23, 323) باشه‌ (البته این مثال هست و درست نیست). و بعد این توکن ها نسبت به همدیگه وزن پیدا می کنن و ….
در کل مبحث جالبیه ساخت LLM ها که اگر مشتاق هستید بیشتر بدونید این ویدیو رو بهتون توصیه می کنم: https://www.youtube.com/watch?v=kCc8FmEb1nY


زمانی که چتی بین ما و AI شکل می گیره با هر بار ارسال درخواست (پرامت) و جواب AI تمام تاریخچه اون چت به AI فرستاده میشه و اون میتونه بر اساس تمام اون داده ها جواب بده. هرچقدر هم که این مقدار بزرگتر میشه هزینه هم بالاتر میره.
و از یه جا به بعد ظرفیت پر میشه. حالا یا باید یک چت جدید درست کرد و یا با روش هایی خلاصه ای از چت قبلی رو به جای کل چت براش میفرستن و این به این معنی هست که AI اطلاعات کمتری نسبت به کد ما داره. و خطا ها شروع میشن.
این موضوع زمانی که بخواید روی پروژه فعلی که بزرگ هم هست کار کنید همون ابتدا خودش رو نشون میده.

خب این به این معنی هست که از اینجا به بعد کار ما برنامه نویسا بیشتر میشه. کسایی که پروژه هایی رو اجرا کردن با Vibe coding و حالا نیاز به تغییر دارن و یا امنیت کد رو می خوان بالا ببرن ولی دانش فنی ندارن و با Vibe coding پیشرفتی هم ندارن نیاز به برنامه نویس های با تجربه پیدا می کنن.

ولی چطور میشه روی پروژه های فعلی از وایب کدینگ استفاده کرد؟ اگر برنامه نویس هستیم وایب کدینگ میتونه به کار ما بیاد؟
اینجا میتونم بگم بله قطعا ، اگر بدونیم که چطور ازش استفاده کنیم میتونه خروجی مارو چندین برابر بکنه.

و این با تحقیق و تمرین بدست میاد. هرچی بیشتر با AI کد بزنید بیشتر یاد میگیرید.
مثلا به جای تعریف یک پروژه بزرگ. اون رو به تسک های کوچیک تر تبدیل کردن خروجی بهتری بهمون میده و یا نوشتن قوانین Rules ها میتونه کمک زیادی به پروژه بکنه.
داکیومنتیشن (حتی به کمک خود AI) میتونه به شدت کمک بکنه.
استفاده درست از نوع ابزار خیلی مهمه (مثلا Augment Code با روش هایی که به کار می بره، کد شمارو index می کنه و context aware میشه این یعنی دید بهتری نسبت به کد و پروژه شما داره و میتونه در کد جستجو کنه و کد بهتری تولید بکنه)
نوع مدل قطعا مهم ترین فاکتور هست (مثلا مدل های گرون تر مثل Claude نسبت به مدل های ارزوتر مثل GPT 4.1 mini تفاوت بالایی در تولید کد دارن)
و نحوه پرامت دادن تعیین کننه نحوه جواب گرفتن از هوش مصنوعی هست.


در آینده پست های بیشتری در مورد وایب کدینگ منتشر می کنم.