Monday, February 28, 2011

WinMerge and Tips for work

WinMerge

တစ္ခါတေလ tedious အလုပ္ေတြလုပ္ရရင္ စိတ္ပ်က္ဖုိ႕ေကာင္းပါတယ္။ လိုင္း တစ္ေထာင္ေလာက္ရိွတဲ႔ class တစ္ခုကို ၁၀၀၇ လုိင္းေလာက္ရိွတဲ႔ ေနာက္တစ္ခုနဲ႕ယွဥ္ျပီး အဲဒီထဲမွာ မတူတဲ႔ လုိင္း ၂၀ ေလာက္ကို တိုက္ၾကည္႕မယ္ဆိုပါေတာ႔။ အျဖစ္အမ်ားဆံုးကေတာ႔ Git ေတြ Borland Starteam ေတြလို code control system ေတြႊမသံုးပဲ ကမာၻေက်ာ္ developer ေတြက တစ္ေယာက္တစ္ေပါက္ေရးထားတာကို ဘယ္ဟာ ေနာက္ဆံုးမွန္းမသိေတာ႔တဲ႔အခါမ်ိဳး being Lost in the midst ျဖစ္ေနတဲ႔အခါမ်ိဳးမွာ ၾကံၾကံဖန္ဖန္ေတြလုပ္ရေလ႔ရိွပါတယ္။

ထူးထူးျခားျခားမဟုတ္ပါဘူး။ အဲဒီ winMerge ေလး download လုပ္ျပီး compare လုပ္လုိက္ရင္ အဆင္ေျပသြားတတ္ပါတယ္။ ကမာၻေပၚမွာ ကိုယ္အဆင္ေျပဖုိ႕ တျခားသူေတြ အားလံုးထြင္ထားတယ္လို႕ သေဘာထားပါ။ ဘယ္ေတာ႔မွ ရမ္းျပီး tedious အလုပ္ေတြကို ဘာ tools မွမသံုး၊ ဘာ shortcuts မွ မသံုးဘဲမလုပ္လိုက္ပါနဲ႕။ စဥ္းစားပါ။ ေသြးေအးပါ။ ဒီထက္ေကာင္းတဲ႔နည္းရိွရမယ္လို႕ ေတြးပါ။

ေနာက္တစ္ခုက စုထားပါ။ Tools ေတြ အသံုး၀င္တယ္ဆိုရင္ စုသိမ္းထားပါ။ အခုလုပ္ေနတဲ႔ company က ကိုယ္႔အေဖ company မဟုတ္တဲ႔အတြက္ မၾကာခင္ ေျပာင္းရင္ေျပာင္းရမယ္လို႕သေဘာထားပါ။ ေျပာင္းရင္ ကိုယ္႔ရဲ႕ development environment ကို တစ္နာရီအတြင္း ျပန္ရႏိုင္ေအာင္ ေသခ်ာစုသိမ္းထားပါ။

Be Effective လို႕ ကိုယ္႔ကိုယ္ကို သတိေပးပါ။ At the end of the day, nobody sees how did you do, but she/he will only see how productive you are. အဲဒါကို သေဘာေပါက္ရင္ ရံုးမွာ ဘာမွ အလုပ္သိပ္မလုပ္ဘဲ တစ္ခ်ိဳ႕လူေတြ ကိုယ္႔ထက္ ျမန္ျမန္ျပီးတာကို နားလည္လာပါလိမ္႔မယ္။ မစဥ္းစားဘဲ trial-and-error မလုပ္သင္႔တာကို လုပ္ေနရင္ အခ်ိန္မကုန္သင္႔တာ ကုန္တာပါပဲ။ အဲဒီလိုမလုပ္ျဖစ္ေအာင္၊ မ်ားမ်ားေလ႔လာျပီး၊ မ်ားမ်ား ဖတ္ထားဖုိ႕လုိပါတယ္။

