You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Web-Dev-For-Beginners/translations/ur/7-bank-project/3-data/assignment.md

10 KiB

کوڈ ریفیکٹرنگ اور دستاویز سازی کا کام

سیکھنے کے مقاصد

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

صاف اور اچھی طرح سے دستاویز شدہ کوڈ حقیقی دنیا کے ویب ڈیولپمنٹ پروجیکٹس کے لیے بہت اہم ہے جہاں متعدد ڈیولپرز تعاون کرتے ہیں اور کوڈ بیس وقت کے ساتھ تبدیل ہوتے ہیں۔

کام کا جائزہ

آپ کے بینکنگ ایپ کے app.js فائل میں لاگ ان، رجسٹریشن، اور ڈیش بورڈ کی فعالیت کے ساتھ کافی اضافہ ہو چکا ہے۔ اب وقت آگیا ہے کہ اس کوڈ کو پیشہ ورانہ ترقیاتی طریقوں کا استعمال کرتے ہوئے ریفیکٹر کریں تاکہ پڑھنے، برقرار رکھنے، اور نقل کو کم کیا جا سکے۔

ہدایات

اپنے موجودہ app.js کوڈ کو درج ذیل تین بنیادی ریفیکٹرنگ تکنیکوں کو نافذ کرکے تبدیل کریں:

1. کنفیگریشن کانسٹینٹس نکالیں

کام: اپنی فائل کے اوپر ایک کنفیگریشن سیکشن بنائیں جس میں دوبارہ استعمال ہونے والے کانسٹینٹس ہوں۔

عمل درآمد کی رہنمائی:

  • سرور API بیس URL کو نکالیں (جو فی الحال کئی جگہوں پر ہارڈ کوڈڈ ہے)
  • ان کانسٹینٹس کو بنائیں جو کئی فنکشنز میں ظاہر ہونے والے ایرر میسیجز کے لیے ہوں
  • ان راستوں اور عنصر IDs کو نکالنے پر غور کریں جو بار بار استعمال ہوتے ہیں

مثال کا ڈھانچہ:

// Configuration constants
const API_BASE_URL = 'http://localhost:5000/api';
const ROUTES = {
  LOGIN: '/login',
  DASHBOARD: '/dashboard'
};

2. ایک متحدہ درخواست فنکشن بنائیں

کام: ایک دوبارہ استعمال ہونے والا sendRequest() فنکشن بنائیں جو createAccount() اور getAccount() کے درمیان نقل کو ختم کرے۔

ضروریات:

  • GET اور POST دونوں درخواستوں کو ہینڈل کریں
  • مناسب ایرر ہینڈلنگ شامل کریں
  • مختلف URL اینڈ پوائنٹس کو سپورٹ کریں
  • اختیاری درخواست باڈی ڈیٹا قبول کریں

فنکشن کے دستخط کی رہنمائی:

async function sendRequest(endpoint, method = 'GET', data = null) {
  // Your implementation here
}

3. پیشہ ورانہ کوڈ دستاویزات شامل کریں

کام: اپنے کوڈ کو واضح، مددگار تبصروں کے ساتھ دستاویز کریں جو آپ کی منطق کے "کیوں" کو بیان کریں۔

دستاویزات کے معیارات:

  • فنکشن دستاویزات شامل کریں جو مقصد، پیرامیٹرز، اور ریٹرن ویلیوز کو بیان کریں
  • پیچیدہ منطق یا کاروباری اصولوں کے لیے ان لائن تبصرے شامل کریں
  • متعلقہ فنکشنز کو سیکشن ہیڈرز کے ساتھ گروپ کریں
  • کسی بھی غیر واضح کوڈ پیٹرنز یا براؤزر مخصوص ورک اراؤنڈز کی وضاحت کریں

مثال دستاویزات کا انداز:

/**
 * Authenticates user and redirects to dashboard
 * @param {Event} event - Form submission event
 * @returns {Promise<void>} - Resolves when login process completes
 */
async function login(event) {
  // Prevent default form submission to handle with JavaScript
  event.preventDefault();
  
  // Your implementation...
}

کامیابی کے معیار

آپ کے ریفیکٹرڈ کوڈ کو ان پیشہ ورانہ ترقیاتی طریقوں کو ظاہر کرنا چاہیے:

مثالی عمل درآمد

  • کانسٹینٹس: تمام جادوئی سٹرنگز اور URLs کو واضح نام والے کانسٹینٹس میں نکالا گیا ہے
  • DRY اصول: عام درخواست منطق کو ایک دوبارہ استعمال ہونے والے sendRequest() فنکشن میں یکجا کیا گیا ہے
  • دستاویزات: فنکشنز کے واضح JSDoc تبصرے ہیں جو مقصد اور پیرامیٹرز کو بیان کرتے ہیں
  • تنظیم: کوڈ کو منطقی طور پر سیکشن ہیڈرز اور مستقل فارمیٹنگ کے ساتھ گروپ کیا گیا ہے
  • ایرر ہینڈلنگ: نئے درخواست فنکشن کا استعمال کرتے ہوئے بہتر ایرر ہینڈلنگ

