Source Code Control

Software Development လုပ်တဲ့အချိန်မှာ အရေးကြီးတဲ့အချက်တစ်ခုဟာ ရေးနေတဲ့ Sorce Code များကိုထိမ်းသိမ်းရခြင်း ဖြစ်ပါတယ်။ ရေးသားတဲ့နေရာမှာ အမြဲပြုလုပ်ရလေ့ရှိတာက မူရင်းရေးပြီးသား Sorce Code များကိုအကြောင်းအမျိုးအမျိုးကြောင့် ပြင်ပြီးစမ်းရတတ်ပါတယ်။ အဲဒီလိုပြုလုပ်ရင်း မကောင်း၍သော်လည်းကောင်း မူရင်းကိုပြန်လိုချင်၍သော်လည်းကောင်း တစ်ခါတစ်ရံမှာခက်ခဲ့တတ်ပါတယ်။ ဒီနေရာမှာ Source Code Control (Version Control System) တွေဟာ အများကြီးအရေးပါလာပါတယ်။

ဒီလိုအရာတွေကို ပုံမှန်အားဖြင့်ရှင်းလေ့ရှိတာက စမ်းသပ်မှု့ပြင်ဆင်မှု့မလုပ်ခင်မှာ backup လုပ်ပြီးစမ်းသပ်ပြင်ရပါတယ် မူရင်းပြန်လိုချင်တယ်ဖြစ်လာရင်တော့ backup လုပ်ထားတာကို ပြန်သုံးလို့ရပါတယ်။ နောက်ပြီးတော့ backup လုပ်ရာမှာလည်း ဖိုင်တွေကို Version သော်လည်းကောင်း နေ့စွဲအချိန်လိုသော်လည်းကောင်း ထည့်ပြီးမှတ်ထားမယ်ဆိုရင် ထိမ်းသိမ်းရလွယ်ပါတယ်။ backup လုပ်ထားတဲ့ ဖိုင်တွေကိုလည်း အားလုံးအတွက် တစ်နေရာတည်းမှာထားပြီး shared directory အဖြစ်ဆိုရင်အားလုံး အသုံးပြုရလွယ်ကူပါတယ်။ ဒါတွေဟာ Source Code Control ရဲ့အခြေခံအချက်တွေပါ။

Version Control System တွေကိုဘာလို့ အသုံးပြုရတယ်ဆိုတဲ့ အချက်တွေဟာလည်း အရေးကြီးပါတယ်။ shared directory တွေမှာက ပရောဂျက်တစ်ခုအတွက်နဲ့ ပရိုဂရမ်မာနည်းရင် ညှိနှိုင်းသုံးစွဲလို့ရပေမယ့် များလာရင်တော့ Version Control အင်မတန်ရှုပ်ထွေးလာပါတယ် နောက်ပြီးတော့ အများသုံးစွဲတာဖြစ်လို့ မူရင်းထားတဲ့ shared directory မှာပဲ တိုက်ရိုက်ပြုပြင်ဖို့ကြိုးစားရင် တစ်ခုတည်းကို တစ်ချိန်တည်းမှာပဲ လူအများဝိုင်းပြင်မိတာတွေ ဖြစ်လာနိုင်ပြီးတော့ ပြဿနာများစွာ ရှုပ်ထွေးလာမှာဖြစ်ပါတယ်။ နောက်တစ်ချက်က လူအများအသုံးပြုတာဖြစ်လို့ မိမိရေးသားထားတဲ့ Soruce Code များနဲ့အတူ ပြုလုပ်ခဲ့အတဲ့ အပြောင်းအလဲများကို မှတ်တမ်းတင်ဖို့လည်း လိုအပ်ပါတယ် ဒီနေရာမှာ shared directory တွေဟာ Soruce Code ရဲ့အတွင်းမှာပဲ Comment များရေးသားရုံကလွဲပြီး မထောက်ပံ့ပေးနိုင်တော့ပါဘူး။