ေနာက္တစ္ခုကေတာ႔ စုစုစည္းစည္းထားတတ္တတဲ႔အေလ႔အထလုပ္ပါ။ Folder Name ကေနစေျပာခ်င္ပါတယ္။
ကိုယ္႔အေဖနာမည္ေတြ(ဥပမာ New Folder)၊ ရည္းစားနာမည္ေတြ(ဥပမာ၊ Jolie,J-Lo)၊ ၾကီးေတာ္ၾကီးရဲ႕ ငယ္နာမည္ေတြ(ဥပမာ၊ Gwat_Htaw) စတဲ႔ အဓိပၸာယ္မရိွတဲ႔ ဟာေတြကိုေရွာင္ပါ။ Structure က်ဖို႕သတိထားျပီး အခ်ိန္နည္းနည္းေပးလုိက္ပါ။ workspace ေတြကုိလည္း သတ္သတ္မွတ္မွတ္ထားပါ။ ကိုယ္႔ရဲ႕ IDE ေတြ၊ Web Server ေတြ ကို structure က်က်ထားရင္ သြားရလာရလြယ္ပါတယ္။ ေနာက္ျပီး တကယ္ effective ျဖစ္တဲ႔ developer က အျမဲသြားေနရတဲ႔ location ကို click သံုးခါအတြင္း သြားႏိုင္ဖုိ႕ ျပင္ဆင္ထားရပါတယ္။ shortcuts ေတြ၊ quick launch ေတြ လုပ္ထားပါ။

Log ရိုက္ရင္လည္း thayparP(ေသပါျပီ)။errortaetawyae(error တဲ႔ေတာ္ေရ႕)။ errorDmhar(Error ဒီမွာ)၊ ngardotthahtaythautpaw(ငါတုိ႕သူေဌးေသာက္ေပါ) ဆိုတာေတြကို Log မလုပ္ပါနဲ႕။ အဓိပၸာယ္ရိွရိွလုပ္ပါ။ အဲဒါေတြက တစ္ျခားလူေရးခဲ႔တဲ႔ တလြဲေတြကို ေျပာတာမဟုတ္ပါဘူး။ ကြ်န္ေတာ္တို႕ငယ္တုန္းက လုပ္ခဲ႔တာေတြ ေျပာတာပါ။ ဘာလို႕ log ေရးၾကတာလဲဆိုတာကိုစဥ္းစားၾကည္႕ပါ။ ဘယ္နားမွာ error ရိွလည္း သိဖုိ႕နဲ႕၊ ေနာက္တစ္ခုက error မျဖစ္ခင္ ေနာက္ဆံုး ေရာက္ခဲ႔တဲ႔အဆင္႔ကိုသိဖို႕ လုိ႕အၾကမ္းဖ်င္းေျပာႏိုင္တယ္။ ခက္ခက္ခဲခဲေတြ သင္ေပးေနဖုိ႕မလုိပါဘူး။ tomcat ေတြ weblogic ေတြမွာ log ကို ဘယ္လိုေရးလဲ၊ mysql မွာ log file ဘယ္လုိေရးထားလဲ ရွာဖတ္ၾကည္႕ရင္ သူတို႕ ဘယ္ေလာက္စနစ္တက်ေရးျပီး ဘယ္ေလာက္ descriptive ျဖစ္သလဲသိႏုိင္ပါတယ္။ ကိုယ္ေရးထားတဲ႔ ေသပါျပီေတြ၊ error တဲ႔ေတာ္ေရ ေတြက ကိုယ္႔ဘာသာေတာ႔ သိပါတယ္။ ဒါေပမယ္႔ တျခားသူဖတ္ရင္ နားလည္မွာမဟုတ္ဘူး။ ဘာကိုရည္ညႊန္းမွန္းမသိဘူး။ နမူနာတစ္ခုေရးရရင္ method တစ္ခုဆိုပါေတာ႔ parameters သံုးခုပါတယ္။

pubilc List checkEmployee(String nric, int age, String remarks){

logger.debug("checkEmployee( String nric="+nric+", int age="+age+", String remarks="+remarks+")")
....
....
....

}

အဲဒီလိုဆိုပါေတာ႔ဗ်ာ။ အဲဒါေလး log မွာထြက္လာရင္

