Code Review
ကိုယ်ပိုင်မှတ်သားအသုံးပြု remind လုပ်ရန်ရေးသားထားခြင်းဖြစ်သည်။Thoughtbot က Code Review Guide၊ Google က Code Review Guide နှင့်အခြားသော Code Review best practices တွေပေါ် Reference ထားပြီးတော့ ကိုယ့်အာပေါ်နှင့်ကိုယ့်အတွေးများဖြင့် ကိုယ့်ကိုယ်တိုင်အတွက် ရေးသားထားခြင်းဖြစ်သည်။
Reviewer Guide
Review လုပ်ရင်စစ်တဲ့အချက်တွေကိုအောက်မှာဖော်ပြထားပါတယ်…
- Code ကလက်ရှိ Code Base ရဲ့ style guide ကို follow လုပ်ရဲ့လား
- Code ကမလိုအပ်ဘဲ complex ဖြစ်နေသလား
- Code မှာ unit test ပါရဲ့လား
- Appropriate Naming တွေဖြစ်ရဲ့လား
- Comment တွေပါရင်လည်း ရှင်းလင်းအသုံးဝင်ရဲ့လား၊ လိုကောလိုအပ်ရဲ့လား
- မလိုအပ်ဘဲနှင့် over-engineering လုပ်ထားလား
- Doc block တွေသေချာပေးရဲ့လား (PHP က type strict မဖြစ်တော့ comment တွေလိုက်ကြည့်ပြီးတော့မှ ဘယ် parameter ကဘယ် type ကိုဘဲလက်ခံလည်းဖတ်ရတာမလို့ပါ)
Author Guide
ကိုယ်က Author ဖြစ်တဲ့အချိန်မှာ ဘယ်လိုပြန်ပြီး communicate လုပ်မလဲ…
- ကိုယ့်ကိုကိုယ်နှိမ်ချပါ… (I am not sure – let’s look it up)
- နားမလည်ရင် သေချာအောင်မေးပါ (“I didn’t understand. Can you clarify?”)
- နောက်တစ်ချက်အရေးကြီးတာကတော့ Don’t take it personally. တစ်ယောက်နှင့်တစ်ယောက် Feedback/suggest ပေးတဲ့အချိန်မှာလွှဲတာမှားတာလေးတွေလည်းဖြစ်နိုင်တယ်။ နောက်တစ်ချက်က online မှာ emotion ကိုပြဖို့ရာကလည်းတော်တော်လေးခက်ခဲတယ်။ ပြောချင်တဲ့အဓိကအချက်ကတော့ Don’t take it personally ပါဘဲ။
- Explain why. တစ်ခါတစ်လေမှာ Review လုပ်တဲ့သူကကိုယ့် perspective ကို PR ကနေမမြင်ဘူး… အဲ့တော့မေးခွန်းတွေမေးလာတဲ့အချိန်မျိုးမှာ… suggest လုပ်တဲ့အချိန်မျိုးမှာ သေချာပြန်ရှင်းပြပါ။
- အထက်ကအချက်လိုဘဲ Reviewer ရဲ့ perspective ကိုမမြင်ရင်သေချာပြန်မေးပါ။
- Comment တိုင်းကို Reply ပြန်ပြီးတော့ resolve လုပ်ပေးပါ။
- CI pass အောင်စောင့်ပြီးတော့မှ Code ကို Merge လုပ်ပါ။
Communications
Code Review လုပ်တယ်ဆိုတာ team member ချင်း communications လုပ်နေကြတာပါ။ အချင်းချင်းတည့်မတ်ပေးကြတယ်။ သူရေးထားတဲ့ထဲမှာ ကိုယ်နားမလည်တာပါရင်မေးမယ်၊ ပိုကောင်းတယ်ထင်ထားတာရှိရင် suggest လုပ်မယ်။ အပြန်အလှန်လေ့လာသင်ယူကြတဲ့ culture ဖြစ်လို့ Code Review ကိုကျွန်တော်တော့ တော်တော်လေးသဘောကျမိတယ်။
Code Review လုပ်တဲ့အခါမှာအထက်မှာပြောခဲ့သလို team member အချင်းအချင်း communicate လုပ်တဲ့နေရာမှာ နားလည်မှုလွှဲမှားနိုင်လို့ စကားလုံးအသုံးအနှုန်းလေးတွေကိုလည်းသတိထားဖို့လိုအပ်သလို ကိုယ့် code ကို Review လုပ်တဲ့သူနှင့် communicate လုပ်တဲ့အခါမှာလည်းဘယ်လို communicate လုပ်မလဲဆိုတာလေးတွေကို အောက်မှာနမူနာပုံစံလေးတွေနှင့်ရေးသားလိုက်ပါတယ်။
- Be humble
- မေးခွန်းကောင်းကောင်း suggestion ကောင်းကောင်း comment ပေးပါ။ ဥပမာ What do you think about naming this to
your suggestion
?. မေးခွန်းကောင်းကောင်းမွန်မွန်ရေးရင် PR တင်တဲ့သူဘက်အနေနှင့်လည်း အော်ငါရေးထားတာမရှင်းလို့ဘဲဆိုတာမျိုးဖြစ်မယ်။ Can you change this variable naming toyour suggestion
ဆိုရင် မပြောင်းလို့မရဘူး ပြောင်းမှရမယ်ဆိုတာမျိုးဖြစ်မယ်။ နှစ်ခုစလုံးက suggest ပေးတာဘဲ။ ဒါပေမယ့် PR တင်တဲ့သူဘက်က perspective ကိုပြန်မေးတော့ သူ့ဘက်ကလည်း discuss လုပ်လို့တယ်။ - Review လုပ်တဲ့သူအနေနှင့် Code ကိုဖတ်နေရင်း မရှင်းဘူး/နားမလည်ဘူးဆိုရင်မေးပါ။ PR တင်ထားတဲ့သူကလည်း Review လုပ်ထားတဲ့ suggestion ကိုနားမလည်သေးဘူးဆိုရင်မေးပါ။ (“I didn’t understand. Can you clarify?”) ဒါမျိုးမေးတာကနှစ်ဘက်စလုံးအတွက်အကျိုးရှိတယ်။ မေးခွန်းမေးခံရတဲ့အခါမှာလည်းကိုယ့်ဘက်ကသေချာရှင်းပြပေးဖို့လိုတယ်။ ဒါလေးတောင်နည်းမလည်ဘူးလားဆိုတဲ့စိတ်တွေဖျောက်ထားကမယ်။ ဒါမှ team တစ်ခုအနေနှင့်အဆင်ပြေလိမ့်မယ်။
ဒီ Guide မှာ Improvement ထပ်လုပ်စရာတွေများစွာရှိသေးတယ်။ ကြုံရင်ကြုံသလို နောက်မှသေချာထပ်ထည့်ပါဦးမယ်။