C# Coding Standards Part(6)

C# Coding Standards Part(6)

Don’t use HardCode


6.Hardcode တွေ​ကို​တတ်နိုင်​ရင်​ဘယ်​တော့​မှ​မ​သုံး​ပါ​နဲ့။သူ့​ကို​သုံး​မဲ့​အစား Constants ကို​သုံး​ပါ။

Constants ကို File ရဲ့​အပေါ်​မှာ​ကြေညာ​ပြီး​တော့​မှ ကိုယ်​သုံး​မဲ့ Code ထဲ​မှာ​ယူ​သုံး​ပါ။

ဒါပေမဲ့ Constants ကို File အပေါ်​မှာ​ကြေညာ​ပြီး​တော့​သုံး​ခြင်း​က​လည်း Coding Standard အရ စံ​မှီ​တဲ့ ရေး​နည်း​တော့​မဟုတ်​ပါ​ဘူး။

Pure Coding Standard ကို​သုံး​ချင်​တယ်​ဆို​ရင်​တော့ ကိုယ်​ရေး​မဲ့  Constants ကို File အထဲ​မှာ​မ​ကြေညာ​ဘဲ​နဲ့ Configuration File ထဲ​မှာ​ဖြစ်​ဖြစ် Database ထဲ​မှာ​ဖြစ်⁠ဖြစ်​ကြေညာ​ထား​ပြီး​မှ​မိမိ​ရေး​မဲ့ Code ထဲ​မှ ယူ​သုံး​ခြင်း​ကတော့ အမှန်​တကယ် Coding Standard ကို​လိုက်နာ​ထား​သော ရေး​နည်း​သာ​ဖြစ်​ပါ​တယ်။

အဲ့​ဒီ​လို​ပြုလုပ်​ခြင်း​က​ဘာ​ကောင်းကျိုး​ရသ​လဲဆို​တော့ နောင်​တစ်​ချိန်​မှာ​ပြန်​ပြင်​ချင်​တဲ့​အချိန်​မျိုး​ရောက်​ရင် ဖိုင်​တွေ​အားလုံး​ကို လိုက်​ပြင်​နေ​စရာ​မ​လို​တော့​ဘဲ ဖိုင်​တစ်​ခု​ထဲ​က Code ကို​ပြင်​လိုက်​တာ​နဲ့​သူ့​ကို​သုံး​ထား​တဲ့ ဖိုင်​တွေ​အားလုံး​ကို​ပြင်​ပြီး​သား​ဖြစ်​သွား​ပါ​တယ်။

7.နောက်​တစ်​ခု​ကတော့ HardCode String တွေ​ကို​မ​သုံး​ဘဲ​နဲ့ Resource Files တွေ​ကို​သုံး​ပါ။

Configuration file , XML ,  Database တို့စသဖြင့်ကိုသုံးပါ။

8. string တွေ​ကို တစ်​ခု​နဲ့​တစ်​ခု မ​နှုင်း​ယှဉ်​မီ Lower Case (or) Upper Case ကို​ပြောင်း​ပြီး​မှ တစ်​ခု​နဲ့​တစ်​ခု Compare လုပ်​သင့်​ပါ​တယ်။ဒါ​မှ​သာ string တွေ​ကို မ​တူညီ​တဲ့ Case တွေ​နဲ့ Compare လုပ်​တဲ့​အခါ​မှာ ပို​ပြီး​တော့ အဆင်​ပြေ​မှာ​ဖြစ်​ပါ​တယ်။

If ( name.ToLower() == “Hello” )

{

// Code

}


9. တစ်​ခါ​တစ်​လေ ကျွန်တော်​တို့ TextBox ထဲ​မှာ ရှိ​တဲ့​စာသား (Character) တွေ​ကို​ရှင်း​ထုတ်​ချင်​တယ်​ဆို​ရင် ကျွန်တော်​တို့   txt.Text=” ”; ဆို​ပြီး​တော့ ဘာ​မှ​မ​ရှိ​တဲ့ string ကို​ထည့်​ပြီး​တော့ ရှင်း​ခဲ့​ဖူး​ပါ​တယ်။Coding Standard ကို​လိုက်နာ​မယ်​ဆို​ရင်​တော့ အဲ့​ဒီ​လို​မ​ရေး​သင့်​ပါ​ဘူး။

အဲ့​ဒီ​လို​ရေး​မဲ့​အစား   .Net မှာ​အသင့်​ပါ​တဲ့   string.Empty ကို​သုံး​ပါ။ပို​ရှင်း​သွား​အောင် ဥပမာ​လေး​နဲ့​ကြည့်​လိုက်​ရအောင်။

if ( name == string.Empty )

{

// Code that do something

}


အဲ့​ဒီ​လို​ရေး​ရင် စံ ကို​လိုက်နာ​ထား​ပါ​တယ်။

if  ( name == “ “ )

{

// Code that do something

}

အဲ့​ဒီ​လို​ရေး​ရင်​တော့ မ​လိုက်နာ ဘူး​လို့​ဆို​နိုင်​ပါ​တယ်။

