Monthly Archives: February 2011

bad-php-programmer

PHP Developer ကောင်း မပီသခြင်း Part II

အပိုင်း ၁ ကို ဒီမှာ ပြန်ဖတ်နိုင်ပါတယ်။

ကိုယ့် coding ကို အားကိုးလွန်းခြင်း

တချို့ ကိစ္စတွေမှာ ရိုးရိုးလေးနဲ့ အရှည်ကြီး ရေးရမယ့် coding နဲ့ သင့်ရဲ့ trick နဲ့ တိုတို လေး ရေးလိုက်လို့ရတာတွေ ရှိပါတယ်။ လူတိုင်း နီးပါးကတော့ ကိုယ်ပိုင် trick လေး သုံးပြီးရေးလိုက်ချင်တာပဲ။ သို့ပေမယ့် သင့် code က ပြန်ဖတ်တဲ့ အခါမှာ အရမ်းကို ရှုပ်ထွေးလွန်းနေပြီး သင်တစ်ယောက်တည်းသာ နားလည်နိုင်တယ်ဆိုရင်တော့ သင်ဟာ Developer ကောင်း ပီသတဲ့ သူမဟုတ်တော့ဘူး။ လူတိုင်းက သင့်လို မတော်ပါဘူး။ သင်ရေးတဲ့ code က သင့်တစ်ယောက်တည်း အတွက်ဆိုရင် ကိစ္စမရှိပေမယ့် နောင်တချိန် အခြားလူတစ်ယောက်က ပြန်ပြင်ရမယ်ဆိုရင်တော့ မသုံးသင့်ဘူးပေါ့။ ပြန်ပြင်တဲ့လူက သင့် code ကို လုံးဝ နားမလည်ဘူး သို့မဟုတ် သင့်လောက် မတတ်ဘူး မတော်ဘူးဆိုရင်တော့ သင့်ကို ပြန်မေးတာတွေကို သင်ပြန်ဖြေနေရလိမ့်မယ်။ လူတိုင်းက သင့်လောက် မတော်ပါဘူး။ ဒါကြောင့် ရိုးရှင်းပါ။
Continue reading

bad-php-programmer

PHP Developer ကောင်း မပီသခြင်း

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 ကောင်း တစ်ယောက် မဟုတ်သေးပါဘူး။

ဆက်ပါအုံးမည်….

Macbook Pro အသစ်ထွက်

Macbook Pro အသစ်ထွက်မယ်ဆိုပြီး သတင်းထွက်နေတာတော့ ကြာပြီ။ နောက်ပြီး Steve ရဲ့ မွေးနေ့ ဖေဖော်ဝါရီ ၂၄ ရက်မှာ ထွက်မယ်လို့ သတင်းထွက်နေတဲ့ အတိုင်း ထွက်လာပါပြီ။ Happy Birthday Steve Job !!!! Macbook Pro အသစ်မှာ ထူးထူးခြားခြား ပါလာတာကတော့ Thunderbolt ပါ။ Thunderbolt က လက်ရှိ USB 2.0 ထက် ၁၂ ဆ မြန်ပြီးတော့ USB 3.0 ထက် ၁၀ ဆ မြန်ပါတယ်။ Intel က ထုတ်လုပ်လိုက်တဲ့ Technology တစ်ခုပါပဲ။ သူ့ရဲ့ File ကူးနှုန်းက 10Gbps ပါ။ ၁ စက္ကန့်ကို 10 Giga bit ကူးနိုင်ပါတယ်။ Thunderbolt ပါတဲ့ ပထမဆုံး laptop လို့ ဆိုရမှာပါ။ နောက်ပြီးတော့ Facetime အတွက် front camera က HD camera ဖြစ်သွားပါတယ်။ ထူးခြားတဲ့အချက်နောက်တစ်ခုကတော့ Power cable plug design ပြောင်းသွားပါပြီ။

နောက်ထပ် သဘောကျစရာကောင်းတာကတော့ Core i5 2.3GHz processor နဲ့ 13 လက်မ ပါ။ ဒါမှမဟုတ် Core i7 2.7 GHz အမျိုးအစားလည်း ရှိပါတယ်။ ၁၅ နဲ့ ၁၇ လက်မတွေကတော့ quad-core Intel Core i7 processor with 6MB shared L3 cache ကို အသုံးပြုထားပါတယ်။ ၁၅ လက်မအတွက် 2.0 or 2.2 GHz ရှိပါတယ်။ ၁၇ လက်မကတော့ 2.2 GHz တစ်မျိုးတည်းပါ။

Graphic ကိုတော့ Intel HD Graphics 3000 အသုံးပြုထားပါတယ်။ 15 နဲ့ 17 လက်မတွေ အတွက်ကတော့ AMD Radeon graphics ကို သုံးထားပြီး ပြီးခဲ့တဲ့ မျိုးဆက်ထက် ၃ ဆ မြန်တယ်လို့ ဆိုပါတယ်။ လက်ရှိ ထွက်နေတဲ ့ သတင်းတွေထဲက မမှန်တာကတော့ အမည်းရောင် Macbook Pro ထွက်မလားဆိုတဲ့ သတင်းပါ။ အခုက Design ကတော့ ဘာမှ ထွေထွေ ထူးထူး မကွာသွားပါဘူး။ သို့ပေမယ့် Display ကတော့ ပိုကောင်းလာပါတယ်။ ၁၃ လက်မက S$1,648 ပဲရှိပါတော့တယ်။ အရင်တုန်းက Macbook Pro ထွက်ထွက်တုန်းက S$2000 လောက်ရှိခဲ့တာ အခု စျေး အများကြီးသက်သွားပါတယ်။ ဘယ်တော့လောက် စထွက်မယ်ဆိုတာကိုတော့ မကြေငြာသေးပါဘူး။

php10

PHP Developer တွေအတွက် အသုံးဝင်မယ့် အချက် ၁၀ ချက် – အပိုင်း ၂

အပိုင်း ၁ ကို ဒီမှာ ဖတ်ရှုနိုင်ပါတယ်။

၆။ သင့်အတွက် အသုံးဝင်မယ့် Snippet တွေကို သိမ်းထားပါ

Coding တွေရေးတဲ့အခါမှာ ထပ်ခါထပ်ခါ ပြန်သုံးနေရတာတွေ ရှိပါတယ်။ ဥပမာ။ File read / write လိုမျိုး ၊ ဒါမှမဟုတ် mysql connect ချိတ်တာမျိုးတွေပေါ့။ အဲလိုမျိုး code တွေကို ပြန်စဉ်းစား ပြန်ရေးနေမယ့်အစား အသုံးဝင်မယ့် code အပိုင်းတွေကို သိမ်းထားသင့်ပါတယ်။ အသုံးဝင်တဲ့ App တွေကတော့ Snippet, snippely, Code Collector စတာတွေပေါ့။ Snippely က လွဲလို့ ကျန်တာတွေက Mac app တွေပါ။ Snippely တစ်ခုပဲ free ရပါတယ်။ Windows, Mac , Linux အားလုံးအတွက် jcodecollector ရှိပါတယ်။
Continue reading

php10

PHP Developer တွေအတွက် အသုံးဝင်မယ့် အချက် ၁၀ ချက်

PHP ဟာ လူသုံးများတဲ့ web development language တစ်ခုပါ။ 20 millions domain လောက်က PHP ကို အသုံးပြုထားပြီး wikipedia, facebook စတဲ့ နာမည်ကြီး site တွေအပြင် WordPress , Drupal , Joomla စတာတွေကလည်း PHP နဲ့ ရေးသားထားတာပါ။ အခု ဆောင်းပါးမှာတော့ PHP Developer တွေ ပိုအကျိုးရှိစေမယ့် အချက် ၁၀ ချက်ကို ဖော်ပြပေးသွားပါမယ်။
Continue reading

vanilla

Vanilla Forum Script Installation

ကျွန်တော် ဒီတစ်ခါတော့ vanilla ဆိုတဲ့ forum script ကို install လုပ်နည်းကိုပြသသွားမှာ ဖြစ်ပါတယ်။ vanilla ကို mysteryzillion မှာ VBulletin အစားအသုံးပြုတော့မယ့် forum CMS တစ်ခုဖြစ်ပါတယ်။ vanilla ဟာ install လုပ်ရတာအရမ်းလွယ်ကူပြီးတော့ configure လုပ်ရတာလည်း ခန့်မှန်းထားသလောက်မခက်ခဲ့ပါဘူး။ သူရဲ့အားသာချက်ကတော့ VBulletin လိုအခကြေးငွေတစ်စုံတစ်ရာပေးစရာမလိုတဲ့ free (not only like beer free but also like freedom)  CMS အမျိုးအစားတစ်ခုဖြစ်တဲ့အတွက် forum စတင်စမ်းသပ်ထူထောင်လိုသူများအတွက် အထူးသင့်တော်မယ်လို့ယူဆရပါတယ်။ သို့သော် ကျွန်တော်သည် developer level user (power user ) တစ်ယောက်မဟုတ်တာကြောင့် vanilla နဲ့ပတ်သတ်၍ က မှ အ အဆုံးထိရေးသားနိုင်စွမ်းမရှိပါဘူး။ ကိုယ်တက်နိုင်သလောက် installation process ကို end user များနားလည်နိုင်အောင်ရေးသားလိုက်ရပါတယ်။
Continue reading