Shared directory တွေမှာဖြစ်နိုင်တဲ့ အခက်အခဲပြဿနာကို အောက်မှာပုံအဖြစ်နဲ့ပြထားပါတယ်။ ပုံမှာ လူနှစ်ယောက်ဟာ ဖိုင်တစ်ခုကို တစ်ပြိုင်တည်းဖတ်ပြီး ပြုပြင်ကြပါတယ် ဒီနေရာမှာ တစ်ယောက်ပြင်ထားတဲ့ ဖိုင်တစ်ခုကို နောက်တစ်ယောက်က မူရင်းဖိုင်ထင်တဲ့အတွက် ထပ်ရေးတဲ့အတွက်အခက်အခဲဖြစ်နိုင်ပါတယ်။

more ..

MVC Post Collection

MVC နဲ့ သက်ဆိုင်တဲ့ Post လေးတွေ ကို စုစည်း တင်ပြထားပါတယ်။

PHP MVC Framework ဘယ်လို ဖန်တီးရသလဲဆိုတာကို အောက်က link တွေကနေ လေ့လာလို့ရပါတယ်။

MVC

MVC ဆိုတာကတော့ Model View Controller ဆိုတာ သိပြီးသားပြီးသားပါ။ ဒါပေမယ့် MVC ကို programming နဲ့ ရောထွေးနေကြတယ်။ MVC ဆိုတာ pattern တစ်ခုပါ။ Software Engineering မှာ အသုံးပြုတဲ့ architectural pattern လို့ဆိုရလိမ့်မယ်။ ဒါကြောင့် သူ့ကို Language တစ်ခုနဲ့ တစ်ခု အသုံးပြုပုံမတူဘူး။ နောက်ပြီး framework တစ်ခုနဲ့ တစ်ခု အသုံးပြုပုံမတူဘူး။ ဒါပေမယ့် သဘောတရားနဲ့ အနှစ်သာရကတော့ အတူတူပဲ။ CodeIgniter ရေးတတ်တာနဲ့ MVC ဆိုတာ ဒီလို ရေးရပါလားလို့ ထင်ရင်တော့ မဟုတ်ပါ။ CodeIgniter မှာ MVC ကို ရေးပုံနဲ့ Symfony မှာ ရေးပုံက မတူဘူး။ နောက်ပြီး iPhone SDK ကလည်း MVC ပဲ။ ဒါပေမယ့် တည်ဆောက်ပုံတွေ မတူဘူး။
Continue reading “MVC”

Basic Java အပိုင်း (၂)

Brief History of JAVA

၁၉၉၁ မှာ ( ၉၁ ဆိုတော့ ကျနောှ့ထက် တစ်နှစ်ကြီးတဲ့ အစ်ကိုကြီးပဲ Big Brother Java 😛 😛 ) James Gosling ဆိုတဲ့သူရဲ့ Oak အမည်ရတဲ့ Project ကနေ ထွက်ပောှလာပာတယ်.. C / C++ ရဲ့ Notation တွေကို အခြေခံပေမယ့် C/C++ ထက် ပိုပြီး ရှင်းလင်းလွယ်ကူအောင် လုပ်ဖို့ပာပဲ.. ပထမဆုံး Public ကို Implementation လုပ်တဲ့ Java 1.0 ဟာ 1995 မှာ ထွက်ပောှလာပာတယ်.. လူအကြား ရေပန်းစားလာတဲ့ အကြောင်းက “Write Once, Run Anywhere” ဆိုတဲ့ အချက်နဲ့ပာ ဆိုလိုချင်တာက Java ဟာ Platform Dependency မရှိပာဘူး.. Window ပောှမှာ ရေးထားတဲ့ Java codes တွေကို Unix ပောှမှာ run လို့ ရပာတယ်.. Unix ကို အခြေခံထားတဲ့ Linux, Mac မှာလည်း run လို့ ရပာတယ်.. ဒာ သူ့ရဲ့ အားသာချက်လို့ ပြောနိုင်ပာတယ်..