10. Member Variables တွေ​တတ်နိုင်​ရင်​တော့ သုံး​ခြင်း​ကို ရှောင်​ပါ။ထို့​ကြောင့် မိမိ​လို​အပ်​တဲ့ နေရာ​ရောက်​မှ​ဘဲ Local Variables  တွေ​ကို​ကြေညာ​ပြီး​တော့ လို​သ​လို​သုံး​ပါ။ Member Variables ကို​ကြေညာ​ထား​ပြီး Method တွေ​အများ​ကြီး​က ယူ​သုံး​နေ​ရင် မ​လိုလား​အပ်​တဲ့ Error တွေ​တက်​နိုင်​ပါ​တယ်။အကယ်၍ Member Variables ကို​ကြေညာ​ထား​ပြီး Method တွေ​က Share လုပ်​ပြီး​ယူ​သုံး​တဲ့​အခါ​မှာ ဘယ် Method က ဘယ်​အချိန်​မှာ ဘယ်​နေရာ​ကို ပြောင်းလဲ​သွား​သလဲ​ဆို​တာ​ကို Track လိုက်​ကြည့်​တဲ့​အခါ​မှာ ခက်ခဲ​သွား​မှာ​ဖြစ်​ပါ​တယ်။

11. enum ကို အလျဉ်းသင့်​သ​လို​သုံး​ပါ။ သိသာ​ထင်ရှား​ပြီး မ​တူညီ​တဲ့  တန်ဖိုး​တွေ​ကို ဖော်​ပြ​ချင်​တယ်​ဆို​ရင် string (or) number တွေ​ကို​မ​သုံး​ပါ​နဲ့။ဥပမာ​နဲ့​ပြော​ရ​ရင် Gender ဆို​ရင် Male နဲ့ Female ဘဲ​ရှိ​တဲ့​အတွက် သူ့​ကို​ကြေညာ​ရင် string နဲ့​မ​ကြေညာ​ဘဲ​နဲ့ .Net မှာ​ပါ​တဲ့ enum ကို​သုံး​ပြီး​တော့​ကြေညာ​သင့်​ပါ​တယ်။ပို​ပြီး​တော့ ရှင်း​သွား​အောင် ဥပမာ​လေး​နဲ့​ကြည့်​လိုက်​ရအောင်…။ဥပမာ မှာ​တော့ HTML လေး​နဲ့​ဘဲ​ပြ​ထား​ပါ​တယ်။

enum Email

{

Html,

PlainText,

Attachment

}

void SendMail (string message, Email email)

{

switch ( email )

{

case Email.Html:

// Code that Do something

break;

case Email.PlainText:

// Code that Do something

break;

case Email.Attachment:

// Code that Do something

break;

default:

// Code that Do something

break;

}

}

အဲ့​ဒီ​လို​ရေးထား​ရင်​တော့ Coding Standard ကို​လိုက်နာ​ထား​တဲ့​အတွက်​ကြောင့် စံ​မှီ​တဲ့ ရေး​နည်း​ဘဲ​ဖြစ်​ပါ​တယ်။

ဒါ​ဆို​ရင် စံ ကို​မ​လိုက်နာ​တဲ့ ပုံစံ​ကတော့

void SendMail (string message, string email)

{

switch ( email )

{

case “Html”:

// Do something

break;

case “PlainText”:

// Do something

break;

case “Attachment”:

// Do something

break;

default:

// Do something

break;

}

}

12. Member Variables တွေ​ကို ကြေညာ​မယ်​ဆို​ရင်​လည်း  public နဲ့ protected နဲ့​မ​ကြေညာ​သင့်​ပါ​ဘူး။ကြေညာ​မယ်​ဆို​ရင်​တော့  OOP Rules ရဲ့ စံ​အရ  Private နဲ့​ဘဲ​ကြေညာ​သင့်​ပါ​တယ်…။ပြီး​တော့​မှ public Property ကို​သုံး​ပြီး​တော့​ပြောင်းလဲ​သင့်​ပါ​တယ်။

13. Event Handler method ထဲ​မှာ Required Action ကို​ဆောင်ရွက်​တဲ့ Code တွေ​မ​ပါ​သင့်​ပါ​ဘူး။နောက်​ပြီး​တော့ ကိုယ်​ရေးထား​တဲ့ Event Handler Method က​နေ​နောက်ထပ် method တစ်​ခု​ကိုခေါ်​တာ​မျိုး​တွေ​ကို​ပြုလုပ်​သင့်​ပါ​တယ်။ Method တစ်​ခု​ထဲ​မှာ​ဘဲ အားလုံး​မ​ရေး​ဘဲ​နဲ့​သီးခြား Method တွေ​ကို တစ်​ခု​ချင်းခေါ်​သုံး​တာ​မျိုး​တွေ ပြုလုပ်​ခြင်း​ကို​ဆိုလို​တာ​ဖြစ်​ပါ​တယ်။

14. မိမိ​ရေးသား​နေ​တဲ့ Code ထဲ​မှာ​ပါ​တဲ့ Path လမ်းကြောင်း​တွေ​ကို​ပေး​တဲ့​အခါ​မှာ​လည်း Hardcode တွေ​ကို​သုံး​ပြီး​တော့​မ​ပေး​ပါ​နဲ့။နောက်​ပြီး​တော့ Drive Name တွေ​ကို​လည်း HardCode မ​ပေး​ပါ​နဲ့။

