𝗧𝗵𝗲 𝗪𝗼𝗿𝗸𝗲𝗱 𝗘𝘅𝗮𝗺𝗽𝗹𝗲 𝗧𝗵𝗮𝘁 𝗗𝗶𝘀𝗮𝗴𝗿𝗲𝗲𝗱 𝗪𝗶𝘁𝗵 𝗜𝘁𝘀 𝗢𝘄𝗻 𝗖𝗮𝗹𝗰𝘂𝗹𝗮𝘁𝗼𝗿
میں ہوم امپروومنٹ کے لاگت کیلکولیٹرز کے ساتھ ایک ویب سائٹ چلاتا ہوں۔
ہر صفحہ ایک ہی لاگت کو چار مختلف جگہوں پر دکھاتا ہے:
- ایک انٹرایکٹو ویجیٹ۔
- ایک اسٹیٹک ریفرنس ٹیبل۔
- تحریری مثالیں۔
- ایک FAQ سیکشن۔
مجھے ایک بگ (bug) ملا۔ ایک تحریری مثال میں ایک پروجیکٹ کی لاگت $62,300 بتائی گئی تھی۔ کیلکولیٹر ویجیٹ کے مطابق اسی پروجیکٹ کی لاگت $56,779 تھی۔
ان کے درمیان $5,500 کا فرق تھا۔
یہ غلطی اس لیے ہوئی کیونکہ میں نے نمبرز خود ہاتھ سے لکھے تھے۔ میں نے ٹیکسٹ کے لیے وہ مفروضے استعمال کیے تھے جو میں نے کوڈ کے لیے استعمال نہیں کیے تھے۔ ٹیکسٹ میں ایک نئے HVAC یونٹ کا مفروضہ لگایا گیا تھا۔ کوڈ میں موجودہ سسٹم کا مفروضہ لگایا گیا تھا۔ دونوں ہی درست تھے، لیکن وہ ایک دوسرے سے مطابقت نہیں رکھتے تھے۔
یہ ایک عام ناکامی ہے۔ جب آپ ایک ہی حقیقت کو دو جگہوں پر محفوظ کرتے ہیں، تو وہ ایک دوسرے سے الگ ہو جاتی ہیں۔
میں نے اسے دو اصولوں کے ذریعے درست کیا۔
اصول 1: سورس فرسٹ لاجک (Source-first logic)۔
کیلکولیٹر فنکشن ہی وہ واحد جگہ ہے جہاں سے کوئی نمبر جنم لیتا ہے۔ اب میں ٹیبلز یا پیراگراف میں نمبرز ٹائپ نہیں کرتا۔ اس کے بجائے، میں بلڈ ٹائم (build time) پر ٹیبلز اور مثالیں تیار کرنے کے لیے فنکشن کا استعمال کرتا ہوں۔
اگر فنکشن تبدیل ہوتا ہے، تو پورا صفحہ تبدیل ہو جاتا ہے۔ ٹیبل اور ویجیٹ ہمیشہ ایک دوسرے سے مطابقت رکھیں گے کیونکہ وہ ایک ہی لاجک استعمال کرتے ہیں۔
اصول 2: پروونینس (Provenance) شامل کریں۔
ایک نمبر صرف اسی صورت میں مفید ہوتا ہے جب آپ کو معلوم ہو کہ وہ کہاں سے آیا ہے۔ اب ہر کیلکولیشن میں درج ذیل چیزیں شامل ہیں:
- استعمال کردہ مخصوص منظرنامہ (scenario)۔
- ڈیٹا کا ذریعہ۔
- جس تاریخ کو اسے حاصل کیا گیا۔
- ڈیٹا کی میعاد ختم ہونے کی تاریخ۔
لاگت کا ڈیٹا کوئی مستقل حقیقت نہیں ہے۔ یہ ایک عارضی حقیقت ہے۔ ریویو کی تاریخ شامل کرنے سے مجھے یاد رہتا ہے کہ ڈیٹا کے غلط ہونے سے پہلے اسے اپ ڈیٹ کر لوں۔
حقیقت کا ایک واحد ذریعہ (single source of truth) آپ کو مستقل مزاج بناتا ہے۔ پروونینس شامل کرنا آپ کو ایماندار بناتا ہے۔
اگر آپ ایک ہی نمبر دو جگہوں پر دکھاتے ہیں، تو اسے دوبارہ ٹائپ نہ کریں۔ اسے امپورٹ کریں۔ اپنے بلڈ پروسیس (build process) کو ڈپلیکیشن سنبھالنے دیں۔
ماخذ: https://dev.to/mark_b5f4ffdd8e7cd58/the-worked-example-that-disagreed-with-its-own-calculator-4cp9