ڈویلپمنٹ لاگ: سسٹم کی دیانتداری
ایسے سسٹم بنائیں جو سچ بولیں۔
ایک سسٹم صرف اتنا ہی اچھا ہوتا ہے جتنے اس کے سگنلز (signals) ہوتے ہیں۔ اگر آپ کی کوئریز (queries) فضول کام کو چھپاتی ہیں، آپ کے ہیلتھ چیک (health checks) جھوٹ بولتے ہیں، یا آپ کے ٹولز ایک ہی کام کو بار بار کرتے ہیں، تو آپ کا سسٹم غیر دیانتدار ہے۔
میں نے پورا دن چار مختلف تکنیکی موضوعات پر کام کرتے ہوئے گزارا۔ ہر ایک کا ایک ہی مقصد ہے: سسٹم کو دیانتدار بنانا۔
1. ڈیٹا بیس کی کارکردگی (Database Performance)
وہ ڈیٹا حاصل کرنا بند کریں جس کی آپ کو ضرورت نہیں ہے۔
- اپنے ڈویلپمنٹ ماحول میں N+1 ڈیٹیکٹر (detector) کا استعمال کریں۔ یہ چھپے ہوئے lazy-loads کو ایک واضح ٹاسک لسٹ میں بدل دیتا ہے۔
- غیر ضروری eager loads کو ختم کریں۔ اگر آپ کا ویو (view) کسی کالم کو استعمال نہیں کر رہا، تو اسے فیچ (fetch) نہ کریں۔
- ہر ریکویسٹ کے لیے کانسٹنٹ (constants) کو میموائز (memoize) کریں۔ ایک ہی سائیکل میں ایک ہی ویلیو کو بار بار کیلکولیٹ نہ کریں۔
- ڈیش بورڈ کوئریز کو گروپ کریں۔ بیس (20) چھوٹی count calls کی جگہ ایک گروپڈ کوئری (grouped query) استعمال کریں۔
2. حقیقی ہیلتھ چیک (Real Health Checks)
ایسا چیک جو صرف یہ تصدیق کرے کہ کوئی کنفیگریشن (config) موجود ہے یا نہیں، وہ ہیلتھ چیک نہیں ہے۔ وہ صرف ایک کنفیگ چیک ہے۔
- ایک حقیقی ہیلتھ چیک کو رسائی (reachability) ثابت کرنی چاہیے۔
- ٹارگٹ ہوسٹ (host) اور پورٹ (port) کے لیے ایک ساکٹ (socket) کھولیں۔
- TCP، HTTP، یا TLS پروبز (probes) کے درمیان سوئچ کرنے کے لیے کسی کنٹریکٹ یا انٹرفیس (interface) کا استعمال کریں۔
- ہر پروب کو اپنے الگ کنکشن پر چلائیں۔ ایک سست سروس کو آپ کے پورے مانیٹرنگ ٹول کو نہیں روکنا چاہیے۔
3. محفوظ ترین AI ٹولز (MCP)
جب آپ کسی AI ایجنٹ کو اپنے سسٹم تک رسائی دیتے ہیں، تو آپ کو یہ فرض کر لینا چاہیے کہ وہ غلطیاں کرے گا۔
- Idempotency keys کا استعمال کریں۔ اگر کوئی ایجنٹ کسی ریکویسٹ کو دوبارہ کوشش (retry) کرتا ہے، تو سرور کو ڈپلیکیٹ بنانے کے بجائے وہی نتیجہ واپس کرنا چاہیے۔
- ڈیٹا باہر بھیجتے وقت ذاتی معلومات کو صاف (scrub) کریں۔ رسپانس پاتھ (response path) کو ایک عوامی حد (public boundary) کے طور پر دیکھیں۔
- ٹائپڈ ایرر کوڈز (typed error codes) کا استعمال کریں۔ خام اسٹرنگز (raw strings) نہ بھیجیں۔ ایک ایجنٹ کو صحیح طریقے سے کام کرنے کے لیے "not_found" جیسے منظم کوڈز کی ضرورت ہوتی ہے۔
4. شناخت اور پاس ورڈ ری سیٹ (Identity and Password Resets)
جب آپ متعدد سسٹمز پر کام کرتے ہیں تو ترتیب اہمیت رکھتی ہے۔
- اگر پاس ورڈ ری سیٹ متعدد ڈائریکٹریز (directories) پر اثر انداز ہوتا ہے، تو حقیقت کا ایک ہی ذریعہ (source of truth) منتخب کریں۔
- پہلے مستند (authoritative) ڈائریکٹری میں لکھیں۔
- ترتیب کو دستاویز (document) کریں۔ "جب میں نے اسے آزمایا تو یہ کام کر رہا تھا" کا مطلب یہ نہیں کہ ناکامی کے دوران کامیابی کی ضمانت ہے۔
مقصد چمک دھمک والے فیچرز بنانا نہیں ہے۔ مقصد ایک ایسا سسٹم بنانا ہے جو اس وقت بھی قابلِ اعتماد رہے جب آپ اسے نہ دیکھ رہے ہوں۔