checkEmployee( String nric=S8185466A, int age=23, String remarks=Pending)

အဲဒီမွာ ေျပာခ်င္တာက ဘယ္ method သြားသလဲဆိုတာလည္းသိတယ္။ သူ႕မွာပါတဲ႔ param ေတြကိုလည္း သိရတယ္။ တျခားသူေတြလည္းနားလည္ဖုိ႕လြယ္တယ္။ လိုင္းေတြလည္းမမ်ားဘူး။ အဲဒီလို သပ္သပ္ရပ္ရပ္ျဖစ္ေအာင္ သတိထားျပီး ေရးဖုိ႕လုိတယ္။ debug ကိုပဲ သံုးပါ။ မလုိဘဲ INFO ေတြမသံုးပါနဲ႕။ production မွာက INFO နဲ႕ ERROR ပဲျပၾကပါတယ္။ အဲဒီေတာ႔ ကိုယ္႔ရဲ႕ Local machine မွာ၊ UAT မွာစမ္းတာေတြကို ျပန္လည္းဖ်က္ေနစရာမလုိပါဘူး။

ဒါေတြကေတာ႔ လုပ္ငန္းခြင္မွာ greenhorns ေတြ သတိထားသင္႔တာေတြပါ။ အဆင္ေျပမယ္ဆုိရင္ Oreily ကထုတ္တဲ႔ The Productive Programmer ByNeal Ford ကိုလည္းဖတ္ပါ။ ကိုယ္႔အတြက္ လုိတာေတြကို မ်ားမ်ားေလ႔လာပါ။ ေစာေစာစီးစီး အပ်င္းထူျပီး မၾကိဳးစားပဲ ေရသာခိုေနရင္ တကယ္ကိုယ္႔ထက္ေတာ္တဲ႔သူေတြနဲ႕ ယွဥ္ရတဲ႔အခါၾကမွ ကုိယ္က handicap ဘ၀ကိုေရာက္ေနတာကို မအံ႔ၾသစရာေတြ႕ရပါလိမ္႔မယ္။ အေခ်ာင္ခိုတယ္ဆိုတာ ေလာေလာဆယ္ေတာ႔သက္သာသလိုပဲ၊ ဒါေပမယ္႔ ကိုယ္႔မွာ တကယ္တတ္ရမယ္႔ အခြင္႔အလမ္း ဆံုးရွံဳးသြားတယ္။

ေနာက္တစ္ခုက complaint မမ်ားနဲ႕။ မလုိအပ္ဘဲ ျပႆနာမရွာနဲ႕။ ျပႆနာကိုလည္း ပံုၾကီးမခ်ဲ႕နဲ႕။ Attitudes မွန္ဖုိ႕ၾကိဳးစားပါ။ ကိုယ္ေက်နပ္တဲ႔လစာနဲ႕ အလုပ္၀င္ခဲ႔ၾကတာ။ ေနာက္မွ နည္းတယ္ထင္ရင္ ပိုေတာင္းၾကတယ္။ ေတာင္းလို႕မရရင္ ကိုယ္႔ကိုယ္ကိုျပန္ေမးပါ။ ကိုယ္႔မွာ တကယ္အရည္အခ်င္းရိွရင္ ပိုေကာင္းတဲ႔ေနရာကိုေျပာင္းပါ။ ေလပဲအဖတ္တင္မယ္႔စကားေတြ သိပ္မေျပာပါနဲ႕။ Be Professional. တခါတေလ ကိုယ္႔ကို သိပ္ခက္တာေတြခိုင္းတယ္လုိ႕ထင္ရင္ တျခားသူေတြကိုလည္းၾကည္႕ပါ။ ခက္တယ္ဆိုတာက မလုပ္တတ္ေသးလုိ႕လည္းျဖစ္ႏိုင္တယ္။ ကိုယ္လုပ္ႏိုင္တာထက္ နည္းနည္းပိုခက္တာကို ခုိင္းရင္ေက်းဇူးတင္လုိက္ပါ။ မဟုတ္ရင္ အဲဒါေတြ ဘယ္ေတာ႔မွ လုပ္ႏုိင္မွာမဟုတ္ဘူး။ လုပ္ၾကည္႕ရင္းနဲ႕မွပဲတိုးတက္ပါတယ္။

