← 返回列表

AI انٹرویو سیریز 15: Vibe Coding کے عام نقصانات کیا ہیں؟

Vibe Coding کا "احساس/ماحول سے چلنے والا" طریقہ اگرچہ تیزی سے پروٹوٹائپ اور تخلیقی تلاش میں بہت اچھا ہے، لیکن اگر قابو نہ رکھا جائے تو کئی عام جالوں میں پھنسنا آسان ہے۔ ذیل میں کوڈ کے معیار، برقرار رکھنے کی صلاحیت، سیکیورٹی، ضروریات کا ارتقا، ٹیم تعاون پانچ جہتوں سے خلاصہ کیا گیا ہے۔


1. کوڈ کے معیار کے جال

کیونکہ Vibe Coding مکالمے پر مبنی تکرار پر انحصار کرتا ہے، صارف ہر بار مبہم تبدیلی کی ضرورت پیش کرتا ہے (جیسے "اس بٹن کو مزید ٹیکنالوجی کا احساس دیں")، AI نئے کوڈ کو شامل کرنے کی طرف مائل ہوتا ہے نہ کہ پرانی منطق کو دوبارہ ترتیب دینے۔ یہ نہیں جانتا کہ کون سا پرانا کوڈ ناکارہ ہو چکا ہے، اور حذف کرنے کی ہمت بھی نہیں کرتا، جس سے بے کار اور مردہ کوڈ مسلسل جمع ہوتا رہتا ہے۔ اس کے علاوہ، AI کا کوئی متحد "کوڈ اسٹائل میموری" نہیں ہے، ہر بار مختلف نام رکھنے کے طریقے استعمال کر سکتا ہے (تربیتی نمونوں کی بے ترتیبی پر منحصر)، اور صارف شاذ و نادر ہی واضح ضابطے کی پابندی کرتا ہے، جس سے کوڈ بے ترتیب اور پیش گوئی سے باہر ہو جاتا ہے۔ خلاصہ یہ ہے:

  1. بے کار اور مردہ کوڈ: متعدد اصلاحات کے بعد، AI پرانے نفاذ، کمنٹ شدہ کوڈ کے بلاکس، اور غیر استعمال شدہ امپورٹس چھوڑ دیتا ہے، کیونکہ حذف کرنے کا خطرہ زیادہ ہے، یہ انہیں برقرار رکھتا ہے۔
  2. متضاد نام رکھنا اور اسٹائل: AI مختلف دوروں میں تربیتی ڈیٹا سے تصادفی طور پر اسٹائل نکالتا ہے، اور اگر صارف ضابطے پر مجبور نہ کرے تو camelCase، underscore، اور space کا مرکب استعمال ہوتا ہے۔
  3. پوشیدہ منطقی غلطیاں: AI "عام راستے" کے درست کوڈ تیار کرنے کی طرف مائل ہوتا ہے، لیکن حدی حالات (null ویلیوز، انتہائی اقدار، ہمزمانی) کو اکثر نظر انداز کر دیا جاتا ہے، کیونکہ تربیتی ڈیٹا میں ایسی مثالیں کم ہوتی ہیں۔

2. برقرار رکھنے کی صلاحیت کے جال

Vibe Coding کی تکرار کی رفتار بہت تیز ہوتی ہے، صارف اور AI دونوں "کیا موجودہ خصوصیت کام کر رہی ہے" پر توجہ مرکوز کرتے ہیں، اور دستاویزات، کمنٹس یا دوبارہ ترتیب دینے کے لیے تقریباً وقت نہیں ہوتا۔ AI میں طویل مدتی یادداشت کی کمی ہوتی ہے، یہ فنکشنز کے لیے docstring نہیں لکھتا، اور نہ ہی اگلے ڈویلپر کے بارے میں سوچتا ہے۔ اس کے علاوہ، AI "موجودہ ضرورت کو پورا کرنے" کی طرف مائل ہوتا ہے، یا تو ایک عام فریم ورک بنا دیتا ہے (یہ سمجھتے ہوئے کہ صارف کو بعد میں ضرورت پڑے گی)، یا کاپی پیسٹ کر کے فوری نفاذ کرتا ہے، جس سے تجرید کی سطح میں الجھن پیدا ہوتی ہے۔ خلاصہ یہ ہے:

  1. دستاویزات اور کمنٹس کی کمی: AI ڈیفالٹ طور پر "خود وضاحتی" کوڈ آؤٹ پٹ کرتا ہے، لیکن حقیقت میں پیچیدہ ریجیکس یا الگورتھم کو سمجھنا مشکل ہوتا ہے؛ صارف نے مطالبہ نہیں کیا، تو یہ دستاویزات نہیں لکھتا۔
  2. ضرورت سے زیادہ یا کم تجرید: AI کبھی عام ڈیزائن پیٹرن (جیسے فیکٹری، اسٹریٹیجی) استعمال کرتا ہے اگرچہ مسئلہ آسان ہو؛ کبھی مشترکہ فنکشن نکالنے میں سستی کرتا ہے اور براہ راست کوڈ کے بلاکس کاپی کرتا ہے۔