Application Path တွေ​ကို Relative Path နဲ့ Programmatically ဘဲ​ပေး​ပါ။

15. ကိုယ်​ရေးထား​တဲ့ Code တွေ​က Hardcode ဖြစ်​နေ​ရင် အခက်​အခဲ​ကြုံ​နိုင်​ပါ​တယ်။ဘယ်​လို​မျိုး​လဲဆို​တော့ ကိုယ်​က Drive D: ထဲ​မှာ Data တွေ​သွား​သိမ်း​အောင် Hardcode နဲ့​ရေးထား​ပါ​တယ်။ထို့​ကဲ့သို့​ပြုလုပ်​ခြင်း​မျိုး​ကို​ရှောင်​ပါ။ဘာ​ဖြစ်​လို့​လဲဆို​တော့ ကိုယ့်​စက်​မှာ​ကတော့ D: ထဲ​မှာ​သွား​သိမ်း​လို့​ရ​ပေ​မဲ့ တခြား​သူ​များ​စက်​မှာ D: မ​ရှိ​ဘဲ​နဲ့  A: , B: , Z: တို့​စ​သည်​ဖြင့်​ရှိ​လာ​တဲ့​အခါ​မှာ Error တက်​လာ​နိုင်​တဲ့​အတွက်​ကြောင့် ရှောင်​ကြဉ်​ရ​ပါ​မယ်။

16. ကိုယ်​ရေးထား​တဲ့ Application ကို​စ​မ Run ခင်​မှာ ကိုယ်​ရေးထား​တဲ့ Application ကို Run နိုင်​မဲ့ Drive Location မှာ ကိုယ်​ရေးထား​တဲ့ Application အလုပ်​လုပ်​စေ​နိုင်​ဖို့​အတွက် ဖိုင်​တွေ​ရှိ​မ​ရှိ​ကို ဦးစွာ စစ်​တဲ့ Code တွေ​ကို​ရေးသား​ထား​ဖို့​လို​ပါ​တယ်။ဥပမာ​အနေ​နဲ့​ပြော​ရ​ရင် Database နဲ့​ချိတ်ဆက်​တဲ့ Code တွေ​ပါ​ခဲ့​ရင် အရင်​ဆုံး​ဦး ကျွန်တော်​တို့​သုံး​မဲ့ Database Connetion ရှိ​မ​ရှိ…အလုပ် လုပ်…မ​လုပ် စ​သ​ဖြင့်​စစ်​တဲ့ Code တွေ​ကို​ထည့်​ထား​ဖို့​လို​ပါ​လိမ့်​မယ်။

အကယ်၍ Problem (Error) တက်​ခဲ့​တယ်​ဆို​ရင်​လည်း အသုံးပြု​သူ User ကို Message Box လို​မျိုး​ရိုက်​မ​ပြ​ဘဲ​နဲ့…ခင်မင်​ရင်းနှီး​တဲ့ စကားလုံး​တွေ​နဲ့  Error တက်​နေ​ကြောင်း​ကို​ပြသ​သင့်​ပါ​တယ်။

ဘာ​ဖြစ်​လို့ Message Box က​မ​ကောင်း​ရသ​လဲဆို​တော့ လေ့​လာ​တွေ့​ရှိ​ချက်​များ​အရ Message Box ဖြင့်​ပြ ခြင်း​က  User ကို​အထိတ်​တ​လန့်​ဖြစ်​စေ​တယ်​လို့​ဆို​ထား​ပါ​တယ်။ဥပမာ.. သုံး​နေ​တုန်း (ဒုန်) ဆို​ပြီး​တော့ တက်​လာ​ရင် User က​အထိတ်​တ​လန့်​ဖြစ်​စေ​တဲ့​အပြင် စိတ်ပျက်​သွား​နိုင်​တဲ့​အတွက်​ကြောင့် Label လေး​ကို အရောင်​လေး​နဲ့​ဖြစ်​စေ… ဘေး​မှာ အရောင်​လေး​နဲ့​ဖြစ်​စေ ယဉ်ကျေး​စွာ ရေးသား အသိ​ပေး​သင့်​ပါ​တယ်​ခင်ဗျာ။

ဆုံး​သည်​အထိ​ဖတ်​ပေး​သော​ကြောင့် ကျေးဇူးတင်​ပါ​တယ်…။

ဆက်​ပါ​ဦး​မည်….။

Facebook comments:

3 Responses

  1. junemoe says:

    I always read your all post but I haven’t my words to thank you . so sorry… All your post is good for beginners like me…

    Thanks a lot… Be Great!……..

    Junemoe

  2. Zawmin says:

    I’m glad to know you read all of my post . So Thanks to you..
    No need to sorry to me because my good-will is for all of our readers…
    :D

    Zawmin

  3. smart1500 says:

    nice work bro !!! i like ur post
    check pls ~ something is wrong in tolower==”Hello”
    Thank a lot

Leave a comment


*