စိတ္ခ်မ္းသာေအာင္ထားပါ။ အဲဒါက ဘာမွလည္းမဆုိင္ဘူးလုိ႕အခုအခ်ိန္မွာ ထင္ရင္လည္းထင္မယ္။ အလုပ္ဆိုတာ တစ္ႏွစ္၊ႏွစ္ႏွစ္လုပ္ရမွာမဟုတ္ဘူး။ ထီမေပါက္ရင္ တစ္သက္လံုးလုပ္ရမယ္႔ ကိစၥ။ အဲဒါကို သေဘာထားမွန္မွန္၊ ေပ်ာ္ေပ်ာ္ရႊင္ရႊင္နဲ႕လုပ္ႏုိင္ဖုိ႕ၾကိဳးစားပါ။ စိတ္မဖိစီးပါေစနဲ႕။ တစ္နာရီနဲ႕မျပီးရင္ ႏွစ္နာရီလုပ္ပါ။ ကိုယ္႔ရဲ႕ အရည္အခ်င္းကို ျဖည္႕ဆည္းေနတုန္းမွာ သိပ္ျပီး သက္သာေအာင္မေနပါနဲ႕။ ဒါေတြက ရင္းႏွီးေနတာပါ။ ေနာက္ပိုအဆင္႔ျမင္႔တဲ႔ အလုပ္အတြက္ ျပင္ဆင္ေနတာ။ software house ေတြက အေကာင္းဆံုး battle fields ေတြပါပဲ။ အဲဒီမွာ timelines နဲ႕ကြက္တိလုပ္ႏိုင္တဲ႔သူဟာ ေနာက္ပိုလစာေကာင္းျပီး အလုပ္နည္းသြားတဲ႔အလုပ္ေတြမွာ သက္သက္သာသာေနႏိုင္ပါတယ္။ အလုပ္မ်ားတာကို စိတ္မညစ္ပါနဲ႕။ စိတ္ညစ္တာက ပိုျပီးအားကုန္ပါတယ္။ အလုပ္လုပ္ရတာကိုေပ်ာ္တဲ႔သူဟာ အလုပ္မ်ားမ်ားလုပ္ရလုိ႕ ဘာမွမျဖစ္ပါဘူး။ ေသလည္းမေသပါဘူး။ စိတ္မပူပါနဲ႕။ ေပ်ာ္ေပ်ာ္ရႊင္ရႊင္နဲ႕ အလုပ္ျပီးရင္ ရမယ္႔ ေက်နပ္မႈအတြက္ အလုပ္လုပ္ပါ။ ကိုယ္လုပ္ေပးလုိက္တဲ႔အလုပ္ေၾကာင္႔ တပါးသူ အဆင္ေျပသြားတာကို အေလးထားပါ။ အဲဒါဆိုရင္ လုပ္ငန္းခြင္မွာ ေပ်ာ္လာပါလိမ္႔မယ္။

Be Smart.
Be Attentive
Be Understand
Be Trustworthy

Be Professional.
Be Ambitious
Be Workoholic

အတုိေကာက္ကေတာ႔ Be S.A.U.T- P.A.Wပါပဲ။
အဲဒီလိုေ-ာက္ေပါေတြပဲ ေအာင္ျမင္ၾကပါတယ္။

ကြ်န္ေတာ္တုိ႕လည္း ေ-ာက္ေပါျဖစ္ေအာင္ ၾကိဳးစားၾကပါစို႕လားဗ်ာ ...........။ ။

R3gAЯDs,
Zer0/0=0ero

1 comment:

ZT said...

အရင္ ကုမၸဏီတုန္းကေတာ့ ကုတ္ဒ္ ႏွစ္ခု တိုက္ၾကည့္ဖို႕ WinDiff သံုးတယ္။ Merge လုပ္ခ်င္မွ WinMerge သံုးတယ္။ အခုေတာ့ Beyond Compare သံုးေနတယ္။