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.
142 lines
17 KiB
142 lines
17 KiB
<!--
|
|
CO_OP_TRANSLATOR_METADATA:
|
|
{
|
|
"original_hash": "d0a02cb117e91a5b5f24178080068a3d",
|
|
"translation_date": "2025-10-24T16:43:57+00:00",
|
|
"source_file": "7-bank-project/3-data/assignment.md",
|
|
"language_code": "my"
|
|
}
|
|
-->
|
|
# ကုဒ်ပြုပြင်ခြင်းနှင့်စာရွက်စာတမ်းရေးအလုပ်
|
|
|
|
## သင်ယူရမည့်ရည်ရွယ်ချက်များ
|
|
|
|
ဤအလုပ်ကိုပြီးမြောက်စေခြင်းဖြင့်၊ သင်သည်ပရော်ဖက်ရှင်နယ်ဆော့ဖ်ဝဲဒီဇိုင်းလုပ်ငန်းများတွင်နေ့စဉ်အသုံးပြုသောအရေးကြီးသောကျွမ်းကျင်မှုများကိုလေ့ကျင့်နိုင်မည်ဖြစ်သည်။ သင်သည်ကုဒ်ကိုစီမံခန့်ခွဲမှုအတွက်စနစ်တကျပြုလုပ်ခြင်း၊ အရည်အသွေးမြင့်မားသောကုဒ်ရေးသားခြင်းနှင့်နောက်ထပ်ဒီဇိုင်းလုပ်ငန်းများအတွက်စာရွက်စာတမ်းရေးခြင်းတို့ကိုလေ့လာနိုင်မည်ဖြစ်သည်။
|
|
|
|
သန့်ရှင်းပြီး စနစ်တကျရေးသားထားသောကုဒ်သည် အများစုသောဝဘ်ဒီဇိုင်းလုပ်ငန်းများတွင် အရေးပါသောအခန်းကဏ္ဍတစ်ခုဖြစ်ပြီး၊ အများအပြားသောဒီဇိုင်းလုပ်သားများပူးပေါင်းဆောင်ရွက်ခြင်းနှင့်ကုဒ်များကိုအချိန်နှင့်အမျှပြောင်းလဲမှုများအတွက်အရေးပါသည်။
|
|
|
|
## အလုပ်အကျဉ်းချုပ်
|
|
|
|
သင်၏ဘဏ်အက်ပ်၏ `app.js` ဖိုင်သည် login, registration နှင့် dashboard လုပ်ဆောင်ချက်များဖြင့်အလွန်ကြီးမားလာပါပြီ။ ကုဒ်ကိုဖတ်ရှုရလွယ်ကူမှု၊ စနစ်တကျပြုပြင်မှုနှင့်ထပ်တူကျမှုများကိုလျှော့ချရန်အတွက် ပရော်ဖက်ရှင်နယ်ဒီဇိုင်းလုပ်ငန်းစဉ်များကိုအသုံးပြု၍ ကုဒ်ကိုပြုပြင်ရန်အချိန်ရောက်ပါပြီ။
|
|
|
|
## လုပ်ဆောင်ရန်ညွှန်ကြားချက်များ
|
|
|
|
သင်၏လက်ရှိ `app.js` ကုဒ်ကိုအောက်ပါပြုပြင်မှုနည်းလမ်းသုံးခုကိုအသုံးပြု၍ ပြောင်းလဲပါ။
|
|
|
|
### 1. Configuration Constants ကိုထုတ်ယူပါ
|
|
|
|
**လုပ်ငန်းတာဝန်**: သင်၏ဖိုင်၏ထိပ်တွင်အသုံးပြုနိုင်သော constants များပါဝင်သော configuration အပိုင်းတစ်ခုဖန်တီးပါ။
|
|
|
|
**အကောင်အထည်ဖော်ရန်လမ်းညွှန်ချက်များ**:
|
|
- server API base URL ကို (လက်ရှိတွင်နေရာအများအပြားတွင် hardcoded ဖြစ်နေသည်) ထုတ်ယူပါ
|
|
- လုပ်ဆောင်ချက်များစွာတွင်ထပ်တူထပ်မျှပေါ်လာသော error messages များအတွက် constants များဖန်တီးပါ
|
|
- ထပ်တူထပ်မျှအသုံးပြုသော route paths နှင့် element IDs များကိုထုတ်ယူရန်စဉ်းစားပါ
|
|
|
|
**ဥပမာဖွဲ့စည်းမှု**:
|
|
```javascript
|
|
// Configuration constants
|
|
const API_BASE_URL = 'http://localhost:5000/api';
|
|
const ROUTES = {
|
|
LOGIN: '/login',
|
|
DASHBOARD: '/dashboard'
|
|
};
|
|
```
|
|
|
|
### 2. Unified Request Function တစ်ခုဖန်တီးပါ
|
|
|
|
**လုပ်ငန်းတာဝန်**: `createAccount()` နှင့် `getAccount()` အကြားရှိကုဒ်ထပ်တူကျမှုများကိုဖယ်ရှားရန် `sendRequest()` ဟုခေါ်သောအသုံးပြုနိုင်သောလုပ်ဆောင်ချက်တစ်ခုတည်ဆောက်ပါ။
|
|
|
|
**လိုအပ်ချက်များ**:
|
|
- GET နှင့် POST requests နှစ်မျိုးလုံးကိုကိုင်တွယ်ပါ
|
|
- အမှားကိုမှန်ကန်စွာကိုင်တွယ်ပါ
|
|
- URL endpoints များကိုထောက်ပံ့ပါ
|
|
- optional request body data ကိုလက်ခံပါ
|
|
|
|
**Function signature လမ်းညွှန်ချက်**:
|
|
```javascript
|
|
async function sendRequest(endpoint, method = 'GET', data = null) {
|
|
// Your implementation here
|
|
}
|
|
```
|
|
|
|
### 3. Professional Code Documentation ထည့်သွင်းပါ
|
|
|
|
**လုပ်ငန်းတာဝန်**: သင်၏ကုဒ်ကိုသေချာပြီးအသုံးဝင်သောမှတ်ချက်များဖြင့်စာရွက်စာတမ်းရေးပါ။
|
|
|
|
**Documentation စံသတ်မှတ်ချက်များ**:
|
|
- လုပ်ဆောင်ချက်များ၏ရည်ရွယ်ချက်၊ parameters နှင့် return values ကိုရှင်းလင်းသော function documentation ထည့်သွင်းပါ
|
|
- ရှုပ်ထွေးသော logic သို့မဟုတ် business rules များအတွက် inline comments ထည့်သွင်းပါ
|
|
- ဆက်စပ်သောလုပ်ဆောင်ချက်များကိုအပိုင်းခေါင်းစဉ်များဖြင့်အုပ်စုဖွဲ့ပါ
|
|
- မထင်ရှားသောကုဒ်ပုံစံများ သို့မဟုတ် browser-specific workarounds များကိုရှင်းပြပါ
|
|
|
|
**Documentation style ဥပမာ**:
|
|
```javascript
|
|
/**
|
|
* 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...
|
|
}
|
|
```
|
|
|
|
## အောင်မြင်မှုအချက်အလက်များ
|
|
|
|
သင်ပြုပြင်ထားသောကုဒ်သည်ဤပရော်ဖက်ရှင်နယ်ဒီဇိုင်းလုပ်ငန်းစဉ်များကိုပြသရမည်:
|
|
|
|
### ထူးချွန်သောအကောင်အထည်ဖော်မှု
|
|
- ✅ **Constants**: magic strings နှင့် URLs အားလုံးကိုရှင်းလင်းသောအမည်ပေးထားသော constants များထဲသို့ထုတ်ယူထားသည်
|
|
- ✅ **DRY Principle**: shared request logic ကိုအသုံးပြုနိုင်သော `sendRequest()` function ထဲတွင်စုစည်းထားသည်
|
|
- ✅ **Documentation**: လုပ်ဆောင်ချက်များတွင်ရည်ရွယ်ချက်နှင့် parameters ကိုရှင်းလင်းသော JSDoc မှတ်ချက်များပါရှိသည်
|
|
- ✅ **Organization**: ကုဒ်ကိုအပိုင်းခေါင်းစဉ်များနှင့်အညီစနစ်တကျအုပ်စုဖွဲ့ထားသည်
|
|
- ✅ **Error Handling**: error ကိုကိုင်တွယ်မှုကိုအသစ်သော request function အသုံးပြု၍တိုးတက်စေထားသည်
|
|
|
|
### လုံလောက်သောအကောင်အထည်ဖော်မှု
|
|
- ✅ **Constants**: ထပ်တူကျသောတန်ဖိုးများအများစုကိုထုတ်ယူထားပြီး၊ အနည်းငယ်သော hardcoded values ကျန်ရှိနေသည်
|
|
- ✅ **Factorization**: အခြေခံ `sendRequest()` function တည်ဆောက်ထားပြီး၊ edge cases အားလုံးကိုကိုင်တွယ်နိုင်ခြင်းမရှိ
|
|
- ✅ **Comments**: အဓိကလုပ်ဆောင်ချက်များကိုစာရွက်စာတမ်းရေးထားပြီး၊ အချို့သောရှင်းလင်းချက်များပိုမိုပြည့်စုံနိုင်သည်
|
|
- ✅ **Readability**: ကုဒ်သည်အများအားဖြင့်စနစ်တကျရှိပြီး၊ အချို့သောနေရာများတွင်တိုးတက်မှုအခွင့်အလမ်းရှိသည်
|
|
|
|
### တိုးတက်မှုလိုအပ်သည်
|
|
- ❌ **Constants**: magic strings နှင့် URLs အများအပြားကိုဖိုင်တစ်ခုလုံးတွင် hardcoded အဖြစ်ကျန်ရှိနေသည်
|
|
- ❌ **Duplication**: ထပ်တူကျသောကုဒ်များသည်ဆင်တူသောလုပ်ဆောင်ချက်များအကြားတွင်ကျန်ရှိနေသည်
|
|
- ❌ **Documentation**: လုပ်ဆောင်ချက်များ၏ရည်ရွယ်ချက်ကိုမရှင်းလင်းသောမှတ်ချက်များ သို့မဟုတ်မှတ်ချက်များမပါရှိ
|
|
- ❌ **Organization**: ကုဒ်တွင်ရှင်းလင်းသောဖွဲ့စည်းမှုနှင့်အပိုင်းအခြားအုပ်စုဖွဲ့မှုမရှိ
|
|
|
|
## သင်ပြုပြင်ထားသောကုဒ်ကိုစမ်းသပ်ခြင်း
|
|
|
|
ပြုပြင်ပြီးနောက်၊ သင်၏ဘဏ်အက်ပ်သည်အောက်ပါလုပ်ဆောင်ချက်များကိုမှန်ကန်စွာဆောင်ရွက်နေဆဲဖြစ်ကြောင်းသေချာပါစေ:
|
|
|
|
1. **အသုံးပြုသူလမ်းကြောင်းများအားလုံးကိုစမ်းသပ်ပါ**: Registration, login, dashboard ပြသခြင်းနှင့် error ကိုကိုင်တွယ်ခြင်း
|
|
2. **API calls ကိုအတည်ပြုပါ**: သင်၏ `sendRequest()` function သည် account ဖန်တီးခြင်းနှင့်ရယူခြင်းနှစ်ခုလုံးအတွက်အလုပ်လုပ်နေကြောင်းအတည်ပြုပါ
|
|
3. **အမှားအခြေအနေများကိုစမ်းသပ်ပါ**: မမှန်ကန်သော credentials နှင့် network errors ဖြင့်စမ်းသပ်ပါ
|
|
4. **console output ကိုစစ်ဆေးပါ**: ပြုပြင်မှုအတွင်း error အသစ်များမဖြစ်ပေါ်လာကြောင်းသေချာပါစေ
|
|
|
|
## တင်သွင်းရန်လမ်းညွှန်ချက်များ
|
|
|
|
သင်ပြုပြင်ထားသော `app.js` ဖိုင်ကိုတင်သွင်းပါ:
|
|
- လုပ်ဆောင်ချက်အမျိုးမျိုးကိုစနစ်တကျဖွဲ့စည်းထားသောအပိုင်းခေါင်းစဉ်များပါရှိသည်
|
|
- ကုဒ်ဖွဲ့စည်းမှုနှင့်အတန်းခွဲခြားမှုကိုညီညွတ်စွာထိန်းသိမ်းထားသည်
|
|
- လုပ်ဆောင်ချက်အားလုံးအတွက်ပြည့်စုံသော JSDoc documentation ပါရှိသည်
|
|
- သင်၏ refactoring လုပ်ငန်းစဉ်ကိုရှင်းပြထားသောအပေါ်ဆုံးမှတ်ချက်တစ်ခုပါရှိသည်
|
|
|
|
**အပိုဆုစိန်ခေါ်မှု**: သင်၏ app ၏ architecture နှင့်လုပ်ဆောင်ချက်များအချင်းချင်းဘယ်လိုဆက်စပ်နေသည်ကိုရှင်းပြထားသောရိုးရှင်းသော code documentation ဖိုင် (`CODE_STRUCTURE.md`) တစ်ခုဖန်တီးပါ။
|
|
|
|
## အမှန်တကယ်ဆက်စပ်မှု
|
|
|
|
ဤအလုပ်သည်ပရော်ဖက်ရှင်နယ်ဒီဇိုင်းလုပ်သားများမှအကြိမ်ကြိမ်လုပ်ဆောင်ရသောကုဒ်ပြုပြင်မှုကိုတူညီသည်။ စက်မှုလုပ်ငန်းများတွင်:
|
|
- **Code reviews** သည်ဤအလုပ်လိုပဲဖတ်ရှုရလွယ်ကူမှုနှင့်စနစ်တကျမှုကိုအကဲဖြတ်သည်
|
|
- **Technical debt** သည်ကုဒ်ကိုမကြာခဏပြုပြင်ခြင်းနှင့်စာရွက်စာတမ်းရေးခြင်းမရှိပါကစုဆောင်းလာသည်
|
|
- **Team collaboration** သည်အသစ်သောအဖွဲ့ဝင်များနားလည်နိုင်သောရှင်းလင်းပြီးစာရွက်စာတမ်းရေးထားသောကုဒ်ပေါ်တွင်မူတည်သည်
|
|
- **Bug fixes** သည် abstraction များနှင့်စနစ်တကျပြုပြင်ထားသောကုဒ်များတွင်ပိုမိုလွယ်ကူသည်
|
|
|
|
သင်ဤနေရာတွင်လေ့ကျင့်နေသောကျွမ်းကျင်မှုများ - constants ထုတ်ယူခြင်း၊ ထပ်တူကျမှုကိုဖယ်ရှားခြင်းနှင့်ရှင်းလင်းသောစာရွက်စာတမ်းရေးခြင်း - သည်ပရော်ဖက်ရှင်နယ်ဆော့ဖ်ဝဲဒီဇိုင်းလုပ်ငန်းများအတွက်အခြေခံကျသောကျွမ်းကျင်မှုများဖြစ်သည်။
|
|
|
|
---
|
|
|
|
**အကြောင်းကြားချက်**:
|
|
ဤစာရွက်စာတမ်းကို AI ဘာသာပြန်ဝန်ဆောင်မှု [Co-op Translator](https://github.com/Azure/co-op-translator) ကို အသုံးပြု၍ ဘာသာပြန်ထားပါသည်။ ကျွန်ုပ်တို့သည် တိကျမှုအတွက် ကြိုးစားနေသော်လည်း အလိုအလျောက် ဘာသာပြန်မှုများတွင် အမှားများ သို့မဟုတ် မမှန်ကန်မှုများ ပါဝင်နိုင်သည်ကို သတိပြုပါ။ မူရင်းဘာသာစကားဖြင့် ရေးသားထားသော စာရွက်စာတမ်းကို အာဏာတရ အရင်းအမြစ်အဖြစ် သတ်မှတ်သင့်ပါသည်။ အရေးကြီးသော အချက်အလက်များအတွက် လူက ဘာသာပြန်မှုကို အသုံးပြုရန် အကြံပြုပါသည်။ ဤဘာသာပြန်မှုကို အသုံးပြုခြင်းမှ ဖြစ်ပေါ်လာသော အလွဲအမှားများ သို့မဟုတ် အနားလွဲမှုများအတွက် ကျွန်ုပ်တို့သည် တာဝန်မယူပါ။ |