ပိုေကာင္းတဲ့ ပရိုဂရမ္မာ – ၅

အပိုင္း ၁ သင္ခန္းစာ ၄  ဖယ္ရွားျခင္းျဖင့္ ကုဒ္ေတြကို တိုးတက္ေအာင္ လုပ္ပါ

“အပိုအလိုမရွိ အဆုံးသတ္တိက်တဲ့ ရိုးရွင္းမွဳကို အလွတရားအျဖစ္ က်ဳပ္တို႕မွတ္ယူပါတယ္” –Ralph Waldo Emerson

အနည္းဆုံးသုံးစြဲျခင္းျဖင့္ အရာရာျပည့္စုံလုံေလာက္ပါေစ။ ဒီစကားပုံကလည္း အသုံးမ်ားလို႕ဟုံေနေလာက္ၿပီ။ ဒါေပမဲ့ ဒါတကယ္မွန္ပါတယ္။

 

က်ဳပ္အမွတ္ရမိတဲ့ စိတ္လွဳပ္ရွားစရာအေကာင္းဆုံး တိုးတက္မွဳတခ်ိဳ႕ကေတာ့ ကုဒ္အေတာ္မ်ားမ်ားကို ဖယ္ရွားပစ္ျခင္းျဖစ္ပါတယ္။

ေျပာပါရေစ။ သိပ္ေကာင္းတဲ့ ခံစားခ်က္ပါဗ်။

မွတ္ရန္ ။ ။ ကုဒ္အသစ္ေတြထပ္ထည့္ျခင္းျဖင့္ system (စနစ္) တခုကို ပိုေကာင္းေအာင္လုပ္ႏိုင္ပါတယ္ ။ ကုဒ္ေတြကို ဖယ္ရွားျခင္းျဖင့္လည္း ပိုေကာင္းေအာင္လုပ္ႏုိင္တာပါပဲ။

 

ကုဒ္အလိုလိုက္မွဳ

ဘာေျကာင့္မ်ား မလိုတဲ့ကုဒ္ေတြ ေရးမိျကပါလိမ့္

ကုဒ္အပိုေတြေရးဖို႕ ပရိုဂရမ္မာတေယာက္ကို ဘယ္အခ်က္ေတြက ေစ့ေဆာ္တာလဲ

စစ္ေဆး(review)မွဳ လုပ္တာေတြကို ဘယ္လို ေက်ာ္၀င္လာတာလဲ

 

အေသအခ်ာေျပာႏိုင္တာကေတာ့ ပရိုဂရမ္မာတေယာက္က စိတ္အလိုလိုက္ၿပီး သူ႕ရင္တြင္းျဖစ္ေတြ ထည့္ေရးလို႕ပါ။

ဥပမာအားျဖင့္

  • ပရိုဂရမ္မာက ေရးခ်င္လို႕ ေရးလိုက္ေတာ့ ကုဒ္အပိုကုဒ္အေပ်ာ္ေတြပါ (သင့္ကို ေပ်ာ္ျမဴးေစယုံသက္သက္နဲ႕ ကုဒ္မေရးပါနဲ႕ တန္ဖိုးထပ္ထည့္ဖို႕သာ ကုဒ္ေရးပါ)
  • ဒီ အဂၤါရပ္(feature) ကို ေနာက္ေနာင္လိုေကာင္းလိုမွာပဲလို႕ တေယာက္ေယာက္က ထင္တာနဲ႕ ျကိဳတင္ၿပီး ခုပဲဆုံးျဖတ္ခ်က္ခ်ကာ ေရးခ်ပစ္တယ္ (ဒါဟာ YAGNI လို႕အတိုေခၚတဲ့ You aren’t gonna need it ဆိုတဲ့ တကယ္လိုအပ္ခ်က္မရွိပဲနဲ႕ ပရိုဂရမ္မာက ထပ္ထည့္မေရးသင့္ပါဘူး ဆိုတဲ့ ပရုိဂရမ္းမင္း သတ္မွတ္ခ်က္တခုပါ ခုမလိုေသးရင္ ခုမေရးပါနဲ႕ )
  • ဒါေပမဲ့ ဒါက အေသးအမႊားေလးပါ ျကီးမားတဲ့အဂၤါရပ္မဟုတ္ဘူး