3. سیکیورٹی کے جال

AI کے تربیتی ڈیٹا میں بہت سے اوپن سورس کوڈ شامل ہیں، جن میں تاریخی کمزوریاں (جیسے SQL拼接، ہارڈ کوڈڈ کلید) موجود ہیں۔ Vibe Coding میں، صارف شاذ و نادر ہی "پیرامیٹرائزڈ کوئری استعمال کریں" یا "ماحول کے متغیر سے کلید پڑھیں" کی درخواست کرتا ہے، تو AI سب سے عام (اور اکثر غیر محفوظ) پیٹرن استعمال کرتا ہے۔ اس کے علاوہ، AI میں "خطرے کا ماڈل" کا شعور نہیں ہے، یہ ان پٹ فلٹرنگ یا کم سے کم اجازتوں کی جانچ نہیں کرتا، کیونکہ اسے صرف فنکشنلٹی کی پرواہ ہے۔ خلاصہ یہ ہے:

  1. انجیکشن کے خطرات: AI ڈیفالٹ طور پر سٹرنگ کنکاٹینیشن سے SQL/کمانڈ بناتا ہے، کیونکہ یہ طریقہ سادہ ٹیوٹوریلز میں سب سے عام ہے۔
  2. حساس معلومات کی ہارڈ کوڈنگ: تربیتی نمونوں میں مثالیں اکثر API Key کو ہارڈ کوڈ کرتی ہیں، AI اس پیٹرن کی نقل کرتا ہے۔
  3. ضرورت سے زیادہ اجازتیں: AI سہولت کے لیے اکثر sudo یا w+ موڈ میں فائل کھولتا ہے، اور کم سے کم ضروری اجازت پر غور نہیں کرتا۔

4. ضروریات کے ارتقا کے جال

Vibe Coding کی کوئی واضح حد نہیں ہے۔ صارف ایک جملہ "ایک اور فیچر شامل کریں" کہتا ہے، AI پوری کوشش کرتا ہے، لیکن یہ نہیں جانتا کہ "حدود سے باہر" کیا ہے۔ AI میں ترجیح کا تصور بھی نہیں ہے، یہ ایک ساتھ تین اضافی خصوصیات لا سکتا ہے، جس سے بنیادی خصوصیت دب جاتی ہے۔ ساتھ ہی، ہر بار نئے بگ کی اصلاح کرتے وقت، AI پرانی خصوصیات کا جائزہ نہیں لیتا، اکثر A کو ٹھیک کر کے B کو توڑ دیتا ہے۔ خلاصہ یہ ہے:

  1. دائرہ کار میں اضافہ: AI "صارف کو خوش رکھنے" کے لیے بظاہر متعلقہ لیکن غیر ضروری فیچرز شامل کرتا ہے (جیسے کیلکولیٹر میں ہسٹری ریکارڈ)۔
  2. فیچر کی تنزلی: AI جب کسی بگ کو ٹھیک کرتا ہے، تو عالمی منطق سے ناواقف ہونے کی وجہ سے، کسی مشترکہ فنکشن میں تبدیلی کرتا ہے، جس سے اس پر انحصار کرنے والے دیگر فیچرز متاثر ہوتے ہیں۔

5. ٹیم تعاون کے جال

Vibe Coding کا مکالمہ فرد اور AI کے درمیان نجی تعامل ہے، جو کوئی قابل منتقلی تفصیلات یا ڈیزائن فیصلوں کا ریکارڈ نہیں چھوڑتا۔ مختلف ٹیم ممبران الگ الگ AI سے بات کرتے ہیں، اور انہیں اپنے اسٹائل کا کوڈ ملتا ہے، جسے ضم کرتے وقت بہت سے تنازعات پیدا ہوتے ہیں۔ اس کے علاوہ، AI خود بخود commit message یا تبدیلی کا لاگ نہیں بناتا، کوڈ کے ارتقا کی وجوہات ختم ہو جاتی ہیں، اور بعد میں دیکھ بھال کرنے والے صرف اندازے لگا سکتے ہیں۔ خلاصہ یہ ہے:

  1. غیر تولیدی تعمیرات: مختلف افراد، مختلف اوقات میں ایک ہی پرامپٹ استعمال کرتے ہیں، AI مختلف نفاذ دیتا ہے (نمونے لینے کی بے ترتیبی کی وجہ سے)۔
  2. تبدیلیوں کے سراغ کی کمی: کوئی ڈیزائن دستاویزات نہیں، کوئی commit message نہیں جو "یہ تبدیلی کیوں کی" کی وضاحت کرے، کوڈ ایک بلیک باکس بن جاتا ہے۔

评论

暂无已展示的评论。

发表评论(匿名)