میری README نے 80 ٹولز بتائے۔ میرے کوڈ میں 96 تھے۔ ہفتوں تک کسی نے غور نہیں کیا۔

میں ایک اوپن سورس پروجیکٹ چلاتا ہوں۔ یہ AI ایجنٹس کے لیے براؤزر آٹومیشن کا استعمال کرتا ہے۔

میری README میں لکھا تھا کہ پروجیکٹ میں 80 ٹولز ہیں۔ میں نے وہ نمبر ٹیگ لائن، نیویگیشن اور سوشل میڈیا ٹیکسٹ میں بھی استعمال کیا۔

گزشتہ ہفتے میں نے ایک آڈٹ کیا۔ میں نے اپنی README کا اپنے اصل کوڈ کے ساتھ موازنہ کیا۔

کوڈ میں 96 ٹولز رجسٹرڈ تھے۔

ایک ہی فائل میں میرے پاس تین مختلف حقیقتیں تھیں:

  • مارکیٹنگ کا نمبر: 80
  • دستاویزی فہرست (documented list): 83
  • اصل کوڈ: 96

تیرہ ٹولز مکمل طور پر غیر دستاویزی (undocumented) تھے۔ صارفین کو معلوم ہی نہیں تھا کہ وہ موجود ہیں۔

سب سے خطرناک حصہ یہ فرق (gap) تھا۔ ان غیر دستاویزی ٹولز میں سے چار ہائی لیول سسٹم ٹولز تھے۔ وہ کی بورڈ اور ماؤس کو کنٹرول کرنے کے لیے OS-level ایونٹس کا استعمال کرتے تھے۔ یہ میرے پروجیکٹ کا سب سے طاقتور اور حساس حصہ ہے۔

اس نے مجھے 'ڈاکومینٹیشن ڈرِفٹ' (documentation drift) کے بارے میں ایک سخت سبق سکھایا۔

ڈرِفٹ (Drift) کوئی اتفاقی چیز نہیں ہے۔ یہ متعصبانہ ہوتی ہے۔ آپ آسان اور بورنگ چیزوں کی دستاویز بناتے ہیں۔ آپ ان نئے، طاقتور یا حساس ٹولز کو دستاویزی بنانے سے بھول جاتے ہیں جنہیں آپ جلدی میں ریلیز (ship) کر دیتے ہیں۔

اگر آپ کسی پروجیکٹ کا سب سے پرخطر حصہ تلاش کرنا چاہتے ہیں، تو دستاویزات (docs) نہ پڑھیں۔ دستاویزات اور کوڈ کے درمیان موجود فرق کو دیکھیں۔

میں نے نمبر کو ٹھیک کرنے کی کوشش کی۔ وہ ایک غلطی تھی۔ نمبر کو ٹھیک کرنا صرف علامت (symptom) کا علاج کرتا ہے۔

مسئلہ دستی دیکھ بھال (manual maintenance) کا ہے۔ اگر کوئی انسان کوئی حقیقت ٹائپ کرتا ہے، تو وہ حقیقت آخر کار غلط ہو جائے گی۔

واحد حقیقی حل یہ ہے کہ نمبر کو غلط ہونا ناممکن بنا دیا جائے۔

آپ کو حقائق کو 'سورس آف ٹرتھ' (source of truth) سے اخذ کرنا چاہیے۔

میرے پروجیکٹ میں پہلے سے ہی ایک حل موجود تھا: سموک ٹیسٹ (smoke test)۔ ٹیسٹ سرور سے پوچھتا ہے کہ اس کے پاس کتنے ٹولز ہیں اور تعداد چیک کرتا ہے۔ یہ کسی ہارڈ کوڈڈ (hardcoded) نمبر کا استعمال نہیں کرتا۔ ٹیسٹ کبھی ڈرِفٹ نہیں ہو سکتا کیونکہ یہ کبھی بھی کوئی ساکن (static) نمبر محفوظ نہیں کرتا۔

اپنی تحریر کے ساتھ زیادہ نظم و ضبط (discipline) دکھانے کی کوشش کرنا چھوڑ دیں۔ نظم و ضبط ناکام ہو جاتا ہے۔ اس کے بجائے، اپنے حقائق کو خودکار (automate) بنائیں:

  • بلڈ ٹائم (build time) پر ایک اسکرپٹ کا استعمال کرتے ہوئے تعداد تیار کریں۔
  • براہ راست اپنے کوڈ رجسٹری سے ٹولز کی فہرست تیار کریں۔
  • انسانوں کو صرف نثر اور وضاحتوں کے لیے استعمال کریں۔

اگر کوئی حقیقت اخذ کی جا سکتی ہے، تو اسے ہاتھ سے ٹائپ نہ کریں۔ یہ صرف ہونے والے ڈرِفٹ کا انتظار کر رہی ہے۔

آج ہی اپنے پروجیکٹ پر یہ آڈٹ چلائیں:

  1. اپنے کوڈ میں موجود اصل اشیاء کی گنتی کریں۔
  2. گنتی کریں کہ آپ کی دستاویزات کیا دعویٰ کرتی ہیں۔
  3. اگر وہ مختلف ہوں، تو معلوم کریں کہ اس فرق میں کیا ہے۔

اس فرق میں موجود اشیاء عام طور پر آپ کے پروجیکٹ کے اہم ترین حصے ہوتے ہیں۔

ماخذ: https://dev.to/achiya-automation/my-readme-said-80-tools-my-code-had-96-nobody-noticed-for-weeks-1f3e

اختیاری لرننگ کمیونٹی: https://t.me/GyaanSetuAi