Law of cosines , Pythagorean theorem with programming

မနေ့တုန်းက Wheel Image ပေါ်မှာ Touch Move နဲ့ ရွေ့ဖို့ ကိစ္စ အလုပ်မှာ ရေးရတယ်။ Wheel ပေါ်မှာ Touch start , Touch End , Touch Move event ၃ ခု ရှိတယ်။ Touch start ကနေ start point x နဲ့ y ကို ရတယ်။ Touch move ကနေ ရွေ့နေတဲ့ x , y ကို ရတယ်။ အဲဒီ point ၂ ခု နဲ့ လက်ရှိ ဘီး ကို လည်အောင် လုပ်ပေးရမယ်။ နာရီလက်တံ အတိုင်း လက်နဲ့ ပွတ်ပြီး လှည့်လိုက်ရင် အဲဒီ ဘက်ကို လည်သွားရမယ်။ နာရီလက်တံ ပြောင်းပြန်ဆိုလည်း ပြန်လည်လာရမယ်ပေါ့။ အဲဒါကို တွက်မယ်ဆိုတော့ ပုံကြမ်းချရေးလိုက်တယ်။

a,b အမှတ်နဲ့ x,y အမှတ် ဘယ်လောက် degree ကွာသွားလဲသိဖို့ အတွက် စက်ဝိုင်းရဲ့ ဗဟိုနဲ့ ချိတ်လိုက်တယ်။

ကျွန်တော် အခု သိချင်တာက အဲဒီက \theta ရဲ့ degree ပဲ။ ဒါမှ ကျွန်တော်က ဘီးကို ဘယ်လောက် rotate လုပ်မယ်ဆိုပြီး ပြောလို့ရလိမ့်မယ်။ အခု ကျွန်တော်တို့ သိတာက x,y | a,b | c,d စတဲ့ point တွေပဲ။ အဲဒီကနေ \theta ကို သိဖို့အတွက် Law of cosines ကို သုံးရပါမယ်။ ဒါကြောင့် အရင်ဆုံး တြိဂံ ဖြစ်သွားအောင် x,y နဲ့ c,d ကို ချိတ်လိုက်တယ်။

ဒါဆိုရင် \theta ကို ရှာလို့ရပါတယ်။

L^{2} = J^{2} + K^{2}  - 2JK \ cos(\theta )

ဒါက ကျွန်တော် တို့ UCS မှာ သင်ခဲ့ရသလို တက္ကသိုလ်ဝင်တန်း မှာလည်း သင်ရမယ်နဲ့တူတယ်။ ကျွန်တော်က \theta ပဲလိုချင်တယ်ဆိုတော့ ဒီလို ပြန်ပြောင်းလိုက်ပါတယ်။

\theta  = cos^{-1} \left ( \frac{J^{2}+K^{2}-L^{2}} {2JK} \right )

ဒါဆိုရင် ကျွန်တော်တို့တွေ \theta ကို သိပါပြီ။ ဒါပေမယ့် cos inverse က Math Object မှာ မရှိပဲ radian တွက်တာပဲ ရှိတယ်။ ဒါကြောင့် Radian ကနေ degree ပြန်ထွက်အောင် တွက်ရပါတယ်။

radian ကနေ degree တွက်ချင်ရင်

\frac{180}{\pi }

နဲ့ မြှောက်ရပါတယ်။ ဒါကြောင့် ပုံသေနည်းက ဒီလို ဖြစ်သွားပါမယ်။

\theta  = arccos \left ( \frac{J^{2}+K^{2}-L^{2}} {2JK} \right )  \times \frac{180}{\pi }

သို့ပေမယ့် L , J , K အနား တွေကို မသိသေးဘူး။ သိအောင် ဘယ်လို လုပ်ရမလဲ။ ၉ တန်း လောက်တုန်းက သင်ထားတဲ့ Pythagorean theorem ကို မှတ်မိသလား။ ထောင့်မှန် တြိဂံရဲ့ ၂ နားကို သိရင် ကျန် ၁ နားကို ပါသိနိုင်တယ် ဆိုတာလေ။ ထောင့်မှန် အနား ပုံသေနည်းက