Customer ကို လိုလားမလိုလား ျပန္သြားေမးမွာထပ္စာရင္ ခုေရးထားလိုက္တာက ပိုလြယ္ပါတယ္ေလ ( ကုဒ္အပိုေတြ ေရးဖို႕ျပင္ဖို႕ဆိုတာ အခ်ိန္မ်ားစြာ လိုအပ္ပါတယ္ customer က အမွန္ေတာ့ အေတာ္ကို ေဖာ္ေရြတတ္ပါတယ္

ကုဒ္ေသးေသးေလးက တစ္မုဟုတ္ခ်င္းျကီးထြားလာျပီး ျပင္ဖို႕လိုလာႏုိင္တယ္ေလ)

  • စာရြက္စာတမ္းထဲမွာ မပါတဲ့ အဂၤါရပ္အပိုေတြကုိ ပရုိဂရမ္မာကို သူ႕ဘာသာသူ လိုလားခ်က္ေတြ (requirement) ေတြ ထြင္ၿပီး ေရးခ်လိုက္တယ္

လိုအပ္ခ်က္ အတုအေယာင္ေတြေပါ့ (လိုလားခ်က္ေတြဆိုတာ ပရိုဂရမ္မာေတြက သတ္မွတ္ရတာမဟုတ္ပါဘူး customer ေတြက သတ္မွတ္ရတာပါ)

 

ခုေတာ့ က်ဳပ္တို႕မွာ အလြယ္တကူနားလည္ႏိုင္တဲ့ က်စ္လစ္တဲ့ ေဆာ့၀ဲတည္ေဆာက္ေရးလုပ္ငန္းလုပ္စဥ္ ရွိတယ္ အင္မတန္ေကာင္းတဲ့ ပရုိဂရမ္မာေတြလည္း ရွိၿပီး ဒီလိုမ်ိဳးျဖစ္စဥ္ေတြကို ေရွာင္ရွားဖို႕ အဆင့္ဆင့္နည္းလမ္းတက် စစ္ေဆးမွဳေတြ ရွိပါတယ္။ သို႕ေပမယ့္လည္း ဒီလိုမလိုအပ္တဲ့ ကုဒ္အပိုေတြ ဘာလို႕ ခုိးေျကာင္ခုိး၀ွက္ ၀င္ေရာက္လာေနတာလဲ

 

ထူးဆန္းတယ္ဗ် ဟုတ္တယ္ဟုတ္

 

 

ဒါဟာဆိုးပါတယ္ ေရွာင္လႊဲလို႕ေတာ့ မရႏုိင္ပါဘူး

အဂၤါရပ္အသစ္ေတြကို မထည့္ပဲ ေရွာင္လႊဲရႏုိင္ေပမယ့္ ေသဆုံးေနတဲ့ကုဒ္ေတြ သင့္ေဆာ့၀ဲတည္ေဆာက္ေရးလုပ္ငန္းစဥ္အတြင္း သဘာ၀အေလွ်ာက္ေပၚေပါက္လာႏုိင္ပါတယ္

ဒီအတြက္ ကသိကေအာက္မျဖစ္ပါႏွင့္

ေရွာင္လႊဲမရႏုိင္တဲ့အေျကာင္းအရင္းေတြကေန ဒီလိုအေျကာင္းအရာေတြ ေပၚေပါက္လာတတ္ပါတယ္

  • အဂၤါရပ္ေတြကို UI ကေန ဖယ္ရွားလိုက္ေသာ္လည္း ေနာက္ကေရးထားတဲ့ကုဒ္ေတြကို မဖယ္မိတဲ့အခါမ်ိဳးေပါ့။ ဘယ္ေတာ့မွေခၚမသုံးမယ့္ကုဒ္ေတြကို မဖယ္ရွားမိလိုက္ဘူး မ်ားေသာအားျဖင့္ ဘာေျကာင့္မဖယ္လဲဆိုေတာ့ “ေနာက္ေနာင္ လိုေကာင္းလိုလာႏုိင္တယ္ ခုမဖယ္ပဲထားေတာ့လည္း ဘယ္သူ႕ထိခုိက္ေနလို႕လဲ” ဆိုတဲ့အေတြးမ်ိဳးပါ
  • Project မွာ ေခၚသုံးဖို႕လိုကို မလိုအပ္ေတာ့တဲ့ Data types နဲ႕ classes ေတြေျကာင့္ပါ။ Class တခုကို ေနာက္ဆုံးအျကိမ္ေခၚသုံးတာ ေနာက္မလိုေတာ့ဘူးဆိုၿပီး ဖယ္ပစ္လိုက္ဖို႕ မွန္းရခက္ပါတယ္။ method တခုကို ျပန္ျပင္ေရးလိုက္တာနဲ႕ သူ႕ထဲေျကျငာထားတဲ့ variable ေတြက အပိုေတြျဖစ္သြားတာမ်ိဳးလည္း ျဖစ္ေလ့ျဖစ္ထရွိပါတယ္
  • ေဆာ့၀ဲအို ေဆာ့၀ဲေဟာင္းရဲ့ အဂၤါရပ္ေတြကို ဖယ္ေလ့သိပ္မရွိျကပါဘူး