مناسب عمل درآمد

  • کانسٹینٹس: زیادہ تر دہرائے جانے والے اقدار نکالے گئے ہیں، کچھ معمولی ہارڈ کوڈڈ اقدار باقی ہیں
  • فیکٹرائزیشن: بنیادی sendRequest() فنکشن بنایا گیا ہے لیکن ممکن ہے کہ تمام کنارے کے کیسز کو ہینڈل نہ کرے
  • تبصرے: کلیدی فنکشنز دستاویز کیے گئے ہیں، حالانکہ کچھ وضاحتیں زیادہ مکمل ہو سکتی ہیں
  • پڑھنے کی صلاحیت: کوڈ عام طور پر اچھی طرح سے منظم ہے، کچھ علاقوں میں بہتری کی گنجائش ہے

بہتری کی ضرورت ہے

  • کانسٹینٹس: بہت سے جادوئی سٹرنگز اور URLs فائل میں ہارڈ کوڈڈ ہیں
  • نقل: مشابہ فنکشنز کے درمیان اہم کوڈ نقل باقی ہے
  • دستاویزات: تبصرے غائب ہیں یا ناکافی ہیں جو کوڈ کے مقصد کو بیان نہیں کرتے
  • تنظیم: کوڈ میں واضح ڈھانچہ اور منطقی گروپنگ کی کمی ہے

اپنے ریفیکٹرڈ کوڈ کی جانچ

ریفیکٹرنگ کے بعد، یقینی بنائیں کہ آپ کا بینکنگ ایپ اب بھی درست طریقے سے کام کرتا ہے:

  1. تمام یوزر فلوز کی جانچ کریں: رجسٹریشن، لاگ ان، ڈیش بورڈ ڈسپلے، اور ایرر ہینڈلنگ
  2. API کالز کی تصدیق کریں: تصدیق کریں کہ آپ کا sendRequest() فنکشن اکاؤنٹ بنانے اور بازیافت کرنے دونوں کے لیے کام کرتا ہے
  3. ایرر کے منظرنامے چیک کریں: غلط اسناد اور نیٹ ورک ایررز کے ساتھ جانچ کریں
  4. کنسول آؤٹ پٹ کا جائزہ لیں: یقینی بنائیں کہ ریفیکٹرنگ کے دوران کوئی نیا ایرر متعارف نہیں ہوا

جمع کرانے کے رہنما اصول

اپنی ریفیکٹرڈ app.js فائل جمع کرائیں:

  • مختلف فعالیت کو منظم کرنے والے واضح سیکشن ہیڈرز کے ساتھ
  • مستقل کوڈ فارمیٹنگ اور انڈینٹیشن
  • تمام فنکشنز کے لیے مکمل JSDoc دستاویزات
  • اوپر ایک مختصر تبصرہ جو آپ کے ریفیکٹرنگ کے طریقہ کار کی وضاحت کرتا ہے

اضافی چیلنج: ایک سادہ کوڈ دستاویزات فائل (CODE_STRUCTURE.md) بنائیں جو آپ کے ایپ کی آرکیٹیکچر اور مختلف فنکشنز کے ایک ساتھ کام کرنے کے طریقے کی وضاحت کرے۔

حقیقی دنیا کا تعلق

یہ کام اس قسم کی کوڈ دیکھ بھال کی عکاسی کرتا ہے جو پیشہ ور ڈیولپرز باقاعدگی سے انجام دیتے ہیں۔ صنعتی ترتیبات میں:

  • کوڈ ریویوز پڑھنے اور برقرار رکھنے کی صلاحیت کا جائزہ لیتے ہیں جیسے اس کام میں
  • تکنیکی قرض جمع ہوتا ہے جب کوڈ کو باقاعدگی سے ریفیکٹر اور دستاویز نہیں کیا جاتا
  • ٹیم تعاون واضح، اچھی طرح سے دستاویز شدہ کوڈ پر منحصر ہوتا ہے جسے نئے ٹیم ممبران سمجھ سکتے ہیں
  • بگ فکسز اچھی طرح سے منظم کوڈ بیسز میں مناسب تجریدات کے ساتھ بہت آسان ہیں

آپ یہاں جو مہارتیں سیکھ رہے ہیں - کانسٹینٹس نکالنا، نقل کو ختم کرنا، اور واضح دستاویزات لکھنا - پیشہ ورانہ سافٹ ویئر ڈیولپمنٹ کے لیے بنیادی ہیں۔


ڈسکلیمر:
یہ دستاویز AI ترجمہ سروس Co-op Translator کا استعمال کرتے ہوئے ترجمہ کی گئی ہے۔ ہم درستگی کے لیے کوشش کرتے ہیں، لیکن براہ کرم آگاہ رہیں کہ خودکار ترجمے میں غلطیاں یا غیر درستیاں ہو سکتی ہیں۔ اصل دستاویز کو اس کی اصل زبان میں مستند ذریعہ سمجھا جانا چاہیے۔ اہم معلومات کے لیے، پیشہ ور انسانی ترجمہ کی سفارش کی جاتی ہے۔ ہم اس ترجمے کے استعمال سے پیدا ہونے والی کسی بھی غلط فہمی یا غلط تشریح کے ذمہ دار نہیں ہیں۔