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/bn/7-bank-project/3-data/assignment.md

15 KiB

কোড পুনর্গঠন এবং ডকুমেন্টেশন অ্যাসাইনমেন্ট

শেখার লক্ষ্যসমূহ

এই অ্যাসাইনমেন্ট সম্পন্ন করার মাধ্যমে আপনি প্রতিদিন পেশাদার ডেভেলপারদের ব্যবহৃত গুরুত্বপূর্ণ সফটওয়্যার ডেভেলপমেন্ট দক্ষতা অনুশীলন করবেন। আপনি কোডকে রক্ষণাবেক্ষণের জন্য সংগঠিত করতে, বিমূর্ততার মাধ্যমে পুনরাবৃত্তি কমাতে এবং ভবিষ্যতের ডেভেলপারদের (আপনাকে সহ) জন্য আপনার কাজ ডকুমেন্ট করতে শিখবেন!

পরিষ্কার, সুশৃঙ্খল কোড বাস্তব জীবনের ওয়েব ডেভেলপমেন্ট প্রকল্পগুলির জন্য অত্যন্ত গুরুত্বপূর্ণ যেখানে একাধিক ডেভেলপার একসাথে কাজ করেন এবং কোডবেস সময়ের সাথে সাথে পরিবর্তিত হয়।

অ্যাসাইনমেন্টের সংক্ষিপ্ত বিবরণ

আপনার ব্যাংকিং অ্যাপের app.js ফাইলটি লগইন, রেজিস্ট্রেশন এবং ড্যাশবোর্ড কার্যকারিতার সাথে উল্লেখযোগ্যভাবে বড় হয়ে উঠেছে। কোডের পাঠযোগ্যতা, রক্ষণাবেক্ষণযোগ্যতা এবং পুনরাবৃত্তি কমানোর জন্য এটি পেশাদার ডেভেলপমেন্ট অনুশীলন ব্যবহার করে পুনর্গঠন করার সময় এসেছে।

নির্দেশনা

আপনার বর্তমান app.js কোডকে তিনটি মূল পুনর্গঠন কৌশল প্রয়োগ করে রূপান্তর করুন:

১. কনফিগারেশন কনস্ট্যান্টস বের করুন

কাজ: পুনরায় ব্যবহারযোগ্য কনস্ট্যান্টস সহ আপনার ফাইলের শীর্ষে একটি কনফিগারেশন সেকশন তৈরি করুন।

বাস্তবায়নের নির্দেশনা:

  • সার্ভার API বেস URL (যা বর্তমানে একাধিক স্থানে হার্ডকোড করা হয়েছে) বের করুন
  • একাধিক ফাংশনে প্রদর্শিত ত্রুটি বার্তাগুলির জন্য কনস্ট্যান্টস তৈরি করুন
  • বারবার ব্যবহৃত রুট পাথ এবং এলিমেন্ট আইডি বের করার কথা বিবেচনা করুন

উদাহরণ কাঠামো:

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

২. একটি ইউনিফাইড রিকোয়েস্ট ফাংশন তৈরি করুন

কাজ: একটি পুনরায় ব্যবহারযোগ্য sendRequest() ফাংশন তৈরি করুন যা createAccount() এবং getAccount() এর মধ্যে ডুপ্লিকেট কোড দূর করে।

প্রয়োজনীয়তা:

  • GET এবং POST রিকোয়েস্ট উভয়ই পরিচালনা করুন
  • সঠিক ত্রুটি পরিচালনা অন্তর্ভুক্ত করুন
  • বিভিন্ন URL এন্ডপয়েন্ট সমর্থন করুন
  • ঐচ্ছিক রিকোয়েস্ট বডি ডেটা গ্রহণ করুন

ফাংশন সিগনেচার নির্দেশনা:

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

৩. পেশাদার কোড ডকুমেন্টেশন যোগ করুন

কাজ: আপনার কোডকে পরিষ্কার, সহায়ক মন্তব্য দিয়ে ডকুমেন্ট করুন যা আপনার যুক্তির "কেন" ব্যাখ্যা করে।