အသုံးျပဳသူ (users) ေတြက ဘယ္ေတာ့မွ လိုလည္းမလိုဘူး သုံးလည္းမသုံးေတာ့တဲ့ အဂၤါရပ္ေတြက အၿမဲဖယ္လို႕ေကာင္းတာေတာ့မဟုတ္ျပန္ဘူး

သူ႕ကိုဖယ္လိုက္တာနဲ႕ တျခားအဂၤါရပ္ေတြကိုပါ အထစ္အေင့ါျဖစ္ေစႏုိင္တယ္ေလ

မသုံးေတာ့မယ့္ အဂၤါရပ္တခုအတြက္ စမ္းသပ္မွဳ (testing)ေတြ မလိုပဲ လုပ္ေဆာင္မိႏုိင္ပါတယ္

  • ကုဒ္ေတြရဲ့သက္တမ္းတေလွ်ာက္ ျပင္ရင္းျပင္ရင္းနဲ႕လည္း တခ်ိဳ႕ functionေတြကို ဘယ္ေတာ့မွေခၚသုံးဖို႕ မလိုေတာ့တာမ်ိဳးျဖစ္ေပၚေစႏုိင္တယ္

စစ္ေဆးခ်က္ (condition) ေတြ အတြက္လိုအပ္တဲ့ variable ေတြ logic ေတြ ျပင္ေရးမိလို႕ ဘယ္ေတာ့မွ ေခၚမသုံးျဖစ္ေတာ့တဲ့ Looping ေတြလညး္ ရွိတတ္ပါတယ္

ကုဒ္သက္တမ္းပိုျကာလာေလေလ ဒီလိုမ်ိဳးေတြျမင္ရဖို႕ ပုိမ်ားလာေလပါပဲ

  • UI Wizard က click လုပ္လိုက္တာနဲ႕ အလိုအေလ်ာက္ဖန္တီးေပးတဲ့ကုဒ္ေတြကိုလည္း မသုံးမိပဲထားမိတတ္ပါတယ္

ဥပမာ ပရုိဂရမ္မာက button ကို double click လုပ္လိုက္လို႕ wizard က click event ထည္ေပးလိုက္ေပမယ့္ အဲ့အတြက္ လုပ္ေဆာင္ခ်က္ကို ဘာမွေရးမထားတာမ်ိဳးပါ

ဒီလိုကုဒ္မ်ိဳးေတြ မရွိေယာင္ေဆာင္ၿပီး မသိက်ိဳးကြ်ံျပဳထားတာက ဒီလိုကုဒ္ေတြကို ဖယ္ရွားတာထက္ ပိုသက္သာလို႕

  • “Debug” လုပ္ဖို႕ အတြက္ေရးထားတဲ့ကုဒ္ေတြက ေသဆုံးသြားတတ္ပါတယ္

Trace လိုက္ဖို႕ေရးထားတဲ့ကုဒ္ေတြက စစ္ၿပီးတာနဲ႕ ေနာက္ဘယ္ေတာ့မွ မလိုေတာ့တဲ့ ကုဒ္မ်ိဳးေတြ ွရွိတတ္ပါတယ္

လွပတဲ့အေဆာက္အအုံတခုကို ျငမ္းခပ္ရွဳပ္ရွဳပ္နဲ႕ကာထားသလိုမ်ိဳးပါ

Debug လုပ္တုိငး္ ပရိုဂရမ္မာသိဖို႕သက္သက္ပဲျပထားတဲ့ message ေတြ User ေတြအတြက္မလိုပဲ မဖ်က္ပဲထားမိတတ္ပါတယ္

ဒီလိုကုဒ္ေတြက မူရင္းကုဒ္ေတြကို ရွဳပ္ပြေစၿပီး ေနာက္ပုိင္း ျပင္ဆင္ရခက္လာႏိုင္ပါတယ္

 

