PHP ကို တတ်ကျွမ်းနားလည်ပြီး ကောင်းကောင်းမွန်မွန်ရေးတတ်ရုံနဲ့ တကယ်တော်တဲ့ PHP Developer အနေနဲ့ မသတ်မှတ်နိုင်ပါဘူး။ code တွေ လန်ပျံနေအောင် ရေးတတ်ပါစေ အချို့ အချက်တွေက Developer ကောင်းလို့ သတ်မှတ်ခြင်း မခံရစေပါဘူး။ ဘာအချက်တွေက သတ်မှတ်လို့မရဘူးလဲ။
Coding မရေးခင် ဘာမှ မစဉ်းစားထားခြင်း
Coding တစ်ခု စရေးတော့မယ်ပဲ ဖြစ်ဖြစ် project တစ်ခု စရေးတော့မယ်ဖြစ်ဖြစ် ဘာတွေ လုပ်မလဲ။ ဘယ်အဆင့်တွေကို ရေးမလဲဆိုတာကို ကြိုတင် list မလုပ်ထားဘူး။ လက်တန်း ချရေးနိုင်လို့ လက်တန်း ချရေးမယ်ဆိုရင်တော့ အဲဒီလူက တကယ်တော်တဲ့ PHP Developer မဟုတ်တော့ပါဘူး။ Developer ကောင်းတွေက မရေးခင်မှာ ဘာတွေ ပါမလဲဆိုတာကို အရင်စဉ်းစားထားပါတယ်။ UML မဆွဲဖြစ်ချင်ရင်တောင် Todo list ကို အနည်းဆုံးတော့ ပြင်ထားပါတယ်။ အချို့ Developer ကောင်းတွေက အရင်ဆုံး comment တွေ တောင် ကြိုပြီးရေးထားတတ်သေးတယ်။
<?php
// Include necessary data
// Initialize the database connection
// Include common header
// Determine the page variables from the POST data
// Load the proper database info with page variable
// Loop rows
// Image Display
// Create Image Link
// Format the entry display
// Add formatted entry to entry array
// Collapse the entry array
// Output the entries
// Include common Footer
?>
ဒါကတော့ ဥပမာ အနေနဲ့ ပြထားတာပါ။ ဘာ code မှ စမရေးခင် Pseudo သဘောမျိုး comment တွေ စဉ်းစားပြီး ရေးသွားတာပါ။ ကိုယ်တိုင် အဲဒီ class သို့မဟုတ် Library ကို မရေးဖြစ်ရင်တောင် ကိုယ့် colleague ( လုပ်ဖော် ကိုင်ဖက်) က ဘာတွေ ရေးရမလဲဆိုတာကို နားလည်ပြီး သူရေးနိုင်ပါတယ်။
Comment တွေ လုံးဝ မရေးခြင်း
Comment ရေးတယ်ဆိုတာ အပြောလွယ်သလောက် အလုပ်ရှုပ်တယ်ဆိုတာ မှန်ပါတယ်။ အများအားဖြင့် Rapid Developer တွေက comment ရေးရမှာ ပျင်းတတ်ကြတယ်။ Developer ကောင်း တစ်ယောက် အနေနဲ့ဆိုရင်တော့ comment က လိုအပ်ရင် ရေးထားသင့်ပါတယ်။
if(is_array($data_array))
{
extract($data_array);
}
require(SITE_PATH."/application/View/".$view.".php");
က ကြည့်လိုက်ရင် သိပေမယ့် extract ကို ဘာလုပ်ဖို့ သုံးထားတာလဲ ဆိုတာ ရုတ်တရက် နားလည်ရခက်နေပါတယ်။
// extract for view variable
// $data_array['foo']='boo' to $foo='boo'
if(is_array($data_array))
{
extract($data_array);
}
//load view
require(SITE_PATH."/application/View/".$view.".php");
ဒီလိုမျိုးလေး ရေးထားလိုက်ရင်တော့ extract manual ကို သီးသန့် သွားရှာဖတ်နေမယ့် အစား အလွယ်တကူ နားလည် သဘောပေါက်သွားနိုင်ပါတယ်။ မြန်မြန် ပြီးဖို့ အဓိက ဆိုပြီး comment တွေ မရေးသွားရင်တော့ နောက်တချိန် code တွေကို ပြန်ပြင်တဲ့အခါမှာ မှတ်မိတော့မှာ မဟုတ်တော့ပါဘူး။
Code လိုင်းတိုတို မရှင်းမလင်း
Code လိုင်းတိုဖို့ condition က bracket တွေကို ဖြုတ်ချထားတာတွေကို တွေ့ဘူးတယ်။ code line က တိုသွားတယ်။ ရှင်းတယ်။ သို့ပေမယ့် ပြန်ဖတ်တဲ့သူအတွက်ကတော့ ရှုပ်သွားတယ်။
$foo = 8;
if( $foo<10 )
if( $foo>5 )
echo "Greater than 5!";
else
echo "Less than 5!";
else
echo "Greater than 10!";
echo "<br />Another note.";
ဒီ code မှာဆိုရင် အောက်ဆုံး အကြောင်းက Loop ထဲပါတာလည်း မပါဘူးလားဆိုတာကို နားလည်မှုလွဲသွားနိုင်သလို ရှုပ်လည်း ရှုပ်သွားစေတယ်။ နောက်ပြီး if တွေက အဆင့်ဆင့် ပါတော့ ဘယ်အဆင့်က ဘာလဲဆိုတာကို နားလည်ဖို့ နည်းနည်း ခက်သွားပါတယ်။ ဒါကြောင့် {} တွေ ထည့်ခြင်းက အစ နဲ့ အဆုံးကို နားလည် စေတယ်။ code line အရေအတွက် များသွားပေမယ့် ပိုပြီး ရှင်းလင်းပါတယ်။
$foo = 8;
if( $foo<10 )
{
if( $foo>5 )
{
echo "Greater than 5!";
}
else
{
echo "Less than 5!";
}
}
else
{
echo "Greater than 10!";
}
echo "<br />Another note.";
Coding Standard မလိုက်နာခြင်း
Coding Standard လို့ ဆိုလိုက်ရင် အခုမှ စလေ့လာက လူတွေက ဘာမှန်း မသိ။ နည်းနည်း ကြောင်သွားတတ်ပါတယ်။ လက်ရှိ လူသုံးများတဲ့ standard ကတော့ မူရင်း pearl ရဲ့ coding standard ပါပဲ။ Coding standard အတိုင်း မရေးတော့ code တွေက တစ်နေရာမှာ တစ်မျိုးဖြစ်နေတယ်။ နောက်ပြီး {} သုံးတဲ့အခါ သုံးတယ်။ မသုံးတဲ့အခါမသုံးဘူး။ short code တွေကို သုံးရင် သုံးမယ်။ မသုံးတဲ့ အခါမသုံးတာတွေ ဖြစ်တတ်ပါတယ်။
Duplicate Code
ဒါကတော့ ထွေထွေ ထူးထူး ပြောစရာလိုမယ် မထင်ပါဘူး။ code တွေကို ပြန်ပြန်ရေးတာပဲဖြစ်ဖြစ် ပြန်ပြန် သုံးနေရင်ပဲ ဖြစ်ဖြစ် ကောင်းမွန်တဲ့ အရာမဟုတ်ပါဘူး။ function ခွဲရေးတာ ဖြစ်ဖြစ် class ခွဲရေးဖို့ ဖြစ်ဖြစ် စဉ်းစားသင့်ပါတယ်။
Development Pattern ကို အသုံးပြုခြင်း
သာမာန် ရိုးရိုး coding ဆိုရင်တော့ Design Pattern က မလိုအပ်ပါဘူး။ Web application တစ်ခုလုံးကို ရေးမယ်ဆိုရင်တော့ Development Pattern က အရေးပါလာပါပြီ။ MVC ကို မဖြစ်မနေ ရေးရမယ်လို့ ဆိုလိုတာမဟုတ်ပါဘူး။ MVC လိုမျိုး pattern ကို အသုံးပြုမယ်ဆိုရင်တော့ web development မှာ အများကြီး လွယ်ကူသွားစေပါတယ်။ Design Pattern တွေ MVC တွေ သိဖို့ မလိုပါဘူး။ အလုပ်ဖြစ်ဖို့ လိုတယ် ဆိုပြီး php code တွေကြီးပဲ ရေးနေရင်တောင် သင်ဟာ Developer ကောင်း တစ်ယောက် မဟုတ်သေးပါဘူး။
ဆက်ပါအုံးမည်….