Wednesday, December 30, 2015

Programmer ေကာင္းတစ္ေယာက္ျဖစ္လာဖို႔အတြက္ သိထားသင့္သည့္ အခ်က္ (၁၀) ခ်က္

လက္ရွိအခ်ိန္မွာ Programmer တစ္ဦးအျဖစ္ ရပ္တည္းေနၾကသူေတြဟာ တကၠသိုလ္၊ ေကာလိပ္ေတြနဲ႔ သင္တန္းေက်ာင္းေတြက သင္ၾကားပို႔ခ်ေပးထားလိုက္တဲ့ သင္ရုိးညႊန္းတမ္းေတြ၊ မိမိဖတ္ရႈေလ့လာထားတဲ့ စာအုပ္ေတြက ေဖာ္ျပထားတဲ့
လမ္းညႊန္ခ်က္ေတြနဲ႔အညီ အရည္အခ်င္း ျပည့္၀ၿပီးသား သူေတြျဖစ္ေနမွာပါ။ ဒါေပမယ္မယ့္ မိမိရဲ႕ဘ၀ ရည္တည္မႈလမ္းေၾကာင္းမွာ ထင္ရွားေက်ာ္ၾကားတဲ့ Programmer တစ္ဦးအျဖစ္ နာမည္ေကာင္းရရွိလာဖို႔အတြက္ အေလ့အက်င့္ ျပဳထားသင့္တဲ့ အခ်က္ (၁၀) ခ်က္ကို ဗဟုသုတျဖစ္ဖြယ္ေဖာ္ျပေပးလုိက္ပါတယ္။

(၁). Source Control လုပ္ငန္းစဥ္အမ်ိဳးမ်ိဳးကို ေလ့လာပါ။
          မိမိေရးသားေပးလိုက္တဲ့ Program တစ္ခုဟာ အသံုးျပဳမယ့္သူရဲ႕ လိုအပ္ခ်က္နဲ႔ ကိုက္ညီမႈ မရွိဘဲ ၎ရင္းႏွီးကၽြမ္း၀င္ၿပီးသား အေျခအေနတစ္ခုကေန ေသြဖီေနတယ္ဆိုရင္ ႏွစ္ဖက္စလံုးအတြက္ အဆင္မေျပတဲ့ အေျခအေနေတြ ျဖစ္ေပၚလာႏိုင္ပါတယ္။ ဒါေၾကာင့္မို႔ မိမိနဲ႔ပတ္သက္ဆက္ႏြယ္လာတဲ့ source control စနစ္ေတြအားလံုးကို နားလည္ေအာင္ေလ့လာျခင္းက သင့္အတြက္လြယ္ကူတဲ့ Program တစ္ခုကို ဖန္တီးႏိုင္ေစမွာျဖစ္ပါတယ္။

(၂). နားလည္သိသာလြယ္တဲ့ Variable name ေတြကို အသံုးျပဳပါ။
          တူညီမႈမရွိတဲ့ Variable name ေတြကို အသံုးျပဳျခင္းက Programmer ေတြအတြက္ မထူးဆန္းေတာ့ေပမယ့္ တကယ္လို႔မ်ား မိမိရဲ႕ Program တစ္ခုကို အျခားတစ္ေယာက္က ၀င္ေရာက္ၾကည့္ရႈေတာ့မယ္ဆိုရင္ ၎အတြက္က ရႈပ္ေထြးမႈေတြ ျဖစ္ေပၚလာႏိုင္ပါတယ္။ ဒါေၾကာင့္ အခ်ိန္ကုန္ သက္သာေစမယ့္ အသင့္ျပဳလုပ္ၿပီးသား Variable name ေတြကို အသံုးျပဳျခင္းက မိမိဖန္တီးလုိက္တဲ့ Program တစ္ခုကို အမ်ားသိသာျမင္သာေစဖို႔အတြက္ အခြင့္အလမ္းတစ္ခု ျဖစ္ပါတယ္။