ဒီေတာ့ဘယ္လိုလုပ္မလဲ

 

ဒါေတြဟာ တကယ္အေရးပါလား

Project ေကာင္းေကာင္းအလုပ္လုပ္ေနေသးသ၍

ကုဒ္ေတြမလိုပဲေသဆုံးသြားတာမ်ိဳးကုိ ေရွာင္လႊဲမရႏိုင္ေပမယ့္ စိတ္ပူစရာစရာမလိုပဲ လက္ခံလို႕ရပါတယ္

သို႕ေသာ္ မလိုအပ္တဲ့ကုဒ္အပိုေတြရဲ့ ဆိုးက်ိဳးေတြကဘာေတြပါလိမ့္

  • ပုံမွန္ကုဒ္ေတြလိုပဲ ကုဒ္အပိုေတြကလည္း အေႏွးနဲ႕အျမန္ ျပင္ဖို႕လိုအပ္တယ္ဆိုတာ ျငင္းမရတဲ့အခ်က္ပါ

အခ်ိန္ေကာ ေငြေကာ ကုန္ႏုိင္ပါတယ္

  • ကုဒ္အပိုေတြက project ကို သင္ယူရ နားလည္ရ ပိုခက္ေစၿပီး ပုံမွန္ကုဒ္ေတြကို ဖတ္ရွဳဖို႕ခက္ခဲေစႏုိင္ပါတယ္
  • သုံးမယ္မသုံးမယ္မေသခ်ာတဲ့ Method ေတြ သန္းခ်ီၿပီးေရးထားတဲ့ classes ေတြက ဂရုတစုိက္ေရးသားေစမယ့္ ပရိုဂရမ္းမင္းျဖစ္ဖို႕ တားဆီးၿပီး ျဖစ္ကတက္ဆန္းေရးထားတဲ့ ပရိုဂရမ္းမင္းဘက္ကို တြန္းပို႕ေပးမွာပါ
  • ေငြအမ်ားဆုံးသုံးၿပီး ၀ယ္လို႕ရႏုိင္မယ့္ အျမန္ဆုံးကြန္ပ်ဴတာသုံးၿပီး အေကာင္းတကာ့အေကာင္းဆုံး compiler အမ်ိဳးအစားသင္သုံးႏုိင္ရင္ေတာင္မွပဲ

သင့္ project ကို build လုပ္ဖို႕ ေႏွးေကြးေစမွာပါ ဒီလိုဆိုေတာ့ သင္အလုပ္ၿပီးဖို႕လည္း ပိုခက္ၿပီေပါ့

  • Zombie လိုကုဒ္ေတြေျကာင့္ သင့္ program ကို ရွင္းရွင္းလင္းလင္းျပင္ဖို႕ ခက္လာမွာပါ

 

ကုဒ္ေသေတြက သင့္ကိုသတ္မွာမဟုတ္ပါဘူး ဒါေပမဲ့ သင့္ဘ၀ကိုခက္ခဲေအာင္ စြမး္ေဆာင္ႏုိင္ပါတယ္

 

မွတ္ရန္။ ။ ေသဆုံးေနတဲ့ကုဒ္ေတြကို ျဖစ္ႏုိင္သမွ် ဖယ္ပစ္ပါ သင္သြားရာလမ္းကို ပိတ္ၿပီး သင့္ခရီးကို ေႏွးေကြးေစႏုိင္ပါတယ္

 

ကုဒ္ေသေတြကို ႏိုးထျခင္း

ေသဆုံးေနတဲ့ကုဒ္ေတြကို သင္ဘယ္လိုရွာေဖြႏုိင္မလဲ

အေကာင္းဆုံးနည္းလမ္းကေတာ့ သင့္ကုဒ္ေတြနဲ႕ အလုပ္လုပ္ေနတုန္း ဂရုတစိုက္ျကည့္ရွဳဖို႕ပါပဲ

သင့္လုပ္ရပ္ေတြအတြက္ သင္တာ၀န္ခံပါ သင္ေရးသားၿပီးတုိင္း မလိုတာေတြ ရွင္းလင္းေရးလုပ္ပါ

ကုဒ္စစ္ေဆးမွဳေတြကို ပုံမွန္လုပ္ေဆာင္ျခင္းျဖင့္ ကုဒ္ေသေတြကို သတိထားမိႏုိင္ပါတယ္

 