ডকুমেন্টেশন মানদণ্ড:

  • ফাংশনের উদ্দেশ্য, প্যারামিটার এবং রিটার্ন মান ব্যাখ্যা করে ফাংশন ডকুমেন্টেশন যোগ করুন
  • জটিল লজিক বা ব্যবসায়িক নিয়মের জন্য ইনলাইন মন্তব্য অন্তর্ভুক্ত করুন
  • সম্পর্কিত ফাংশনগুলিকে সেকশন হেডারের সাথে গ্রুপ করুন
  • যেকোনো অস্পষ্ট কোড প্যাটার্ন বা ব্রাউজার-নির্দিষ্ট সমাধান ব্যাখ্যা করুন

উদাহরণ ডকুমেন্টেশন স্টাইল:

/**
 * 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...
}

সফলতার মানদণ্ড

আপনার পুনর্গঠিত কোডে এই পেশাদার ডেভেলপমেন্ট অনুশীলনগুলি প্রদর্শিত হওয়া উচিত:

চমৎকার বাস্তবায়ন

  • কনস্ট্যান্টস: সমস্ত ম্যাজিক স্ট্রিং এবং URL স্পষ্টভাবে নামকরণ করা কনস্ট্যান্টসে বের করা হয়েছে
  • DRY নীতি: সাধারণ রিকোয়েস্ট লজিক একটি পুনরায় ব্যবহারযোগ্য sendRequest() ফাংশনে একত্রিত করা হয়েছে
  • ডকুমেন্টেশন: ফাংশনগুলির উদ্দেশ্য এবং প্যারামিটার ব্যাখ্যা করে পরিষ্কার JSDoc মন্তব্য রয়েছে
  • সংগঠন: কোডটি সেকশন হেডার এবং ধারাবাহিক ফরম্যাটিং সহ যুক্তিসঙ্গতভাবে গ্রুপ করা হয়েছে
  • ত্রুটি পরিচালনা: নতুন রিকোয়েস্ট ফাংশন ব্যবহার করে উন্নত ত্রুটি পরিচালনা

পর্যাপ্ত বাস্তবায়ন

  • কনস্ট্যান্টস: বেশিরভাগ পুনরাবৃত্ত মান বের করা হয়েছে, কিছু ছোট হার্ডকোডেড মান রয়ে গেছে
  • ফ্যাক্টরাইজেশন: একটি মৌলিক sendRequest() ফাংশন তৈরি করা হয়েছে তবে এটি সমস্ত এজ কেস পরিচালনা করতে পারে না
  • মন্তব্য: মূল ফাংশনগুলি ডকুমেন্টেড, যদিও কিছু ব্যাখ্যা আরও সম্পূর্ণ হতে পারে
  • পাঠযোগ্যতা: কোড সাধারণত ভালভাবে সংগঠিত, যদিও কিছু উন্নতির সুযোগ রয়েছে

উন্নতির প্রয়োজন

  • কনস্ট্যান্টস: অনেক ম্যাজিক স্ট্রিং এবং URL এখনও ফাইল জুড়ে হার্ডকোড করা রয়েছে
  • ডুপ্লিকেশন: অনুরূপ ফাংশনের মধ্যে উল্লেখযোগ্য কোড ডুপ্লিকেশন রয়ে গেছে
  • ডকুমেন্টেশন: অনুপস্থিত বা অপর্যাপ্ত মন্তব্য যা কোডের উদ্দেশ্য ব্যাখ্যা করে না
  • সংগঠন: কোডে পরিষ্কার কাঠামো এবং যুক্তিসঙ্গত গ্রুপিং নেই

আপনার পুনর্গঠিত কোড পরীক্ষা করা

পুনর্গঠন করার পরে নিশ্চিত করুন যে আপনার ব্যাংকিং অ্যাপ এখনও সঠিকভাবে কাজ করছে:

  1. সমস্ত ব্যবহারকারী প্রবাহ পরীক্ষা করুন: রেজিস্ট্রেশন, লগইন, ড্যাশবোর্ড প্রদর্শন এবং ত্রুটি পরিচালনা
  2. API কল যাচাই করুন: নিশ্চিত করুন যে আপনার sendRequest() ফাংশন অ্যাকাউন্ট তৈরি এবং পুনরুদ্ধারের জন্য কাজ করে
  3. ত্রুটি পরিস্থিতি পরীক্ষা করুন: অবৈধ ক্রেডেনশিয়াল এবং নেটওয়ার্ক ত্রুটির সাথে পরীক্ষা করুন
  4. কনসোল আউটপুট পর্যালোচনা করুন: নিশ্চিত করুন যে পুনর্গঠনের সময় কোনো নতুন ত্রুটি তৈরি হয়নি

জমা দেওয়ার নির্দেশিকা

আপনার পুনর্গঠিত app.js ফাইল জমা দিন:

  • বিভিন্ন কার্যকারিতা সংগঠিত করার জন্য পরিষ্কার সেকশন হেডার সহ
  • ধারাবাহিক কোড ফরম্যাটিং এবং ইনডেন্টেশন সহ
  • সমস্ত ফাংশনের জন্য সম্পূর্ণ JSDoc ডকুমেন্টেশন
  • শীর্ষে একটি সংক্ষিপ্ত মন্তব্য যা আপনার পুনর্গঠন পদ্ধতি ব্যাখ্যা করে

বোনাস চ্যালেঞ্জ: একটি সাধারণ কোড ডকুমেন্টেশন ফাইল (CODE_STRUCTURE.md) তৈরি করুন যা আপনার অ্যাপের আর্কিটেকচার এবং বিভিন্ন ফাংশন কীভাবে একসাথে কাজ করে তা ব্যাখ্যা করে।

বাস্তব জীবনের সংযোগ

এই অ্যাসাইনমেন্টটি সেই ধরণের কোড রক্ষণাবেক্ষণকে প্রতিফলিত করে যা পেশাদার ডেভেলপাররা নিয়মিতভাবে সম্পাদন করেন। শিল্প পরিবেশে:

  • কোড রিভিউ পাঠযোগ্যতা এবং রক্ষণাবেক্ষণযোগ্যতা মূল্যায়ন করে এই অ্যাসাইনমেন্টের মতো
  • টেকনিক্যাল ডেট জমা হয় যখন কোড নিয়মিতভাবে পুনর্গঠন এবং ডকুমেন্ট করা হয় না
  • দলগত সহযোগিতা পরিষ্কার, সুশৃঙ্খল কোডের উপর নির্ভর করে যা নতুন দলের সদস্যরা বুঝতে পারে
  • বাগ সংশোধন ভালভাবে সংগঠিত কোডবেসে সঠিক বিমূর্ততার সাথে অনেক সহজ

আপনি এখানে যে দক্ষতাগুলি অনুশীলন করছেন - কনস্ট্যান্টস বের করা, ডুপ্লিকেশন দূর করা এবং পরিষ্কার ডকুমেন্টেশন লেখা - পেশাদার সফটওয়্যার ডেভেলপমেন্টের জন্য মৌলিক।


অস্বীকৃতি:
এই নথিটি AI অনুবাদ পরিষেবা Co-op Translator ব্যবহার করে অনুবাদ করা হয়েছে। আমরা যথাসাধ্য সঠিকতার জন্য চেষ্টা করি, তবে অনুগ্রহ করে মনে রাখবেন যে স্বয়ংক্রিয় অনুবাদে ত্রুটি বা অসঙ্গতি থাকতে পারে। নথিটির মূল ভাষায় থাকা আসল সংস্করণকে প্রামাণিক উৎস হিসেবে বিবেচনা করা উচিত। গুরুত্বপূর্ণ তথ্যের জন্য, পেশাদার মানব অনুবাদ সুপারিশ করা হয়। এই অনুবাদ ব্যবহারের ফলে কোনো ভুল বোঝাবুঝি বা ভুল ব্যাখ্যার জন্য আমরা দায়ী থাকব না।