c^{2} = a^{2}+b^{2}

ဒါဆိုရင် အနား ၃ နားကို ရှာလို့ရပါတယ်။ ဥပမာ ။။ L အနားဆိုရင်

L = \sqrt{(x-c)^{2} \times (y-d)^{2}}

အနား ၃ နားရသွားရင် \theta ကိုလည်း လွယ်လွယ်နဲ့ ရှာလို့ရသွားပါပြီ။ \theta degree ကို သိရင် စက်ဝိုင်းကိုလည်း rotate လုပ်လို့ရသွားပြီပေါ့။ ဒါက အကြမ်းပဲ ရှိပါသေးတယ်။ ဘယ် ဘက် အခြမ်း ညာဘက်အခြမ်း တွေအတွက်လည်း condition တွေ ထည့်ရေးရတာတွေ ရှိပါသေးတယ်။ UCS မှာ သချာင်္သင်ထားတာတွေ လက်တွေ့ လုပ်ငန်းခွင့်မှာ အသုံးချလို့ရတယ်ဆိုတာကို ပြတဲ့ အနေနဲ့ အကြမ်း သဘောမျိုးသာ ရေးထားတာပါ။ ၉ တန်း ၁၀ တန်း သချာင်္ကျေညက်တဲ့ အခါမှာ programming လုပ်ရတာ ပိုလွယ်ပြီး အဆင်ပြေပါတယ်။ UCS မှာ စာသင်တဲ့အခါမှာလည်း လက်တွေ့လောကမှာ အသုံးချနေတာတွေနဲ့ ဥပမာ ပေးပြီး သင်ကြားရင် ပိုစိတ်ဝင်စားကြမယ်ထင်ပါတယ်။ သချာင်္က game သာမက UI Development ပိုင်းတွေမှာလည်း အရမ်းကို အသုံးဝင်လှပါတယ်။

UI Design Resources

တစ်ခါတစ်လေ ကျွန်တော်တို့တွေ iphone , ipad UI Design ကို စဉ်းစားတဲ့ အခါ ဖြစ်ဖြစ် web design အတွက် UI ကို စဉ်းစားတာ ဖြစ်ဖြစ် ဘယ်လို သုံးသင့်ရမလဲဆိုတာ စဉ်းစားမရတာတွေ ရှိတတ်တယ်။ ကျွန်တော်က Designer မဟုတ်တဲ့အတွက် Design ပိုင်းကို လန်ထွက်နေအောင် မဆွဲနိုင်ဘူး။ သို့ပေမယ့် ဘယ် UI Design သုံးသင့်တယ်ဆိုတာကို နေ့စဉ် ထိတွေ့နေရတဲ့ ပတ်ဝန်းကျင်ကြောင့် သိနိုင်တယ်။ အခု တလော ရုံးမှာ အလုပ်များနေတာကြောင့် Designer ကလည်း project တစ်ခုကို အချိန်ပြည့် ယူနေရတယ်။ လက်ရှိ ကျွန်တော့် project တွေအတွက် UI Design ကိုယ့်ဘာသာကိုယ် ဖန်တီးရပါတော့တယ်။ Continue reading “UI Design Resources”

Zawgyi Docx to epub for iBook and Nook Color

Zawgyi နဲ့ရေးထားတဲ့ Docx ကနေပြီးတော့ epub ပြောင်းပုံလေးပါ။ iBook , Nook Color တို့မှာ ဇော်ဂျီ မသွင်းထားပဲနဲ့ ကိုယ် ရေးထားတဲ့ စာအုပ်ကို ဖတ်လို့ ရအောင် ဘယ်လို လုပ်ရမလဲဆိုတာကို ပြထားပါတယ်။

Syntax Highlighting on MZ

MZ မှာ code အတွက် syntax highlight လုပ်ချင်ပါက ကို နှိပ်ပါ။

ထို အခါ code view ရောက်သွားမည်။ code view ထဲတွင် code ထည့်သည့်အခါ pre tag နှင့် ထည့်ရမည်။

<pre lang=”your language”>

ဒီနေရာမှာ code ထည့်ပါ။

</pre>

အောက်က ပုံလို မျိုး ထည့်သွင်းရေးရပါမည်။

post တင်လိုက်တဲ့ အခါမှာတော့ syntax highlighting နှင့် ထွက်လာပါမည်။

အသုံးပြုလို့ရတဲ့ language တွေကတော့

  • applescript
  • actionscript3 as3
  • bash shell
  • coldfusion cf
  • cpp c
  • c# c-sharp csharp
  • css
  • delphi pascal
  • diff patch pas
  • erl erlang
  • groovy
  • java
  • jfx javafx
  • js jscript javascript
  • perl pl
  • php
  • text plain
  • py python
  • ruby rails ror rb
  • sass scss
  • scala
  • sql
  • vb vbnet
  • xml xhtml xslt html

Font embed in iPhone Titanium

အရှေ့ မှာတုန်းကတော့ Android Titanium မှာ font embed လုပ်တဲ့ အကြောင်းပြောပြီးပါပြီ။ အခု iphone အတွက် လုပ်ကြည့်ရအောင်။ Android မှာ ရေးထားတဲ့ code အတိုင်းပဲ ရေးပြီးတော့ iphone အတွက် config လေးတွေ နည်းနည်း လုပ်ရပါမယ်။

အရင်ဆုံး project folder အောက်က build ဆိုတဲ့ folder ကို သွားပါ။ အဲမှာ android နဲ့ iphone ဆိုတဲ့ folder ၂ ခုတွေ့ပါမယ်။ iphone ဆိုတဲ့ folder ထဲဝင်ပြီး info.plist ကို copy ကူးပါ။

ပြီးရင်တော့ project folder အောက်မှာ paste လုပ်လိုက်ပါ။

Paste လုပ်ထားတဲ့ info.plist ကို ဖွင်ပြီးတော့ Fonts provoide by application ဆိုပြီး အသစ် တစ်ကြောင်း ထပ်ဖြည့်ပါ။ အလိုလို Array data type ရွေးသွားပေးပါမယ်။ ပြီးရင် item-0 မှာ ကိုယ် အသုံးပြုမယ့် font file ကို ထည့်ပေးပါ။

ပြီးရင် build folder ထဲကို ပြန်သွားပြီး iphone folder တစ်ခုလုံးကို ဖျက်လိုက်ပါ။

ဖျက်ပြီးသွားရင်တော့ Resources folder ကို သွားပြီး font file ကို ထည့်ပါ။

ပြီးရင် compile လုပ်လိုက်ပါ။ အဲဒီ အခါ သူ့အလိုလို build အောက်မှာ iphone porject သွားဆောက်ပါလိမ့်မယ်။ ပြီးသွားရင်တော့ iphone မှာ ဇော်ဂျီ မြင်ရတာကို တွေ့ရပါလိမ့်မယ်ဗျာ။


Ornagaime Winner

အောက်ပါ လူ ၁၀ ယောက်ကတော့ ကံထူးရှင် ၁၀ ဦးပါပဲ။ ၁၀ ယောက်လုံးကို promo code mail ပို့ထားပြီး အသုံးပြုပုံ ကိုလည်း mail ပို့ထားပါတယ်။

ကို ဖိုးချမ်း နဲ့ ကို မောင်အောင် တို့က ဝယ်ပြီးသွားပြီဆိုတဲ့ အတွက်ကြောင့် SQL ထဲမှာ သူတို့ ပြန်မပါလာအောင် condition စစ်ပြီး random ထုတ်ထားပါတယ်။