သင္က မသုံးတဲ့ကုဒ္ေတြကို ေျမလွန္ဖယ္ရွားပစ္ခ်င္လည္း ကုဒ္စစ္တဲ့ tools ေကာင္းေတြ ရွိပါတယ္

IDE ေကာင္းေကာင္းသုံးျခင္းျဖင့္ အထူးသျဖင့္ Typed languages ေတြအတြက္ထုတ္ထားတဲ့ IDE ေတြ (ဥပမာ C# language အတြက္ Visual studio IDE သုံးျခင္းျဖင့္) မသုံးတဲ့ကုဒ္ေတြကို IDE က ျပသေပးႏုိင္ပါတယ္

IDE အေတာ္မ်ားမ်ားမွာ “Find references” ဆိုတဲ့လုပ္ေဆာင္ခ်က္ပါတတ္ၿပီး ၄င္းကို အသုံးခ်ၿပီး function တခုကို ေခၚသုံးထားျခင္းရွိမရွိရွာေဖြလို႕ရပါတယ္

 

သင့္ ေဆာ့၀ဲထုတ္ကုန္ရဲ့ ဘယ္အဂၤါရပ္ေတြကိုု customer ေတြ သုံးလဲမသုံးလဲဆိုတာမွတ္သားတြက္ခ်က္ၿပီး မသုံးတဲ့ အဂၤါရပ္ေတြကို ရွာေဖြႏို္င္ပါတယ္ ဒီလိုရွာေဖြျခင္းျဖင့္ မသုံးတဲ့အဂၤါရပ္ေတြရဲ့ကုဒ္ေတြ ဖယ္ဖုိ႕ဆုံးျဖတ္ခ်က္မ်ိဳးခ်ဖို႕ အကူအညီေပးႏုိင္ပါတယ္

 

ခြဲစိတ္ျဖတ္ေတာက္ျခင္း

ေသဆုံးေနတဲ့ကုဒ္ေတြ ဖယ္ရွားျခင္းက ဘာအႏၱရယ္မွမေပးပါဘူး

ျဖတ္ေတာက္ပစ္ပါ ဖ်က္ပစ္ပါ

ဒီလိုလုပ္တာ အၿပီးအပိုင္ လႊင့္ပစ္လိုက္တာမဟုတ္ပါဘူး

သင္ဖယ္ထုတ္လိုက္တဲ့ ပရုိဂရမ္အဂၤါရပ္ကို ျပန္လိုခ်င္ရင္ သင့္ version control system ကေန အလြယ္တကူ ျပန္ယူလို႕ရပါတယ္ (version control system ဆိုတာ code ေတြျုပင္ဆင္ျခင္းကို မွတ္တမ္းထားရွိၿပီး ယခင္မျပင္ခင္ကုဒ္ကိုပါ သိမ္းထားေပးပါတယ္ e.g. Team foundation server , GitHub)

 

မွတ္ရန္။ ။ ေနာင္လိုေကာင္းလိုႏုိင္တယ္ဆိုတဲ့ ပရိုဂရမ္အဂၤါရပ္မ်ိဳးကို စိတ္ခ်လက္ခ် သင္ဖယ္ရွားႏုိင္ပါတယ္ လိုအပ္ရင္ version control ကေန ျပန္ယူလို႕ရႏုိင္တာပဲ

 

သင့္ကုမၸဏီကို ခုမွ၀င္တဲ့ ပရိုဂရမ္မာအသစ္က ဖယ္ရွားထားတဲ့ကုဒ္ေတြversion control ထဲမွာရွိတယ္ဆိုတာမသိပဲ သူတို႕အသစ္ထပ္ေရးမယ့္ကုဒ္နဲ႕ ဖယ္ထားတဲ့ကုဒ္က ဆင္တူရွိရဲ့နဲ႕ သူတို႕ဘာသာအသစ္မေရးတာမ်ိဳးကုိ မတားႏုိင္ဘူး လို႕ သင္ေစာဒကတက္ရင္ တက္ႏုိင္ပါတယ္ ဒါပူပန္သင့္တာပါ

တျခားတေနရာမွာ ရွိၿပီးသားကုဒ္အစိတ္အပုိင္းကုိ သတိမထားမိပဲ သူတို႕ဘာသာေရးတာကို သင္က ဘာလို႕တားေနမွာလဲ

 

အရင္ သင္ခန္းစာေတြမွာ ေရးထားတဲ့အတိုင္းပဲ ကုဒ္ေသေတြဖယ္ရွားျခင္းကို တျခား လုပ္ငန္းလုပ္ေဆာင္ခ်က္အသစ္(functionality) ေတြ ထပ္ထည့္ျခင္းနဲ႕အတူတူ တျကိမ္တည္း မလုပ္ပါနဲ႕ ကုဒ္ေသေတြဖယ္ရွားျခင္းကို တျကိမ္တည္းျဖင့္ သီးျခားလုပ္ေဆာင္ပါ ဒီလိုလုပ္ျခင္းျဖင့္ version control မွတ္တမ္းကို ပိုမုိရွင္းလင္းေစၿပီး ကုဒ္ဖယ္ရွားျခင္းကလည္း သာသာယာယာရွိေစမွာပါ

 

မွတ္ရန္။ ။ မလိုတဲ့ကုဒ္ေတြကို သီးသန္႕ဖယ္ရွားၿပီး version control ထဲသုိ႕ သီးသန္႕ထည့္ပါ တျခားလုပ္ငန္းလုပ္ေဆာင္ခ်က္အသစ္ေတြနဲ႕ မေရာပါႏွင့္

 

နိဂုံး

ေသဆုံးေနတဲ့ကုဒ္ေတြက အေကာင္းဆုံးဆိုတဲ့ ကုဒ္ေတြမွာပါေတြ႕ႏိုင္ပါတယ္

Project ျကီးေလ ကုဒ္ေသေတြ ပိုေတြ႕ရေလပါပဲ

ဒါက က်ရွဳံးျခင္းသေကၤတမဟုတ္ပါဘူး

ဒါေပမဲ့ ကုဒ္ေသေတြအတြက္ သင္တခုခုမလုပ္ေဆာင္ျခင္းက က်ရွဳံးျခင္းသေကၤတပါ

မသုံးေတာ့မယ့္ကုဒ္ေတြကို သင္ေတြ႕ရွိတာနဲ႕ ဖယ္ရွားပစ္ပါ

 

ကုဒ္ေရးတဲ့အခါ လိုအပ္ခ်က္ထဲမပါတာကို လိုသေယာင္မေရးပါႏွင့္

သင့္အတြက္စိတ္၀င္စားစရာေကာင္းတယ္ဆုိယုံနဲ႕ အေသးေလးပါထည့္ေရးလိုက္မယ္ဆိုၿပီး မလုပ္ပါႏွင့္

ေနာင္တကယ္လိုရင္ လိုမွေရးလို႕ရပါတယ္

အျကံဥာဏ္သိပ္ေကာင္းေနရင္ေတာင္ ထည့္မေရးလိုက္ႏွင့္

 

ေမးခြန္းမ်ား

၁။ ကုဒ္ေသေတြကို သင့္ပရိုဂရမ္ထဲမွာ ဘယ္လိုရွာေဖြနုိင္မလဲ

၂။ ခုမလိုေသးပဲ ေနာင္လိုလာႏုိင္တယ္ဆိုတဲ့ ကုဒ္ေတြကို သင္ comment ပိတ္ၿပီး ဖယ္တာလား တခါတည္းဖ်က္ၿပီးဖယ္တာလား ဘာေျကာင့္လဲ (comment ပိတ္ထားရင္ ျမင္ပါျမင္ရတယ္ တခါတည္းဖ်က္လည္း version control က ျပန္ယူလို႕ရတာပဲ)

၃။ မသုံးေတာ့တဲ့ အဂၤါရပ္ေတြကို ဖယ္ရွားတာဟာ မွန္ကန္တဲ့လုပ္ရပ္လား ဖယ္ရွားျခင္းျဖင့္ ဆိုးက်ိဳးရွိႏိုင္လား ဖယ္ဖို႕အသင့္ေတာ္ဆုံးအခ်ိန္ကို ဘယ္လိုဆုံးျဖတ္လဲ

၄။ သင့္ကုဒ္ေတြရဲ့ ဘယ္ႏွရာခိုင္ႏွဳန္းေလာက္က မလုိအပ္တဲ့ကုဒ္ပိုေတြပါ၀င္တယ္လို႕ သင္ထင္ျမင္ပါသလဲ သင့္အဖြဲ႕ကလူေတြက သူတို႕ျကိဳက္လို႕ျဖစ္ျဖစ္ အသုံး၀င္မယ္လို႕ သူတို႕ထင္ယုံနဲ႕ ကုဒ္ေတြ ထည့္ေရးတဲ့အေလ့အထမ်ိဳးရွိပါသလား

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s