Guidline For Learning Spring Framework

၂ဝ၁၃ က ကြ်န္ေတာ့္အတြက္ ကံေကာင္းတဲ့ ႏွစ္လို႕ေျပာလို႕၇ပါတယ္။ စင္ကာပူမွာ ေက်ာင္းတက္ခြင့္၇သလို စိတ္တူကိုယ္တူ သူငယ္ခ်င္းအသစ္ေတြ လည္း၇လိုက္တယ္။ အစက ေက်ာငး္က သင္၇ိုးကို သိပ္မၾကိႉက္လွဘူး။ platform ေတြ အစံုသင္ေပမယ့္ project ေတြကို သူတို့ ခိုင္းတဲ့ .Net platform ေပါၤမွာပဲ ေ၇း၇တာ.. ေနာက္ course တစ္ဝက္ျပီးလို့ internship ဆင္းေတာ့လည္း မလုပ္ခ်င္တဲ့ project နဲ့ platform ေပါ္မွာပဲ လုပ္၇တယ္။ ပထမေတာ့ စိတ္ပ်က္တာေပါ့.ေနာက္ေတာ့လည္း တေျဖးေျဖးနဲ့ အဆင္ေျပလာတာပါပဲ။ .Net platform ကို ဒီေက်ာင္းမွ စသင္ဖူးေပမယ့္ Java အေျခခံ၇ွိေတာ့ သင္၇တာနဲ့ ေလ့လာ၇တာေတာ့ သိပ္အခက္အခဲ မ၇ွိဘူး။ ၇ံုးမွာလုပ္ေတာ့လည္း google မွာ ၇ွာလိုက္ forum ေတြမွာ ေမးလိုက္နဲ့ သိပ္ အခက္အခဲ ၾကီးၾကီးမားမား မ၇ွီဘူး။ ေ၇းေန၇င္းနဲ့လည္း Java မွာဆို ဘယ္လို လြယ္ေအာင္ လုပ္လို့ ၇တယ္လို့ ေတြးမိတုိငး္ ကုိယ္ေ၇ာက္ေနတဲ့ အေျခအေနကို အားမ၇ဘူး။ အလုပ္ကလည္း သိပ္ျပီး stress မ၇ွိဘူး.. ေနာက္ပိုင္း အလုပ္ပါးလာတဲ့ အခ်ိန္မွာ ၇ံုးမွာ Spring framework ဆက္ေလ့လာျဖစ္တယ္။ Spring နဲ့ project လုပ္ၾကည့္ေတာ့လည္း တခ်ို႕အပိုင္းေတြက Asp.net မွာဆို  လြယ္လြယ္နဲ႕၇တယ္လို့ ေတြးမိျပန္ေ၇ာ။

တကယ္ေတာ့ platform နွစ္ခုကို ေသေသခ်ာခ်ာ မေလ့လာပဲ ႏွိုင္းယွဥ္လို့မ၇ဘူး။ သူ႕အားသာခ်က္ အားနည္းခ်က္ေတြ ကိုယ္ဆီ၇ွိၾကတယ္။ နွစ္ခုလံုးကို ေသခ်ာ လုပ္ၾကည့္မွ သိလာတာ။ ဒါေပမယ့္ ASP.NET ကို သိပ္မၾကို္က္ဘူး.. flexible မျဖစ္ဘူးလို့ ခံစား၇တယ္။ ျပီးေတာ့ Web development platform နဲ့ မတူပဲ သူ႕ architecture က ကြဲထြက္ေနတယ္။ Web ၇ဲ႕ request, response nature ကို သိစ၇ာမလိုသလိုျဖစ္ေနတယ္။ ေျပာ၇၇င္ web development လုပ္ေနတယ္လို့ မထင္၇ဘူး။ desktop app တစ္ခု ေ၇းေန၇သလိုပဲ။ ဒါေၾကာင့္ Microsoft က MVC ထပ္ထြင္ထားတာ။ ASP.NET MVC ကိုေတာ့ မေလ့လာဖူးေတာ့ မေဝဖန္တတ္ဘူး။  Web development က MVC design pattern နဲ့သာ အသင့္ေတာ္ဆံုးလို့ပဲထင္တယ္။ Java မွာလည္း Component Framework ျဖစ္တဲ့ JSF ကလည္း ASP.NET နဲ့တူတယ္။ Controller ၇ဲ႕ အခန္း ေပ်ာက္ေနျပိးေတာ့  concern ေတြကို ဘယ္လို ခြဲထုတ္၇မွန္းမသိဘူး။ ဒါေၾကာင့္ Spring Framework ကိုပဲ ဆက္ေလ့လာျဖစ္တယ္။