စည်းကမ်းချက်က ပါဝင် ကံစမ်းသူများသည် App Store account ရှိပြီး iOS 4.0 နှင့် အထက် ရှိသူများ ဖြစ်တဲ့အတွက်ကြောင့် promo code ကို လွယ်လင့် တကူ အသုံးပြုနိုင်မယ်လို့ မျှော်လင့်ပါတယ်။

Font Embed in Android Titanium

ဒီနေ့ Titanium Mobile SDK အသစ်မှာ Android အတွက် font embed ပါလာပါပြီ။ ဒါကြောင့် Titanium ကို အသုံးပြုပြီး မြန်မာ စာ အသုံးပြုတဲ့ iphone, android app တွေ ရေးလို့ရပါပြီ။ အရင် version တုန်းကတော့ iPhone တစ်ခုတည်းမှာ ရခဲ့ပေမယ့် အခု version မှာတော့ Android အတွက်ပါ ရလာပါပြီ။

How to

Titanium မှာ project အသစ် တစ်ခု ဆောက်လိုက်ပါ။

Continue reading “Font Embed in Android Titanium”

Unicode Guide

Unicode အသုံးပြုပုံနဲ့ ပတ်သက်ပြီး ထည့်သွင်းရေးသားထားပါတယ်။ မရှင်းတာ နားမလည်တာတွေကို comment မှာ မေးနိုင်ပါတယ်။ သို့မဟုတ် user.mysteryzillion.org မှာ လည်း မေးနိုင်ပါတယ်။

iBook need 1.2 or later for font embed.

Download

Mobile App Development

Mobile app development နဲ့ ပတ်သက်ပြီး အခြေခံ အဆင်လေးကို presentation လေးလုပ်ထားတာပါ။ MZ ပွဲမှာ ပြမလို့ စဉ်းစားထားပေမယ့် အသံ quality သိပ်မကောင်းတာကြောင့် ပြဖြစ်မယ် မထင်ပါဘူး။ အခုမှ mobile app ကို လုပ်ချင်တဲ့ လူတွေအတွက်တော့ အသုံးဝင်မယ့် video ဖြစ်မယ်လို့ ထင်ပါတယ်။

Ornagaime Giveaway

Ornagaime ( Myanmar to English ) Dictionary ကို မဲ ၁၀ ခု ဖောက်ပေးပါမယ်။ Ornagaime ဟာ Myanmar to English Dictionary ဖြစ်ပြီး အခုအချိန်မှာတော့ Version 0.5.1 ပဲ ရှိပါသေးတယ်။ Ornagaime ဟာ နောက်ပိုင်း version တွေ ထပ်ပြီး update လုပ်သွားဖို့ အစီအစဉ်တွေ ရှိပါတယ်။ နောက်ထွက်မယ့် version တွေမှာ

syllable break – ကို ဆိုတာကို ရှာရင် ကိုး ဆိုတဲ့ စာလုံးမထွက်လာအောင်
normalization – က-ိ-ု ပဲ ရိုက်ရိုက် က-ု-ိ ပဲ ရိုက်ရိုက် အဖြေတစ်ခုတည်းထွက်လာအောင်

စတာတွေ ပါရှိလာပါမယ်။

ကံစမ်းမဲတွင် ပါဝင်လိုတဲ့သူတွေကတော့ အောက်မှာ comment ဝင်ရေးလိုက်ရုံပါပဲ။ comment ရေးတဲ့အခါမှာ email အမှန်ဖြည့်စွက်ပေးဖို့ လိုအပ်ပါတယ်။ နောက်ပြီး App store account ရှိတဲ့သူဖြစ်ပြီး iPhone OS 4.0 နှင့်အထက် ရှိရပါမယ်။

* jailbreak ဖြစ်ရန် မလိုအပ်ပါ။ application အတွက် keyboard နှင့် font built in ထည့်သွင်းထားပါသည်။

မဲပေါက်သူများကို April 22 ရက်နေ့ Good Friday မှာ ကြေငြာပါ့မယ်။

Cloud Computing Explained

Cloud ဆိုတာ ဘာလဲဆိုတာကို သေသေချာချာ ရှင်းပြထားတဲ့ video လေးပါ။ Cloud ဆိုတာကို နားမလည်တဲ့ သူတွေအတွက် ကြည့်သင့်တဲ့ video ဆိုလည်း မမှားပါဘူး။

Freelance သမားတွေ အသုံးဝင်မယ့် Tool ၄ ခု

Freelance လုပ်တဲ့ အခါမှာ ကျွန်တော်တို့တွေအတွက် စျေးသက်သက်သာသာ ဒါမှမဟုတ် free ရမယ့် service လေးတွေ လိုအပ်ပါတယ်။ Client အနေနဲ့လည်း ကိုယ်ဘာတွေ ပြီးသွားပြီ ဘာတွေလုပ်ဖို့ ကျန်သေးလဲဆိုတာကို တစ်ခါတည်း သိရှိနိုင်ဖို့လိုပါတယ်။ ကျွန်တော် အကြိုက်ဆုံး tool ၄ ခုကို ဖော်ပြလိုက်ပါတယ်။

Freedcamp

Freelance လုပ်တဲ့အခါမှာ အရေးကြီးဆုံး အပိုင်းကတော့ Project Management ပါ။ Client ဘာလိုလဲ။ ကိုယ်ရဲ့ milestone တွေ စတာတွေ အပြင် discussion တွေပါ အစ ပါဝင်ပါတယ်။ basecamp ကို သုံးဖူးတဲ့သူတွေအနေနဲ့ free ရမယ့် basecamp လိုမျိုး project management ကို ရှာနေရင်တော့ freedcamp က အကောင်းဆုံးပါပဲ။ နောက်ပြီး freedcamp က အမြဲတန်း free ပေးမယ်လို့ ကြေငြာထားပါတယ်။ အလွယ်အကူဆုံး အရိုးအရှင်းဆုံးနဲ့ ထိရောက်မှုရှိတဲ့ project management website တစ်ခုပါ။

Continue reading “Freelance သမားတွေ အသုံးဝင်မယ့် Tool ၄ ခု”

1 million downloads , Wunderlist

Todo list တွေ လုပ်ထားတတ်တဲ့ အကျင့်ရှိပါသလား။ Project တွေအလိုက် ခွဲပြီး Todo list တွေ အသုံးပြုသလား။ Wunderlist က Todo list ဖန်တီးတတ်တဲ့ သူတွေ အတွက် အသုံးဝင်တဲ့ App တစ်ခုပါ။ အခုအခါမှာတော့ Wunderlist က download 1 million ရှိသွားပါပြီ။ iPad , iPhone မှာ စပြီး မိတ်ဆက်ခဲ့ပြီး windows , mac , linux စတာတွေအတွက် app ပါရှိပြန်ပါတယ်။

အခုအခါမှာတော့ Web Version , Android Version ပါ ရနေပါပြီ။ Todo list တွေ လုပ်တတ်တဲ့ အကျင့်ရှိတဲ့သူတွေအတွက်ကတော့ အရမ်းကို အသုံးဝင်တဲ့ cloud todo list ပါပဲ။ လျှင်လျှင်မြန်မြန်နဲ့ 1 million downloads ရရှိသွားပါတယ်။ သို့ပေမယ့် သူရဲ့ 1 million downloads က device အားလုံးပေါင်း 1 million လို့ ထင်ပါတယ်။ ဥပမာ ။။ user တစ်ယောက်က windows သို့မဟုတ် osx အတွက် download ချပါလိမ့်မယ်။ ထို့အတူ သူ့မှာ phone ရှိရင်လည်း အဲဒီအတွက် ထပ်ချပါလိမ့်မယ်။ ဒါကြောင့် 1 million download လျင်လျင်မြန်မြန် ရရှိသွားတာပါ။ ဘာပဲပြောပြော တကယ့်ကို အသုံးဝင်တဲ့ App တစ်ခုပါ။

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

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

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

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

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

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