(၃). Class အစား Interface ကို တတ္ႏိုင္သမွ်အသံုးျပဳပါ။
        Code ေတြေရးသားတဲ့အခါမွာ class ေတြနဲ႔ ေဖာ္ျပမယ့္အစား Interface ေတြကို တတ္ႏိုင္သေလာက္ အသံုးျပဳေပးပါ။ ဥပမာ Integers ကိန္းျပည့္ကို ေခၚလိုတဲ့အခါမွာ List<int> အျဖစ္ေခၚဖို႔ မလုိအပ္ေတာ့ဘဲ IEnumerable<int> လို႔ ေခၚဆိုႏိုင္ျခင္းက အသံုးျပဳသူေတြအတြက္ ပိုမို လက္ခံဖို႔ေကာင္းတဲ့ အေျခအေနတစ္ခုျဖစ္ပါတယ္။

(၄). အဖဲြ႔၀င္မ်ားရဲ႕ အားနည္းခ်က္ကို နားလည္လက္ခံေပးပါ။
        Program တစ္ခုေရးသားၾကရာမွာ ဘက္စံုေတာ္ေနသူေတြရွိသလို အေတြ႔အႀကံဳ အားနည္းသူေတြလည္း ရွိတတ္တာေၾကာင့္ မိမိအေဖာ္ရဲ႕ အေျခအေနကို ေကာင္းမြန္စြာ သိရွိထားဖို႔ လိုအပ္ပါတယ္။ ဒါေၾကာင့္ အတူတကြ လုပ္ကိုင္သူအခ်င္းခ်င္း ညွာတာၿပီး ပူးေပါင္းလုပ္ေဆာင္းျခင္းက အလုပ္တစ္ခုကို ေကာင္းမြန္စြာ ၿပီးဆံုးေစမွာပါ။

(၅). အသံုးျပဳသူမ်ားရဲ႕ လိုအပ္ခ်က္ကို လက္ခံပါ။
        မိမိေရးသားထားတဲ့ Program ကို အသံုးျပဳဖို႔အတြက္ အသံုးျပဳသူတိုင္းကေတာ့ ၎ Program ကို ဘယ္လုိအသံုးျပဳရမယ္ဆိုတာမ်ိဳး၊ တတ္ကၽြမ္းေအာင္သင္ယူေလ့လာျခင္းမ်ိဳးနဲ႔ ေဖာ္ျပထားတဲ့ အခ်က္အလက္ေတြဖတ္ရႈတာမ်ိဳးကို မလုပ္ၾကပါဘူး။ ဒါေၾကာင့္ မိမိ(Programmer တစ္ေယာက္) အေနနဲ႔လည္း အသံုးျပဳသူေတြရဲ႕ လုိအပ္ခ်က္၊ အားနည္းခ်က္ေတြကို သေဘာေပါက္ လက္ခံေပးဖို႔ လိုအပ္ပါတယ္။

(၆). ျပဳလုပ္လုိက္တဲ့ ေျပာင္းလဲမႈအတြက္ အေၾကာင္းျပခ်က္ကို ေရးသားေဖာ္ျပေပးပါ။
        ေရးသားထားတဲ့ Program တိုင္းဟာ တစ္ခါတည္းနဲ႔ေတာ့ ၿပီးျပည့္စံုမႈမရွိၾကပါဘူး။ ဒါေၾကာင့္ ထပ္မံျပင္ဆင္လိုက္တဲ့ အေၾကာင္းအရာအတြက္ အေၾကာင္းျပခ်က္ ေရးသားေဖာ္ျပေပးဖို႔ လိုအပ္ပါတယ္။ ၎ကဲ့သို႔ ေဖာ္ျပေပးျခင္းဟာ အသံုးျပဳသူေတြအတြက္ အလြန္အဆင္ေျပေစပါတယ္။

(၇). Algorithms ေတြကို ရွင္းလင္းေဖာ္ျပေပးပါ။
        မိမိအသံုးျပဳလုိက္တဲ့မည္သည့္ Algorithm အတြက္မဆို ေရြးခ်ယ္အသံုးျပဳရျခင္းရဲ႕ အေၾကာင္းျပခ်က္ကို ရွင္းလင္းေဖာ္ျပေပးသင့္ပါတယ္။ တစ္ခ်ိဳ႕ေတြအတြက္ အဆိုပါအခ်က္ဟာ အေရးမပါလွေပမယ့္ တစ္ခ်ိဳ႕ေသာ ကၽြမ္းက်င္ပညာရွင္ေတြနဲ႔ ေတြ႔ဆံုတဲ့အခါမွာေတာ့ ၎ဟာလည္း အေတာ္ေလး ထိေရာက္တဲ့ မွတ္ခ်က္တစ္ခုျဖစ္ပါတယ္။

(၈). အေျခအေနအလုိက္ လိုအပ္တဲ့ အကူအညီကိုေပးပါ။
        အသံုးျပဳသူေတြဘက္ကလည္း Program တစ္ခုကို ကၽြမ္းက်င္ေအာင္ ေလ့လာသင့္သလို Programmer တစ္ဦးအေနနဲ႔ကလည္း လိုအပ္တဲ့အကူအညီေတြကို လိုအပ္တဲ့အခ်ိန္မွာ ေပးႏိုင္ဖို႔ ႀကိဳးစားသင့္ပါတယ္။ ညႊန္ၾကားခ်က္ေတြထည့္သြင္းေဖာ္ျပတဲ့အခါမွာလည္း နားလည္လြယ္ကူတဲ့ အသံုးအႏႈန္းေတြျဖစ္ဖုိ႔နဲ႔ ဘာသာရပ္တစ္ခုအတြင္းက စကားလံုးေတြ အသံုးမျပဳမိေစဖို႔ ေရွာင္ၾကဥ္သင့္ပါတယ္။

(၉). Cross-platform စမ္းသပ္ခ်က္ေတြ ေဆာင္ရြက္ပါ။
        မိမိေရးသားတဲ့ Program တစ္ခုဟာ ဘယ္လို platform မ်ိဳးနဲ႔မဆို အသံုးျပဳႏိုင္ဖို႔က အလြန္အေရးႀကီးပါတယ္။ Web application ေတြ ေရးသားတဲ့အခါမွာ platform အမ်ိဳးမ်ိဳးနဲ႔ တည္ေဆာက္ထားတဲ့ browser အမ်ိဳးမ်ိဳးနဲ႔ စမ္းသပ္ၾကည့္ဖို႔ အလြန္အေရးႀကီးပါတယ္။

(၁၀). အသံုးျပဳမယ့္သူေတြကို ထည့္သြင္းစဥ္းစားပါ။
          မိမိေရးသားေပးရတဲ့ Program ကို အသံုးျပဳမယ့္သူေတြကိုလည္း ထည့္သြင္းစဥ္းစားဖို႔ လိုအပ္ပါတယ္။ ေကာင္းမြန္ျပည့္စံုတဲ့ Program တစ္ခုထြက္ေပၚလာဖို႔ဆိုတာ မိမိ ရည္ရြယ္ထားသူေတြနဲ႔ ကိုက္ညီမႈရွိ/မရွိဆိုတာလည္း အလြန္အေရးႀကီးတဲ့ အခ်က္ျဖစ္ပါတယ္။
Unicode
Programmer ကောင်းတစ်ယောက်ဖြစ်လာဖို့အတွက် သိထားသင့်သည့် အချက် (၁၀) ချက်
လက်ရှိအချိန်မှာ Programmer တစ်ဦးအဖြစ် ရပ်တည်းနေကြသူတွေဟာ တက္ကသိုလ်၊ ကောလိပ်တွေနဲ့ သင်တန်းကျောင်းတွေက သင်ကြားပို့ချပေးထားလိုက်တဲ့ သင်ရိုးညွှန်းတမ်းတွေ၊ မိမိဖတ်ရှုလေ့လာထားတဲ့ စာအုပ်တွေက ဖော်ပြထားတဲ့
လမ်းညွှန်ချက်တွေနဲ့အညီ အရည်အချင်း ပြည့်၀ပြီးသား သူတွေဖြစ်နေမှာပါ။ ဒါပေမယ်မယ့် မိမိရဲ့ဘ၀ ရည်တည်မှုလမ်းကြောင်းမှာ ထင်ရှားကျော်ကြားတဲ့ Programmer တစ်ဦးအဖြစ် နာမည်ကောင်းရရှိလာဖို့အတွက် အလေ့အကျင့် ပြုထားသင့်တဲ့ အချက် (၁၀) ချက်ကို ဗဟုသုတဖြစ်ဖွယ်ဖော်ပြပေးလိုက်ပါတယ်။

(၁). Source Control လုပ်ငန်းစဉ်အမျိုးမျိုးကို လေ့လာပါ။
          မိမိရေးသားပေးလိုက်တဲ့ Program တစ်ခုဟာ အသုံးပြုမယ့်သူရဲ့ လိုအပ်ချက်နဲ့ ကိုက်ညီမှု မရှိဘဲ ၎င်းရင်းနှီးကျွမ်း၀င်ပြီးသား အခြေအနေတစ်ခုကနေ သွေဖီနေတယ်ဆိုရင် နှစ်ဖက်စလုံးအတွက် အဆင်မပြေတဲ့ အခြေအနေတွေ ဖြစ်ပေါ်လာနိုင်ပါတယ်။ ဒါကြောင့်မို့ မိမိနဲ့ပတ်သက်ဆက်နွယ်လာတဲ့ source control စနစ်တွေအားလုံးကို နားလည်အောင်လေ့လာခြင်းက သင့်အတွက်လွယ်ကူတဲ့ Program တစ်ခုကို ဖန်တီးနိုင်စေမှာဖြစ်ပါတယ်။

(၂). နားလည်သိသာလွယ်တဲ့ Variable name တွေကို အသုံးပြုပါ။
          တူညီမှုမရှိတဲ့ Variable name တွေကို အသုံးပြုခြင်းက Programmer တွေအတွက် မထူးဆန်းတော့ပေမယ့် တကယ်လို့များ မိမိရဲ့ Program တစ်ခုကို အခြားတစ်ယောက်က ၀င်ရောက်ကြည့်ရှုတော့မယ်ဆိုရင် ၎င်းအတွက်က ရှုပ်ထွေးမှုတွေ ဖြစ်ပေါ်လာနိုင်ပါတယ်။ ဒါကြောင့် အချိန်ကုန် သက်သာစေမယ့် အသင့်ပြုလုပ်ပြီးသား Variable name တွေကို အသုံးပြုခြင်းက မိမိဖန်တီးလိုက်တဲ့ Program တစ်ခုကို အများသိသာမြင်သာစေဖို့အတွက် အခွင့်အလမ်းတစ်ခု ဖြစ်ပါတယ်။

(၃). Class အစား Interface ကို တတ်နိုင်သမျှအသုံးပြုပါ။
        Code တွေရေးသားတဲ့အခါမှာ class တွေနဲ့ ဖော်ပြမယ့်အစား Interface တွေကို တတ်နိုင်သလောက် အသုံးပြုပေးပါ။ ဥပမာ Integers ကိန်းပြည့်ကို ခေါ်လိုတဲ့အခါမှာ List<int> အဖြစ်ခေါ်ဖို့ မလိုအပ်တော့ဘဲ IEnumerable<int> လို့ ခေါ်ဆိုနိုင်ခြင်းက အသုံးပြုသူတွေအတွက် ပိုမို လက်ခံဖို့ကောင်းတဲ့ အခြေအနေတစ်ခုဖြစ်ပါတယ်။

(၄). အဖွဲ့၀င်များရဲ့ အားနည်းချက်ကို နားလည်လက်ခံပေးပါ။
        Program တစ်ခုရေးသားကြရာမှာ ဘက်စုံတော်နေသူတွေရှိသလို အတွေ့အကြုံ အားနည်းသူတွေလည်း ရှိတတ်တာကြောင့် မိမိအဖော်ရဲ့ အခြေအနေကို ကောင်းမွန်စွာ သိရှိထားဖို့ လိုအပ်ပါတယ်။ ဒါကြောင့် အတူတကွ လုပ်ကိုင်သူအချင်းချင်း ညှာတာပြီး ပူးပေါင်းလုပ်ဆောင်းခြင်းက အလုပ်တစ်ခုကို ကောင်းမွန်စွာ ပြီးဆုံးစေမှာပါ။

(၅). အသုံးပြုသူများရဲ့ လိုအပ်ချက်ကို လက်ခံပါ။
        မိမိရေးသားထားတဲ့ Program ကို အသုံးပြုဖို့အတွက် အသုံးပြုသူတိုင်းကတော့ ၎င်း Program ကို ဘယ်လိုအသုံးပြုရမယ်ဆိုတာမျိုး၊ တတ်ကျွမ်းအောင်သင်ယူလေ့လာခြင်းမျိုးနဲ့ ဖော်ပြထားတဲ့ အချက်အလက်တွေဖတ်ရှုတာမျိုးကို မလုပ်ကြပါဘူး။ ဒါကြောင့် မိမိ(Programmer တစ်ယောက်) အနေနဲ့လည်း အသုံးပြုသူတွေရဲ့ လိုအပ်ချက်၊ အားနည်းချက်တွေကို သဘောပေါက် လက်ခံပေးဖို့ လိုအပ်ပါတယ်။

(၆). ပြုလုပ်လိုက်တဲ့ ပြောင်းလဲမှုအတွက် အကြောင်းပြချက်ကို ရေးသားဖော်ပြပေးပါ။
        ရေးသားထားတဲ့ Program တိုင်းဟာ တစ်ခါတည်းနဲ့တော့ ပြီးပြည့်စုံမှုမရှိကြပါဘူး။ ဒါကြောင့် ထပ်မံပြင်ဆင်လိုက်တဲ့ အကြောင်းအရာအတွက် အကြောင်းပြချက် ရေးသားဖော်ပြပေးဖို့ လိုအပ်ပါတယ်။ ၎င်းကဲ့သို့ ဖော်ပြပေးခြင်းဟာ အသုံးပြုသူတွေအတွက် အလွန်အဆင်ပြေစေပါတယ်။

(၇). Algorithms တွေကို ရှင်းလင်းဖော်ပြပေးပါ။
        မိမိအသုံးပြုလိုက်တဲ့မည်သည့် Algorithm အတွက်မဆို ရွေးချယ်အသုံးပြုရခြင်းရဲ့ အကြောင်းပြချက်ကို ရှင်းလင်းဖော်ပြပေးသင့်ပါတယ်။ တစ်ချို့တွေအတွက် အဆိုပါအချက်ဟာ အရေးမပါလှပေမယ့် တစ်ချို့သော ကျွမ်းကျင်ပညာရှင်တွေနဲ့ တွေ့ဆုံတဲ့အခါမှာတော့ ၎င်းဟာလည်း အတော်လေး ထိရောက်တဲ့ မှတ်ချက်တစ်ခုဖြစ်ပါတယ်။

(၈). အခြေအနေအလိုက် လိုအပ်တဲ့ အကူအညီကိုပေးပါ။
        အသုံးပြုသူတွေဘက်ကလည်း Program တစ်ခုကို ကျွမ်းကျင်အောင် လေ့လာသင့်သလို Programmer တစ်ဦးအနေနဲ့ကလည်း လိုအပ်တဲ့အကူအညီတွေကို လိုအပ်တဲ့အချိန်မှာ ပေးနိုင်ဖို့ ကြိုးစားသင့်ပါတယ်။ ညွှန်ကြားချက်တွေထည့်သွင်းဖော်ပြတဲ့အခါမှာလည်း နားလည်လွယ်ကူတဲ့ အသုံးအနှုန်းတွေဖြစ်ဖို့နဲ့ ဘာသာရပ်တစ်ခုအတွင်းက စကားလုံးတွေ အသုံးမပြုမိစေဖို့ ရှောင်ကြဉ်သင့်ပါတယ်။

(၉). Cross-platform စမ်းသပ်ချက်တွေ ဆောင်ရွက်ပါ။
        မိမိရေးသားတဲ့ Program တစ်ခုဟာ ဘယ်လို platform မျိုးနဲ့မဆို အသုံးပြုနိုင်ဖို့က အလွန်အရေးကြီးပါတယ်။ Web application တွေ ရေးသားတဲ့အခါမှာ platform အမျိုးမျိုးနဲ့ တည်ဆောက်ထားတဲ့ browser အမျိုးမျိုးနဲ့ စမ်းသပ်ကြည့်ဖို့ အလွန်အရေးကြီးပါတယ်။

(၁၀). အသုံးပြုမယ့်သူတွေကို ထည့်သွင်းစဉ်းစားပါ။
          မိမိရေးသားပေးရတဲ့ Program ကို အသုံးပြုမယ့်သူတွေကိုလည်း ထည့်သွင်းစဉ်းစားဖို့ လိုအပ်ပါတယ်။ ကောင်းမွန်ပြည့်စုံတဲ့ Program တစ်ခုထွက်ပေါ်လာဖို့ဆိုတာ မိမိ ရည်ရွယ်ထားသူတွေနဲ့ ကိုက်ညီမှုရှိ/မရှိဆိုတာလည်း အလွန်အရေးကြီးတဲ့ အချက်ဖြစ်ပါတယ်။

0 comments:

Post a Comment