Spring Framework ကေလ့လာ၇တယ္လည္း လြယ္တယ္။ Framework ကိုယ္တုိင္ကလည္း lightweight ျဖစ္ေပမယ့္ သူ႕မွာ module ေတြ အမ်ားၾကီးနဲ႕ ဖြဲ႕စည္းထားတာ။ အဲလို modular ျဖစ္တဲ့ သူ၇ဲ႕  architecture ကပဲ အားသာခ်က္ျဖစ္ေနတယ္ ထင္တယ္။ ကိုယ္လိုတဲ့ module ကို ယူသံုး၇ံုပဲ။ Enterprise application framework ျဖစ္ေပမယ့္ သူ၇ဲ႕ တခ်ို႕ module ေတြက web development မွာပဲ သံုး၇မယ္လို့ မဆိုလိုဘူး။ ဥပမာ Spring Security နဲ့ Spring Data လို module ေတြက standalone app ေတြမွာလည္း သံုးလို့၇တယ္။ တစ္ခု စိတ္ပ်က္စ၇ာေကာင္းတာက XML Configuration file ေတြ အမ်ားၾကီးလိုတာပဲ။ Programatically လည္း  configure လုပ္လို့ေတာ့ ၇ပါတယ္။ ဒါေပမယ့္ xml configuration က နည္းနည္းေတာ့ လက္ဝင္ေပမယ့္ follow လုပ္စ၇ာ  guide line ၇ွိ၇င္ လြယ္တယ္။

Java နဲ႕ Web Application တစ္ခုေ၇းဖို႕  Spring Framework ကို စေလ့လာမယ္ဆို၇င္ သိပ္မ်ားမ်ားစားစား ေလ့လာစ၇ာမလိုဘးူ။ Java Annotation ဆိုတာဘာလဲ.. Dependencies Injection အေၾကာင္းကို နည္းနည္း သိ၇င္  Controller ေတြ ဘယ္လို အလုပ္လုပ္လည္း သိ၇င္ စျပီးေ၇းလို့၇တယ္။ Client request ကို  server က response ျပန္လိုက္သည္အထိ ၾကားထဲမွာ ဘယ္လို အဆင့္အဆင့္ အလုပ္လုပ္သြားလည္း ဆိုတဲ့ သူ႕၇ဲ႕ life cycle သိဖို႕ေတာ့ လိုတာေပါ့။  က်န္တာ ေ၇း၇င္းနဲ့ ေလ့လာသြားလို့၇တယ္။ Tutorial site ေတြကေန demo ၾကည့္ျပီး ေ၇းလို႕ေတာ့ ၇ေပမယ့္  framework အေၾကာငး္ကို  detail သိခ်င္၇င္ေတာ့ စာအုပ္ တစ္အုပ္ေတာ့ ၇ွိထားသင့္တယ္။ စာအုပ္ဖတ္ခ်င္၇င္ေတာ့  Spring in Action 3rd edition ကို ညြန္းခ်င္တယ္။ ဒါေပမယ့္ စာအုပ္မဖတ္ခင္  online က tutorial ေတြကို အ၇င္ ဖတ္ျပီး framework ကို တီးမိေခါက္မိ ျဖစ္ေအာင္ လုပ္သင့္တယ္။ စာအုပ္ကို တန္းဖတ္၇င္ သူက demonstration နည္းျပီး  theory ေတြ မ်ားမ်ား ေျပာေတာ့ နားမလည္ပဲ ျဖစ္ႏိုင္တယ္။ online tutorials ေတြကလည္း demo လုပ္ျပ တာပဲ မ်ားျပီး ေသခ်ာ အေသစိတ္၇ွင္းျပတာ မ၇ွိဘူး။ ဒါေၾကာင့္ tutorial ဖတ္ျပီး သက္ဆိုင္တဲ့ topic ကို စာအုပ္မွာ ျပန္၇ွာဖတ္၇င္ နားလည္၇ လြယ္တယ္။ ဒါေပမယ့္လည္း စာခ်ည္း ဖတ္ေနလို့လည္း ၇မွာမဟုတ္ဘူး။ လက္ေတြလုပ္ၾကည့္မွ ေ၇းတတ္လာမွာ။ ဒါေၾကာင့္ အထက္က ေျပာခဲ့တာေတြ သိျပီဆို၇င္ project စေ၇းၾကည့္ျပီး ေလ့လာၾကည့္ေပါ့။ အခက္အခဲကေတာ့ ၇ွိမွာပါပဲ။ အခက္အခဲေတြ ကို ေျဖ၇ွင္း၇င္းနဲ့မွ တျဖည္းျဖည္း သင္ယူ၇တာပါပဲ programming ဆိုတာ။

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: