Code တွေမေ့သွားတတ်တဲ့ပြဿနာကို လျှော့ချဖို့
Code တွေက မရေးဖြစ်တာကြာရင် တကယ်မေ့သွားတယ်။ Function တွေဆိုရင် ဘုရားနဲ့ကိုယ်ပဲ သိရာက ခုပြန်ဖတ်ကြည့်တော့ ဘုရားပဲသိတော့တာမျိုး။ တချို့ဟာတွေဆိုဒီနေရာမှာ ဒီ variable name ဘာလို့ပေးခဲ့လဲတောင် မသိတော့ဘူး။ အဲလိုစောင်ကျိုးနည်းတာ။ ဒီပြဿနာကို လျှော့ချဖို့ လုပ်လို့ရတာလေးတွေ ပြောပြမယ်။
function တွေကို တတ်နိုင်သလောက် ခပ်သေးသေးပဲရေး။ helper function တွေခွဲထုတ်ပေါ့။ ဥပမာ MySQL DB ထဲကို User တယောက်လှမ်း create လုပ်ချင်တယ်။ ဒါပေမယ့် အရင်ဆုံး client ကပေးလိုက်တဲ့ အချက်အလက်တွေ စုံလား။ မှန်လား။ နာမည်က အရမ်းတိုနေလား ရှည်နေလား စသဖြင့် စစ်မယ်ဆိုရင် အဲဒီ handler ထဲမှာ ထည့်မရေးနဲ့။ Schema validation pipeline pattern ကိုသုံးရင်သုံး၊ မသုံးဘူးဆိုရင် helper သပ်သပ်ခွဲ။
နောက်တခုက variable နာမည်တွေကို လူဖတ်လို့ နားလည်မယ့်ဟာကို ပေး။ system programming ယဥ်ကျေးမှုကြောင့် variable နာမည် တလုံးပြတ်တွေ ပေးတယ်ဆိုရင်တောင် သူ့ဘေးက context ကိုဖတ်ပြီး derive လုပ်လို့ရမယ်ဆိုမှပေး။ ဥပမာ b, err: = bytes.Decode(&src) ပေါ့။ ဒီမှာဆိုရင် b က ByeStream ကိုပြောမှန်း မှန်းလို့ရတယ်။ b, err: = check(a) ဆိုရင် ဘာသွားမှန်းမလဲ။
Constant တွေသုံး။ Hardcoded string တွေကိုလျှော့သုံး။ မဟုတ်ရင် တခုခုပြင်ရမယ်ဆိုလို့က codebase တခုလုံး ပွစိတက်နေအောင် လိုက်ပြင်ရမှာ။ တနေရာရာကျန်ခဲ့ရင်လည်း နားကားဦးမယ်။
Comment ရေး။ ခဏခဏ ပြောရတယ်။ documentation ပြန်ထုတ်ရတာလည်း လွယ်တယ်။ code review ရင်လည်း အိုကေတယ်။ ကြည့်လိုက်လို့ တခါတည်း တန်းနားမလည်နိုင်လောက်ဘူးထင်တဲ့ နေရာတွေမှာ comment ရေးခဲ့ပေး။ ရေးဆိုလို့လည်း ဗာရာဏသီလောက် ရှည်အောင် မရေးခဲ့နဲ့ဦးပေါ့။ ဒါ ဘာလုပ်တဲ့ code လဲ။ ဘာသတိထားစရာရှိလဲ။ လိုအပ်ရင် ဘာကြောင့် ဒီ approach ကိုရွေးလဲ။ ဒါဆိုရပြီ။
If else တွေတအားမသုံးနဲ့။ If else နဲ့ Error Handling တွေထပ်သွားရင် handler function မှာ logic ကတခုတည်းကိုအရှည်ကြီး ဖြစ်သွားတတ်တယ်။ ဒီလိုနေရာတွေမှာ State Delegation pattern လေးတွေ ကြုံကြိုက်ရင်သုံး။ ဥပမာ user status ပေါ် မူတည်ပြီး feature တခုကိုဘယ်လိုပေးသုံးမယ်ဆိုတာမျိုးကို status state object ရဲ့နောက်က concrete implementation အဖြစ်ပဲထား။ user status ကို if else နဲ့စစ်ပြီး useFeatureAdmin, useFeatureCustumer, စသဖြင့် တခုချင်း ခေါ်ရမယ့်အစား user.useFeature() လို့တန်းခေါ်လို့ရတော့ အများကြီး clean ဖြစ်သွားမယ်။
Code ကတော့ မရေးတာကြာ မထိတာကြာရင်တော့ မေ့မှာ သဘာဝပဲ။ အစကတည်းက နည်းနည်း အရှည်ကိုကြိုတွေးပြီး လုပ်ထားရင် နောက် ၂ ပတ်နေမှ နဖူးပေါ် လက်တင်ပြီး ငါဒီသောက်ကျိုးနည်း function ကြီးကိုဘာလို့ရေးခဲ့ပါလိမ့်လို့ အကြာကြီး မတွေးရတော့ဘူးပေါ့။