နောက်ပိုင်းမှာ large enterprises တွေအတွက် J2EE (Java 2 Platform, Enterprise Edition), Mobile အတွက်J2ME (Java 2 Platform, Micro Edition) ဆိုပြီး ထွက်ပောှလာပာတယ်..
Continue reading “Basic Java အပိုင်း (၂)”

Basic Java အပိုင်း (၁)

ပထမဦးစွာ ပြောချင်သည်မှာ ကျနောှ Java Developer မဟုတ်ပာ.. 🙂

ကျောင်းတွင် သင်သော စုတ်ပြတ်သတ် လက်ရေးများဖြင့် Notes လိုက်မှတ်ထားသည်များကို ဆီလျောှအောင် ပြန်လည် ရေးသားပာသည်.. မသင့်တောှသည်များကို Admin ကြီး saturngod မှ ပြင်ဆင်ပေလိမ့်မည် 😀

OOP အကြောင်းကို ကိုလူပျိုကြီးရေးထားတာလည်းရှိပာတယ်..

အရင်ဆုံး Java အကြောင်း မပြောခင်မယ် Object-Oriented-Programming အကြောင်း အရင် ပြောဖို့လိုမယ်ထင်ပာတယ်..

OOP ဆိုတာ Object ဆိုတဲ့အရာများကို အသုံးပြုပြီးတော့ Apps တွေ Program တွေ Design လုပ်ထားတဲ့ Programming Standard တစ်ခု ဖြစ်ပာသည်.. OOP မှာ နည်းလမ်းတွေ အများအကြီးရှိပာတယ်.. အဲထဲက အဓိကဟာတွေကတော့

Inheritance

Polymorphism

Encapsulation

တို့ဖြစ်ပာတယ်.. အောက်ဘက်မှာ အသေးစိတ် ပြန်ရှင်းပာ့မယ်

အရင်ဆုံး Object ဆိုတာကြီးကို Define လုပ်ကြည့်တာပော့

Object ဆိုတာ Subject မဟုတ်တာလို့ ပြောမှာလားဆိုတော့ မဟုတ်ပာဘူး 😛

An object is a thing that you can see, hold, or touch လို့ အရှင်းဆုံး ပြောလို့ရပာတယ်.. ကျနောှတို့ ပာတ်ဝတ်ကျင်းမှာ ကိုင်တွယ်နိုင်တဲ့အရာတွေ၊ မြင်နိုင်တဲ့အရာတွေ ၊ ထိတွေ့နိုင်တဲ့အရာတွေ အားလုံးဟာ Object ပာ..
Continue reading “Basic Java အပိုင်း (၁)”

Object-Oriented Software Engineering

Object-Oriented ဆိုတာကတော့ လူတော်တော်များများနဲ့ မစိမ်းတဲ့စကားလုံးပါ။ အခုနောက်ပိုင်း ပေါ်တဲ့ Programming Language တွေအားလုံးနီးနီးက Object-Oriented ကို Support လုပ်ကြပါတယ်။ နောက်ပြီးတော့ Programming လေ့လာတဲ့လူတော်တော် များများလည်း Object-Oriented ကိုလေ့လာကြပါတယ်။ ဒါတောင် တစ်ခါတစ်လေမှာ Object-Oriented ရယ် Programming Language ကိုမကွဲပြားကြဘူး။ Object-Oriented Programming ဆိုတာဘာလဲမေးရင် C++ လို့ပြောတဲ့လူ တော်တော်များများ တွေ့ဖူးပါတယ်။ ဒါတွေကတော့ ကျောင်းတွေမှာ Object-Oriented Programming ဆိုပြီး C++ နဲ့သင်ရာကနေ Object-Oriented Concept ကို Language နဲ့ကွဲအောင် မသင်နိုင်ခဲ့လို့ပါ။ Object-Oriented Programming ကနေ ဆက်ပြီးတော့ Object-Oriented နဲ့ပါတ်သက်ပြီး သိသင့်တာတွေကို အပိုင်းလိုက် ရေးမယ်လို့ စိတ်ကူးပါတယ်။
Continue reading “Object-Oriented Software Engineering”