صارف اس وقت Send (بھیجیں) پر کلک کرتا ہے جب اسسٹنٹ کہتا ہے، “ایلس (Alice) کو انوائس بھیجیں،” کیونکہ UI اس خلاصے کو ایسے پیش کرتا ہے جیسے یہی وہ عمل ہے جو درحقیقت سرانجام پائے گا۔
اس کے بعد UI ایک ایسی درخواست پر عمل درآمد کرتا ہے جس کا اصل وصول کنندہ bob@vendor.com ہوتا ہے، اور صارف کو اس بات کا علم تب ہوتا ہے جب انوائس غلط ان باکس میں پہنچ جاتی ہے۔
اس خرابی کے عمل میں ماڈل کی جانب سے پروڈکٹ کو “ہیک” کرنے کی کوئی ضرورت پیش نہیں آتی۔
یہ خرابی انٹرفیس کی اس حد پر واقع ہوتی ہے جہاں تیار کردہ متن (generated text) کسی ایسی چیز کی شکل اختیار کر لیتا ہے جسے انسان منظور کر لیتا ہے، اور UI اسسٹنٹ کی رواں اور خوش اسلوب وضاحت کو ان پیرامیٹرز (parameters) کی جگہ لینے دیتا ہے جن پر درحقیقت عمل درآمد ہونا ہوتا ہے۔
اگلی مثال ایک چھوٹے سے اسسٹنٹ UI کی ہے جو بٹن پر کلک کرنے پر براہِ راست اس تضاد (mismatch) کو ظاہر کرتا ہے۔
یہ کوڈ مسئلے کو واضح کرتا ہے کیونکہ یہ اس بات کو الگ کرتا ہے کہ UI کیا دکھا رہا ہے اور ایکشن (action) اصل میں کیا ڈیٹا بھیجے گا؛ اور ‘کلک’ کرنے پر وہ اصل ڈیٹا (payload) سامنے آ جاتا ہے جسے پروڈکٹ منتقل کرے گی۔
ہم نے ابھی جو تضاد دیکھا ہے وہ اس لیے پیدا ہوتا ہے کیونکہ فرنٹ اینڈ اسسٹنٹ کے عمل (flow) میں کئی الگ الگ مراحل ہوتے ہیں، اور ہر مرحلہ کسی مختلف قسم کے غیر محفوظ تاثر یا غلط فہمی کو جنم دے سکتا ہے۔
ہم فرنٹ اینڈ کے زیرِ کنٹرول چار مراحل کی نشاندہی کر سکتے ہیں اور ہر ایک کا تعلق “انوائس بھیجنے” (send invoice) والے منظرنامے سے جوڑ سکتے ہیں تاکہ بعد میں کی جانے والی اصلاحات عمل کے درست مقام پر لاگو کی جا سکیں۔
ان مراحل کو الگ الگ رکھنے کا فائدہ یہ ہے کہ ہر مرحلے کے لیے مختلف انٹرفیس کنٹرول کی ضرورت ہوتی ہے، اور غلط مرحلے پر دکھایا گیا انتباہی بینر (warning banner) ناپسندیدہ نتیجے کو روکنے میں ناکام رہتا ہے۔
اگلا خاکہ (diagram) ان دو اہم ترین حدود کی نشاندہی کرتا ہے جو اس کورس میں اہمیت رکھتی ہیں: جہاں متن DOM میں تبدیل ہوتا ہے اور جہاں منظوری ایک درخواست (request) کی شکل اختیار کرتی ہے۔