Ye Myint Soe

Ye Myint Soe

I mentor and train passionate young people to become a great Programmer!!

Photos from Ye Myint Soe's post 08/12/2023

again ...

Vue.js လေ့လာရင် အဓိက အားဖြင့် Vuejs Fundamentals ရယ်၊ Routing ရယ်၊ State Management or Store ရယ် ဆိုပြီး ၃ မျိုးလေ့လာရပါတယ်။

(အဲ့ဒီ Course ၃ မျိုးလုံးပေါင်း ထားသော ကျွန်တော့ရဲ့ Vue.js - Basic to Advance Course ကို Hornbill Information Technology မှာ Online (Video + Live) က နေ တက်ရောက်လို့ရပါတယ်)

👉Vue.js - Basic to Advance ရဲ့ အသေးစိတ် post
https://www.facebook.com/hornbillit/posts/253392784384262

ဒီနေရာမှာ ...

- Vuejs Fundamental ဆိုတာ Vue.js ရဲ့ အခြေခံ feature တွေပါ။

- Routing ဆိုတာ Page တစ်ခုကနေ တစ်ခု Browser Reload မဖြစ်ပဲ Navigate လုပ်လို့ရတဲ့ နည်းပညာပါ။ အဲ့ဒီအတွက် ရှင်းတယ် - Vue Router ကို လေ့လာရပါတယ်။

- State or data တွေကို Manage လုပ်ဖို့ အသုံးပြုတာက State Management ဖြစ်ပါတယ်။
ဒီအတွက် Vuejs က အရင်က ဆိုရင် Vuex ကိုသုံးပါတယ်။ အခုတော့ Vuex ကိုမသုံးတော့ဘဲ State Management Solution အတွက် Pinia ကို ပဲ Default အနေနဲ့ သုံးပါတော့တယ်။

03/12/2023

𝗛𝗢𝗙 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 - 𝗿𝗲𝗱𝘂𝗰𝗲()
reduce() method သည် reduce ဆိုတဲ့အတိုင်း array ထဲမှာရှိတဲ့ element တွေကို single value အဖြစ်သို့ reduce(လျှော့ချ) ဖို့အသုံးပြုပါတယ်။ ၄င်းသည် original array ကို ပြောင်းလဲခြင်းမလုပ်ပါ။

reduce() method သည် Array ထဲက Element အရေအတွက်ရှိသလောက် loop ပါတ်ပြီး parameter ၂ခုပါတဲ့ callback function တစ်ခုကို execute လုပ်ပေးပါတယ်။

reduce() method မှာ parameter ၂ ခုထည့်ပေးရပါတယ်။ ပထမတစ်ခုက callback function ဖြစ်ပြီး ဒုတိယ တစ်ခုက initialValue ဖြစ်ပါတယ်။

ဘယ်လိုအခြေအနေမှာ အသုံးပြုလို့ရသလဲ။

Array တစ်ခုမှာ 100, 200, 300 ဆိုပြီး number element တွေရှိမယ်။ အဲ့ဒီ element တွေရဲ့ total sum ကိုလိုချင်ရင် reduce သုံးလို့ရပါတယ်။

let numbers = [100, 200, 300]

let sum = numbers.reduce(function(accumulator, num){
return accumulator + num
}, 0)

// arrow function
let sum = numbers.reduce((accumulator, num) => accumulator + num, 0)

ဒီ method အလုပ်လုပ်ပုံကိုကြည့်ကြရအောင် (ပုံမှာလည်း table နဲ့ပြထားပါတယ်) -

- ပထမ parameter သည် callback function ရဲ့ return value များကို စုဆောင်းတဲ့ parameter ဖြစ်ပါတယ်။

- ဒုတိယ parameter သည် current array element ဖြစ်ပါတယ်။

- 1st loop မှာ initialValue သည် 0 မလို့ accumulator သည်လည်း 0 ဖြစ်မယ်၊ num သည် 100 (array element) ဖြစ်မယ်။ 0 + 100 ဆိုတော့ sum သည် 100 ဖြစ်မယ်။

- 2nd loop မှာ accumulator သည် အရင်ရလဒ်က 100 မလို့ 100 ဖြစ်မယ်၊ num သည် 200 (array element) ဖြစ်မယ်။ 100 + 200 ဆိုတော့ sum သည် 300 ဖြစ်မယ်။

- 3rd loop မှာ accumulator သည် အရင်ရလဒ်က 300 မလို့ 300 ဖြစ်မယ်၊ num သည် 300 (array element) ဖြစ်မယ်။ 300 + 300 ဆိုတော့ sum သည် 600 ဖြစ်မယ်။

reduce() method သည် total sum တစ်မျိုးလောက်ကိုပဲ ရှာလို့ရတဲ့ method မဟုတ်ပါဘူး။ တစ်ခြား maximum, minimum value တွေ ရှာချင်ရင်၊ data တွေကို transform လုပ်ချင်ရင် လည်း အသုံးပြုလို့ရပါသေးတယ်။

29/11/2023

𝗛𝗢𝗙 𝗶𝗻 𝗝𝗮𝘃𝗮𝘀𝗰𝗿𝗶𝗽𝘁 - 𝗳𝗶𝗻𝗱()
find() method သည် Array ထဲက ကိုယ်ရှာချင်တဲ့ Element တစ်ခုတည်းကို ရှာဖွေဖို့ အသုံးပြုလို့ရတဲ့ method ဖြစ်ပါတယ်။

find() method သည် array ကို loop ပါတ်ပြီး array ထဲက element တစ်ခုချင်းစီအတွက် ရှာဖွေတဲ့ element ကို ရှာမတွေ့မချင်း callback function တစ်ခု excute လုပ်ပေးပါတယ်။

ကိုယ်ရှာတဲ့ element ကိုရှာတွေ့ပြီး ရင် loop ကနေထွက်လိုက်ပါတယ်။ ၄င်းသည် Orignal Array ကိုလည်း ပြုပြင်ပြောင်းလဲပေးခြင်း မလုပ်ပါ။

ဘယ်လိုအခြေအနေမှာသုံးလို့ရသလဲ?။

array တစ်ခုထဲမှာ 1, 2, 3, 4, 5, 3 ဆိုပြီး (3 နှစ်ခါပါ) numbers တွေရှိမယ်။ အဲ့ဒီ array ထဲက 3 ကိုရှာချင်တယ်၊ ဒါပေမယ် ဘယ်နှစ်ခါပဲ ပါနေနေ တစ်ခုတည်းပဲ လိုချင်တယ်။ ဒီလို အခြေအနေမှာ find() ကိုသုံးလို့ရပါတယ်။

let numbers = [1, 2, 3, 4, 5, 3]
let num3 = numbers.find(function(num){
return num === 3
})

// arrow function
let num3 = numbers.find(num => num ===3)

console.log(num3) // 3

numbers.find() လို့ဆိုလိုက်တာနဲ့ find() က numbers array မှာ element ၆ခု ရှိရင် ၆ ခါတော့ loop မပါတ်ပါဘူး၊ ရှာတဲ့ element ထိပဲ loop လုပ်ပါတယ်။

find() method အတွင်းမှာ callback function တစ်ခုကို argument တစ်ခုအနေနဲ့ ထည့်ထားရပါတယ်။ ရှာနေတဲ့ element ကို မတွေ့မချင်း array ထဲက element တစ်ခုချင်းစီကို အဲ့ဒီ function က သူ့ parameter အနေနဲ့ လက်ခံပြီး execute လုပ်ပေးတာပါ။

- ပထမ loop မှာ num သည် 1 ဖြစ်မယ်။ 1 သည် 3 နဲ့မညီတော့ မ true ဘူး။ ဒါကြောင့် num3 ဆိုတဲ့ variable ထဲကို return မလုပ်ဘဲ skip လိုက်တယ်။

- ဒုတိယ loop မှာ num သည် 2 ဖြစ်မယ်။ 2 သည်လည်း 3 နဲ့မညီတော့ မ true ဘူး။ ဒါကြောင့် num3 ဆိုတဲ့ variable ထဲကို return မလုပ်ဘဲ skip လိုက်ပြန်တယ်။

- တတိယ loop မှာ number သည် 3 ဖြစ်မယ်။ 3 သည် 3 နဲ့ညီတော့ true တယ်။ ဒါကြောင့် num3 ဆိုတဲ့ variable ထဲသို့ 3 ကို return လိုက်တယ်။ ရှာတဲ့ element ကိုတွေ့ပြီဆိုတော့ loop break ဖြစ်တယ်။ ဒါဆိုပြီးပါပြီ။

Array ထဲမှာ 3 နှစ်ကြိမ် ပါနေသော်လည်း ပထမ 3 ကိုရှာတွေ့ပြီး loop ထဲကနေ ထွက်လိုက်ပါတယ်။

မှတ်ချက်။ ။ Array ထဲမှာ တူညီတဲ့ element တွေ အားလုံး ကိုရယူချင်ရင် filter() သုံးလို့ရပြီး တစ်ခုတည်းကိုပဲ လိုချင်ရင် find() ကိုသုံးရပါတယ်။

27/11/2023

𝗛𝗢𝗙 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 - 𝗳𝗶𝗹𝘁𝗲𝗿()
filter() method သည် Array ထဲက Element တစ်ခုချင်းစီအတွက် callback function တစ်ခုကို execute လုပ်ပေးပါတယ်။ filter() သည် original array ကို ပြောင်းလဲခြင်းမလုပ်ဘဲ ကျွန်တော်တို့ စစ်ထုတ်လိုက်တဲ့ condition အတိုင်းရလာတဲ့ element တွေကို နောက်ထပ် array အသစ်တစ်ခု အနေနဲ့ return လုပ်ပေးပါတယ်။

(မှတ်ချက် - array ထဲမှာရှိနေတဲ့ data တွေကို element လိုခေါ်ပါတယ်)

ဘယ်လိုအခြေအနေမှာ အသုံးပြုလို့ရသလဲ?။
ဆိုကြပါစို့ -

𝗲𝗴. 𝟭
array တစ်ခုထဲမှာ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ဆိုတဲ့ number တွေရှိတယ်။ အဲ့ဒီထဲက မှ even number (စုံဂဏန်း) ကိုပဲ စစ်ထုတ်လိုက်ချင်ရင် သုံးလို့ရပါတယ်။

let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
let evenNumbers = numbers.filter(function(num){
return num % 2 == 0
})

//arrow function
let evenNumbers = numbers.filter(num => num % 2 == 0)

console.log(evenNumbers) // [2, 4, 6, 8, 10]

numbers.filter() လို့ဆိုလိုက်တာနဲ့ filter() က numbers array မှာ element ၁၀ ခုရှိရင် ၁၀ ခါ loop ပါတ်ပါတယ်။
filter() method အတွင်းမှာ callback function တစ်ခုကို argument တစ်ခုအနေနဲ့ ထည့်ထားရပါတယ်။ array ထဲက element တစ်ခုချင်းစီကို အဲ့ဒီ function က သူ့ parameter အနေနဲ့ လက်ခံပြီး execute လုပ်ပေးတာပါ။

- ပထမ loop မှာ num သည် 1 ဖြစ်မယ်။ 1 ကို 2 နဲ့စားလို့ ရလာတဲ့ စားကြွင်းက 0 နဲ့မညီတော့ မ true ဘူး။ ဒါကြောင့် evenNumbers ဆိုတဲ့ array ထဲကို မ push ဘဲ skip လိုက်တယ်။

- ဒုတိယ loop မှာ number သည် 2 ဖြစ်မယ်။ 2 ကို 2 နဲ့စားလို့ ရလာတဲ့ စားကြွင်းက 0 နဲ့ညီတော့ true တယ်။ ဒါကြောင့် evenNumbers ဆိုတဲ့ array ထဲသို့ 2 ကို push လိုက်တယ်။

- ကျန်တဲ့ 3, 5, 7, 9 တွေက 2 နဲ့စား လို့မပြတ်လို့ ပထမ loop အတိုင်းပဲဖြစ်ပါမယ်။ ကျန်တဲ့ 4, 6, 8, 10 ကတော့ ဒုတိယ loop လိုပဲ စားကြွင်းက 0 နဲ့ ညီမယ်၊ အဲ့ဒီတော့ evenNumbers ထဲကို ရောက်သွားမယ်၊ ဒါပါပဲ။

𝗲𝗴. 𝟮
နောက်ထပ် ဉပမာလေးတစ်ခု ပုံထဲက အတိုင်းရှင်းလင်းဖော်ပြပေးပါမယ်။
array တစ်ခုထဲမှာ "Lisa", "Rose", "Jisoo", "Rose" ဆိုတဲ့ လူတွေရှိတယ်။ အဲ့ဒီထဲက မှ Rose ကိုပဲ စစ်ထုတ်လိုက်ချင်ရင် သုံးလို့ရပါတယ်။

let pinks = ["Lisa", "Rose", "Jisoo", "Rose"]
let roses = pinks.filter(function(pink){
return pink == 'Rose'
})

// arrow function
let roses = pinks.filter(pink => pink == 'Rose')

console.log(roses) // ["Rose", "Rose"]

- ပထမ loop မှာ pink သည် Lisa ဖြစ်မယ်။ Lisa သည် Rose နဲ့ မညီတော့ မ true ဘူး၊ ဒါကြောင့် roses ဆိုတဲ့ array ထဲကို မ push ဘဲ skip လိုက်တယ်။

- ဒုတိယ loop မှာ pink သည် Rose ဖြစ်မယ်။ Rose သည် Rose နဲ့ ညီတော့ true တယ်၊ ဒါကြောင့် roses ဆိုတဲ့ array ထဲကို push လိုက်တယ်။

- တတိယ loop မှာ pink သည် Jisoo ဖြစ်မယ်။ Jisoo သည် Rose နဲ့ မညီတော့ မ true ဘူး၊ ဒါကြောင့် roses ဆိုတဲ့ array ထဲကို မ push ဘဲ skip လိုက်တယ်။

- နောက်ဆုံး loop မှာ pink သည် Rose ထပ်ဖြစ်မယ်။ Rose သည် Rose နဲ့ ညီတော့ true တယ်၊ ဒါကြောင့် roses ဆိုတဲ့ array ထဲကို push လိုက်ပြန်တယ်။

နောက်ဆုံးအနေနဲ့ သတိထားစရာ တစ်ခုရှိပါတယ်။ အဲ့တာက ဘာလဲဆိုတော့ Array ထဲမှာ တူညီတဲ့ element တွေရှိနေရင် ရှိသလောက် array အသစ်တစ်ခု အနေနဲ့ return ပြန်ပေးပါတယ်။ ဒါဟာ နောက် လာမယ့် find() ဆိုတဲ့ method နဲ့မတူတာကြို သတိထားလို့ရအောင် ဖော်ပြပေးထားတာဖြစ်ပါတယ်။

26/11/2023

𝗛𝗢𝗙 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 - 𝗺𝗮𝗽()
map() method က original array ကို ပြောင်းလဲခြင်းမလုပ်ပါ။ Array ထဲက Element တစ်ခုချင်းစီအတွက် callback function တစ်ခုကို execute လုပ်ပေးပါတယ်။ အဲ့ဒီ callback function နဲ့ element တိုင်းကို execute (သို့) modify လုပ်တယ်။ လုပ်လို့ရလာတဲ့ new element တွေကို နောက်ထပ် array အသစ်တစ်ခု အဖြစ် return ပြန်ပေး ပါတယ်။ (array ထဲမှာရှိနေတဲ့ data တွေကို element လိုခေါ်ပါတယ်)

ဘယ်လိုအခြေအနေမှာ အသုံးပြုလို့ရသလဲ။

𝗲𝗴.𝟭
ဆိုကြပါစို့ - array တစ်ခုမှာ 2, 4, 6, 8, 10 ဆိုတဲ့ even number တွေရှိတယ်။ အဲ့ဒီ number တွေတစ်ခုခြင်းစီကို 2 နဲ့ မြှောက်လိုက်တဲ့ တန်ဖိုးတွေကို နောက်ထပ် array အသစ်တစ်ခု အနေနဲ့ လိုချင်ရင် သုံးနိုင်ပါတယ်။

let numbers = [2, 4, 6, 8, 10]

let newNumbers = numbers.map(function(number){
return number * 2
})

// using arrow function
let newNumbers = numbers.map(number => number * 2)

console.log(newNumbers) // [4, 8, 12, 16, 20]

let me explain one more time,
numbers.map() လို့ဆိုလိုက်တာနဲ့ map() က numbers array မှာ element ၅ ခုရှိရင် ၅ခါ loop ပါတ်ပါတယ်။ map() method အတွင်းမှာ callback function တစ်ခုကို argument တစ်ခုအနေနဲ့ ထည့်ထားရပါတယ်။ array ထဲက element တစ်ခုချင်းစီကို အဲ့ဒီ function က သူ့ parameter အနေနဲ့ လက်ခံပြီး execute လုပ်ပေးတာပါ။

ပထမ loop မှာ number သည် 2 ဖြစ်မယ်။ 2 ကို 2 နဲ့မြှောက်တော့ 4 ရမယ်။ အဲ့ဒီ 4 ကို newNumbers ဆိုတဲ့ array အသစ်ထဲကို return keyword သုံးပြီး push လုပ်တယ်။

ဒုတိယ loop မှာ number သည် 4 ဖြစ်မယ်။ 4 ကို 2 နဲ့မြှောက်တော့ 8 ရမယ်။ အဲ့ဒီ 8 ကို newNumbers ဆိုတဲ့ array အသစ်ထဲကို return keyword သုံးပြီး push လုပ်တယ်။

၃ကြိမ်မြောက်၊ ၄ ကြိမ်မြောက်၊ ၅ ကြိမ်မြောက်မှာလဲ ထိုနည်းတူပဲ ဖြစ်ပါတယ်။

𝗲𝗴.𝟮
example တစ်ခုနဲ့တောင် နားလည်လွယ်နေပါပြီ။ ဒါပေမယ့် numbers တွေအတွက်ပဲ သုံးတယ်ထင်မှာစိုးလို့ ပုံထဲက အတိုင်း နောက်ထပ် example လေးရေးပြပါမယ်။

ဆိုကြပါစို့ - array တစ်ခုမှာ "Apple", "Banana", "Mango" ဆိုတဲ့ အသီး တွေရှိတယ်။ အဲ့ဒီ အသီးတွေ တစ်ခုခြင်းစီကို "is sliced" ဆိုတဲ့ စာသားလေးနဲ့ ပေါင်းချင်တယ်။ array ထဲက အသီးတွေအကုန်လုံးကို modify လုပ်ချင်တာကြောင့် map ကိုသုံးလို့ရပါတယ်။

let fruits = ["Apple", "Banana", "Mango"]
let slicedFruits = fruits.map(function(fruit){
return fruit + ' is sliced'
})
// using arrow function
let slicedFruits = fruits.map(fruit => fruit + ' is sliced')

console.log(slicedFruits) // ['Apple is sliced', 'Banana is sliced', 'Mango is sliced']

- ပထမ loop မှာ fruit သည် "Apple" ဖြစ်မယ်။ "Apple" ကို "is sliced" နဲ့ပေါင်းတော့ "Apple is sliced" ရမယ်။ အဲ့ဒီ "Apple is sliced" ကို slicedFruits ဆိုတဲ့ array အသစ်ထဲကို return keyword သုံးပြီး push လုပ်တယ်။

-၂ ကြိမ်မြောက်၊ ၃ ကြိမ်မြောက်၊ ၄ ကြိမ်မြောက် မှာလဲ ထိုနည်းတူပဲ ဖြစ်ပါတယ်။

12/11/2023

𝘃𝗮𝗿, 𝗹𝗲𝘁 & 𝗰𝗼𝗻𝘀𝘁 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗶𝗻𝗴 !!!

To read clearly and test the code, read from medium
https://yemyintsoe.medium.com/var-let-const-in-javascripting-programming-fd0dbfc1ac47


Developer လုပ်မယ်ဆိုသူတွေဟာ Html, CSS လေ့လာပြီးရင် JavaScript ကိုလေ့လာကြပါတယ်။ JS က နယ်ပယ်စုံမှာ သုံးလို့ရပြီး ကြီးမားတဲ့ Programming Language တစ်ခု ဖြစ်ပါတယ်။

ကြီးမားတယ်ဆိုသော်လည်း ကိုယ်က အခုမှ လေ့လာခါစ ပဲရှိသေးတယ်ဆိုတော့ Junior Dev နဲ့ လုပ်ငန်းခွင် ဝင်လို့ရတယ်ဆိုတဲ့ Level လောက်ထိပဲ လေ့လာဖို့ လိုပါဦးမယ်။ ကျန်တာ ဖြည်းဖြည်း လေ့လာသွားလို့ရပါတယ်။

အခုပြောပြမယ့် အကြောင်းရာက JS လေ့လာရင် variable တွေကို ကြေညာတဲ့ အခါမှာ Beginner တွေ နားလည်ဖို့ ခက်ခဲနိုင်၊ နားလည်မှုလွဲမှား နိုင်တဲ့ var, let နဲ့ const အကြောင်းကို အခြေခံ detail လေး ပြောပေးသွားပါမယ်။


𝗶. 𝘃𝗮𝗿
# 𝗚𝗹𝗼𝗯𝗮𝗹 𝗮𝗻𝗱 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻 𝘀𝗰𝗼𝗽𝗲
var ကိုသုံးပြီး ကြေညာလိုက်တဲ့ variable တွေဟာ globally scoped သို့မဟုတ် function/locally scoped တွေဖြစ်ကြပါတယ်။

function ပြင်ပမှာ ကြေညာတဲ့ var variable တွေဟာ global scoped တွေဖြစ်ကြပြီး အဲ့ဒီ variable တွေကို မည်သည့်နေမှာ မဆို ခေါ်ယူအသုံးပြုလို့ရပါတယ်။

function အတွင်းထဲမှာဘဲ ကြေညာတဲ့ var variable တွေကတော့ function scoped တွေဖြစ်ကြပြီး အဲ့ဒီ variable တွေကို မိမိ ကြေညာခဲ့တဲ့ function အတွင်းမှာပဲ အသုံးပြု လို့ရမှာ ဖြစ်ပါတယ်။

eg. 1
// global scoped
var name = "Bella Snow"

function getInfo() {
// function or local scoped
var age = 20

console.log(name)
console.log(age)
}
getInfo()
// Bella Snow
// 20

console.log(name) // Bella Snow
console.log(age) // Uncaught ReferenceError: age is not defined

name ကို function ပြင်ပမှာ ကြေညာခဲ့ လို့ global scoped ဖြစ်သွားတယ်။ ဒါကြောင့် မည်သည့် နေရာက‌နေမဆို ခေါ်လို့ရနေတယ်။

age ကို getInfo ဆိုတဲ့ function အတွင်းမှာ ကြေညာခဲ့လို့ function or locally scoped ဖြစ်သွားတယ်။ ဒါကြောင့် function အတွင်းမှာပဲ ယူသုံးရင် အလုပ်လုပ်သော်လည်း function ပြင်ပကနေ ခေါ်သုံးရင် not defined error ဖြစ်သွားပါတယ်။

# 𝗿𝗲-𝗱𝗲𝗰𝗹𝗮𝗿𝗲𝗱 & 𝗿𝗲-𝗮𝘀𝘀𝗶𝗴𝗻𝗲𝗱
var နဲ့ ကြေညာ-declare လုပ်ထားတဲ့ variable တွေကို နောက်တစ်ခါ ပြန် declared လုပ်လို့ ရသလို သူ့ ကို assign လည်းထပ်ချလို့ရပါတယ်။

eg. 2
// this will work
var name = "Bella Snow";
var name = "Ella Snow";

// and this will work too
var name = "Bella Snow";
name = "Ella Snow";

# 𝘃𝗮𝗿'𝘀 𝗪𝗲𝗮𝗸𝗻𝗲𝘀𝘀 𝗼𝗿 𝘀𝘁𝗿𝗲𝗻𝗴𝘁𝗵𝘀
var ကိုအသုံးပြုရင် တစ်ချို့နေရာတွေမှာ ပြသနာ ရှိတတ်ပါတယ်။ ဒါဟာ သူ့ရဲ့ အားနည်းချက်လို့ ပြောလို့ရသလို အားသာချက်လို့ လည်းဆိုနိုင်ပါတယ်။

eg. 3
var greet = "မင်္ဂလာပါခင်ဗျ"
var gender = "female"

if (gender == "female") {
var greet = "မင်္ဂလာပါရှင့်"
console.log(greet) //"မင်္ဂလာပါရှင့်"
}
console.log(greet) //"မင်္ဂလာပါရှင့်"
condition အတွင်းရော အပြင်ပါ "မင်္ဂလာပါရှင့်" ပဲထွက်နေပါတယ်။

gender သည် female နဲ့ညီနေလို့ condition true တယ်၊ ဒါကြောင့် greet သည် နောက်တစ်ကြိမ် "မင်္ဂလာပါရှင့်" ဆိုတဲ့ တန်ဖိုးနဲ့ အတူ ကြေညာခြင်းခံ လိုက်ရတယ်။

ကိုယ်တကယ်ဖြစ်ချင်တာလဲ ဒီလိုပဲဆိုရင် ပြသနာမဟုတ်ပါဘူး။ တကယ်လို့များ greet ဆိုတဲ့ variable ကို ကြေညာခဲ့တာ မသိလိုက်ဘူး (သို့) if gender is equal to female ဆိုတဲ့ condition အတွင်းမှာ သက်သက် နုတ်ဆက်စကား၊ အပြင်မှာ သက်သက် နုတ်ဆက်စကား ဖြစ်စေချင်တဲ့ ပုံစံနဲ့ ရေးရင် ပြသနာ တက်ပါပြီ။

ဒါကြောင့် ဒီလိုပြသနာ ကိုဖြေရှင်းဖို့ JS ES6 မှာ let, const ဆိုပြီး variable ကြေညာနည်း ၂ မျိုး ထပ်တိုးလာပါတယ်။


𝗶𝗶. 𝗹𝗲𝘁
let သည် block scoped ဖြစ်ပါတယ်။ block scoped ကိုအရင်နားလည်အောင် ပြောပေးပါမယ်။ {} - curly braces နဲ့ ဘောင်ခတ်ထားတဲ့ အတွင်းပိုင်းကို block လို့ခေါ်ပါတယ်။

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

eg. 1
let greet = "မင်္ဂလာပါခင်ဗျ"
var gender = "female"

if (gender == "female") {
let greet = "မင်္ဂလာပါရှင့်"
console.log(greet) // မင်္ဂလာပါရှင့်
}
console.log(greet) // မင်္ဂလာပါခင်ဗျ

var နဲ့မတူတော့ပါဘူး။ အတွင်းက greet ရဲ့ output သည် "မင်္ဂလာပါရှင့်" ဖြစ်ပြီး အပြင်မှာတော့ "မင်္ဂလာပါခင်ဗျ" ဆိုပြီး သီးခြားစီ ဖြစ်သွားပါပြီ။

ဒီတစ်ခါမှာတော့ ယောကျ်ားလေးဆိုရင် "မင်္ဂလာပါခင်ဗျ"၊ မိန်းကလေးဆိုရင် "မင်္ဂလာပါရှင့်" လို့ နုတ်ဆက်ပါ ဆိုတဲ့ Logic ကိုလိုချင်ရင် let ကိုသုံးခြင်းအားဖြင့် အဆင်ပြေသွားနိုင်ပါတယ်။

# 𝗿𝗲-𝗮𝘀𝘀𝗶𝗴𝗻𝗲𝗱 & 𝗿𝗲-𝗱𝗲𝗰𝗹𝗮𝗿𝗲𝗱
var လိုပဲ let ကို တန်ဖိုးအသစ် assign ပြန်လုပ်လို့ရပါတယ်။ သို့သော် ပြန်တော့ ကြေညာ ခွင့်မရှိပါဘူး။

eg. 2
let greet = "မင်္ဂလာပါ";
greet = "မင်္ဂလာပါ ခင်ဗျ";
console.log(greet) // မင်္ဂလာပါ ခင်ဗျ
re-assigned လုပ်လို့ရတာမလို့ error မရှိပါဘူး။

eg. 3
let greet = "မင်္ဂလာပါ";
let greet = "မင်္ဂလာပါ ခင်ဗျ";
re-declared ပြန်လုပ်ခွင့်မရှိလို့ အောက်မှာပြထားသလို error တက်သွားပါမယ်။
Uncaught SyntaxError: Identifier 'greet' has already been declared
မတူညီတဲ့ scoped မှာတော့ တူညီတဲ့ variable name ကို ပြန်ကြေညာ လို့ရပါတယ်၊ eg. 1 မှာဖော်ပြခဲ့ပါတယ်။


𝗶𝗶𝗶. 𝗰𝗼𝗻𝘀𝘁
const က let နဲ့ တစ်ချို့ဟာတွေ တူပါတယ်။ const သည် let လိုပဲ block scoped ဖြစ်ပါတယ်။
ဒါကြောင့် const သည် block scoped မလို့ block ထဲမှာ ကြေညာထားရင် အဲ့ဒီ block အတွင်းမှာပဲ အသုံးပြုလို့ရမှာဖြစ်ပြီး အပြင်မှာ ကြေညာထားရင်တော့ အပြင်မှာရော block အတွင်းမှာပါ အသုံးပြုလို့ရမှာ ဖြစ်ပါတယ်။

# 𝗿𝗲-𝗮𝘀𝘀𝗶𝗴𝗻𝗲𝗱 & 𝗿𝗲-𝗱𝗲𝗰𝗹𝗮𝗿𝗲𝗱
eg. 1
const greet = "မင်္ဂလာပါ";
greet = "မင်္ဂလာပါ ခင်ဗျ";

// Uncaught TypeError: Assignment to constant variable.

eg. 2
const greet = "မင်္ဂလာပါ";
const greet = "မင်္ဂလာပါ ခင်ဗျ";

// Uncaught SyntaxError: Identifier 'greet' has already been declared

assign ပြန်ချတာ၊ declare ပြန်လုပ်တာ ၂ မျိုးလုံး လက်မခံပါဘူး။

eg. 3
const greet = "မင်္ဂလာပါ ခင်ဗျ";
const gender = "female"

if(gender == "female") {
const greet = "မင်္ဂလာပါ ရှင့်";
console.log(greet) // မင်္ဂလာပါ ရှင့်
}

console.log(greet) // မင်္ဂလာပါ ခင်ဗျ

scoped မတူရင် declare ပြန်လုပ်လို့ရပါတယ်။

နောက်ထပ်အရေးကြီးတဲ့ တစ်ခု ရှိပါသေးတယ်။ Object နဲ့ပက်သက်လာရင် Object တန်ဖိုးကို re-assigned or update ပြန်လုပ်လို့ မရဘူးဆိုပေမယ့် အဲ့ဒီ Object ရဲ့ Properties တွေကိုတော့ update လုပ်လို့ရပါတယ်။

eg. 4
const person = {
name: "John Doe",
age: 20
}
person = {
nationality: "Myanmar",
city: "Yangon"
}

// Uncaught TypeError: Assignment to constant variable.
re-assigned or update လက်မခံလို့ အခုလို error တက်ပါမယ်။

eg. 5
const person = {
name: "John Doe",
age: 20
}
person.name = "Ella Snow"
person.age = 25

console.log(person) // {name: 'Ella Snow', age: 25}

const variable ဆိုပေမယ့်၊ variable က Object ဖြစ်နေရရင် Object တန်ဖိုးကို တိုက်ရိုက် update or re-assigned လုပ်လို့ မရပေမယ့် သူ့ရဲ့ Object properties တွေကိုတော့ ဖော်ပြထားသလို update ပြန်လုပ်လို့ရပါတယ်။

နောက်ဆုံး အနေနဲ့ ပြောချင်တာ တစ်ခုကျန်သေးပါတယ်။ အဲ့ဒါဘာလဲ ဆိုတော့ Vue.js Project တွေမှာ variable တွေကြေညာရင် var, let တို့ကို မသုံးဘဲ အမြဲ const ကိုပဲ ဘာလို့ သုံးတာလဲ ပေါ့။

ဘာလို့လဲ ဆိုတော့ Vue ရဲ့ ref variable တွေကဆိုရင် ဘယ်တော့ မှ re-assigned or update ပြန်မလုပ်ပါဘူး။ သူ့ရဲ့ property ကိုပဲ update ပြန်လုပ်လို့ဖြစ်ပါတယ်။

ESLint ဆိုတဲ့ JS code တွေကို analysis လုပ်တဲ့ Tool ကဆိုရင်လည်း ဘယ်တော့မှ re-assigned လုပ်စရာမလိုတဲ့ variable တွေကို cognitive load နဲ့ maintainability improve ဖြစ်ဖို့ const နဲ့ပဲ ကြေညာတာ ပိုကောင်းတယ်လို့ ဆိုပါတယ်။

eg. 6 - VueJs 3 Composition API
const name = ref('John Doe')
name.value = "Emma"

ကဲ ဒီလောက်ဆိုရင် var, let, const အကြောင်းကို အခြေခံ လောက်တော့ နားလည်သွားမယ်လို့ မျှော်လင့်ပါတယ်။ အားလုံးကျန်းမာပြီး ပျော်ရွှင်သော နေ့ရက်လေးပိုင်ဆိုင် နိုင်ကြပါစေ။

Love you all. Written by Ye Myint Soe (Salai).

Photos from Ye Myint Soe's post 08/11/2023

2023 11 လပိုင်းမှာ နောက်တစ်ဖြတ် ပို့ပေး လိုက်ပါပြီ။

အခုမှ ဒီ Post တွေ့ လို့ စာအုပ်လေး လိုချင်သေးရင် အချိန်မရွေး၊ Form မှာ Gmail ဖြည့်ပေးပါ အချိန်ရရင် ရသလို ပို့ပေးပါမယ်။

02/11/2023

If you wanna be an expert Vue.js Dev, this will master you even you don't have zero knowledge of Vue.js.

This course is gonna be available in the NEXT month. December 2023 !!!

01/11/2023

"အခုလက်ရှိက Laravel 10၊ ဒါပေမယ့် ဒါလေးတွေ သိထားရင် Laravel 6, 7, 8, 9 နဲ့သင်ပေးထားတဲ့ Video Lessons တွေကို လိုက်လုပ်လို့ရပါသေးတယ်။ အားလုံး လိုလို က တူပါတယ်။"

ရှင်း၂လင်း၂ လေးနဲ့ ဖတ်ချင်ရင် -
https://yemyintsoe.medium.com/you-can-still-study-from-laravel-out-of-date-video-lessons-if-you-know-these-8ad58afddd14

In Person Class မဟုတ်ဘဲ YouTube နဲ့ တစ်ခြားတွေက Video Lecture တွေနဲ့ လေ့လာနေတဲ့ Beginner တွေ တစ်ချို့ကဆိုရင် သူတို့ Current Version ရဲ့ Course တစ်ခုကို လေ့လာနေတုန်းမှာပဲ Laravel Version ပြောင်းသွားတော့ တစ်ချို့နေရာ မှာ Update Version ကြောင့် Error လေးတွေဖြစ်သွားရင် ဆက်မလုပ်ဘဲ ရပ်နေတဲ့ သူတွေရှိပါတယ်။

Laravel သည် Between 6 Months and 1 Year မှာ တစ်ခါလောက် Version Upgrade လုပ်တတ်ပါတယ်။ ဒါပေမယ့် Version ပြောင်းတယ်ဆိုပြီး အကြီးအကျယ် စိတ်ညစ် နေစရာမလိုပါဘူး၊ လုံးလုံးကြီး ပြောင်းသွားတာမဟုတ်ဘဲ မဆိုစလောက်ပဲ ပြောင်းနေလို့ပါ။

Laravel Version 5^, 6, 7 ထိက တူတယ်လို့ ဆိုနိုင်ပါတယ်။ Laravel 8, 9, 10 လည်း လုံးဝ လိုလို တူကြ ပါတယ်။ 7 ကနေ 8 ကူးတဲ့ အချိန်မှာပဲ နည်းနည်း ပြောင်းလဲမူရှိပါတယဉ်။ ဒါပေမယ့် စိတ်မပူပါနဲ့ ဒါလည်း မဆိုစလောက်ပါပဲ Laravel 5^, 6, 7 နဲ့ သင်ပေးထားတဲ့ Video Lecture တွေကို အခုထိ ကြည့်လို့ရပါသေးတယ်။ ပြောပြပေးပါမယ် Changes လေးတွေကို။

အခုဆိုရင် Laravel ရဲ့ Version က 10 ဖြစ်သွားပါပြီ။ Laravel 7 နဲ့ Laravel 10 က Version ကွာနေပေမယ့် ရေးပုံက အများကြီးမကွာပါဘူး။ ဘာလေးတွေ ကွာခြားသလဲ ကြည့်ကြည့်ကြရအောင်။

𝟭. 𝗙𝗼𝗹𝗱𝗲𝗿 𝗗𝗶𝗿𝗲𝗰𝘁𝗼𝗿𝘆

Laravel 7 မှာ Model တွေသည် App\Http\ အောက်မှာ တိုက်ရိုက်ရှိနေပါတယ်။
eg.
- \App\Http\User.php
- \App\Http\Post.php

Laravel 8, 9, 10 မှာတော့ Model တွေသည် App\Http\Models ဆိုတဲ့ Folder ထဲမှာရှိနေကြပါတယ်။
eg.
- \App\Http\Models\User.php
- \App\Http\Models\Post.php

ဒီလို Folder Directory လေးပြောင်းသွားလို့ User Model တို့ Post Model တို့ကို Controller တွေမှာသုံးဖို့ use ရင် ဒီတိုင်းလေးပေါ့

Laravel 7 မှာ Model ကို use ပုံ
eg.
use App\Http\User;
use App\Http\Post;

Laravel 8, 9, 10 မှာ Model ကို use ပုံ
eg.
use App\Http\Models\User;
use App\Http\Models\Post;

𝟮. 𝗥𝗼𝘂𝘁𝗶𝗻𝗴

Laravel 7 မှာ Route တွေကို အောက်ပါအတိုင်း Routes/web.php မှာ Register လုပ်ကြပါတယ်။
eg.
Route::get('/users', 'UserController@index');
Route::get('/users/create', 'UserController@create');
Route::get('/posts', 'PostController@index');
Route::get('/posts/create', 'PostController@create');

အသုံးပြုလိုတဲ့ Controller ကို use တာတွေ လုပ်စရာမလိုခဲ့ပါဘူး။ ရေးပုံက ဒီလိုပါ -

Route::get('လမ်းကြောင်း', 'Logicရေးမယ့်Controller@အဲ့ဒီControllerထဲကMethod');

အဓိပ္ပါယ်က Browser URL မှာ '/users' လို့ရိုက်လိုက်ရင် UserController ထဲက index ဆိုတဲ့ Method လေး အလုပ်လုပ်မယ်ကို ဆိုလိုတာပါ။ တစ်ခြားဟာ တွေလည်း ထိုနည်းတူပါပဲ။

Laravel 8, 9, 10 မှာတော့ ဒီလိုပါ -
eg.
use App\Http\Controllers\UserController;
use App\Http\Controllers\PostController;

Route::get('/users', [UserController::class, 'index']);
Route::get('/users/create', [UserController::class, 'index']);
Route::get('/posts', [PostController::class, 'index']);
Route::get('/posts/create', [PostController::class, 'index']);

ကိုယ်အသုံးပြုလိုတဲ့ Controller တွေကို use ပေးရပါတယ်။ ရေးပုံက ဒီလိုပါ -

Route::get('လမ်းကြောင်း', [Logicရေးမယ့်Controller::class, 'အဲ့ဒီControllerထဲကMethod']);

𝟯. 𝗣𝗮𝗴𝗶𝗻𝗮𝘁𝗶𝗼𝗻

Laravel 7 မှာ Pagination လုပ်ဖို့ ဒီလို လုပ်ရင် ရပြီ။
eg.
{{ $posts->links() }}

Laravel 10 မှာတော့ Tailwind ကို Default Frontend Design အဖြစ်ပြောင်းထားတာမလို့ Laravel 7 ကအတိုင်းရေးရုံနဲ့ မရတော့ပါဘူး။ ဒီလိုရေးပေးရပါမယ် ...

eg.
{{ $posts->links('pagination::bootstrap-5') }}

(သို့မဟုတ်) Laravel 7 ကအတိုင်းပဲ ရေးချင်တယ်ဆိုရင် App\Providers\AppServiceProvider.php မှာဒီလို လေးသွား သတ်မှတ်ပေးရပါတယ်။

use Illuminate\Pagination\Paginator;

public function boot(): void
{
Paginator::useBootstrapFive();
Paginator::useBootstrapFour();
}

Laravel 7 နဲ့ Laravel 8, 9, 10 ရဲ့ ကွဲပြားချက်က ဒီလောက်ပါပဲ လို့တောင်ပြောလို့ရပါတယ်။ Laravel 8 ကနေစပြီး Starter Kits တွေ နဲ့ တစ်ခြား Service တွေ ထပ်ပါလာ တွေလည်း ရှိပေမယ့် အပေါ် ကဟာလောက်သိထားရင် Version အဟောင်းနဲ့ သင်ပေးထားတဲ့ Laravel Lecture တွေကြည့်လို့ရနေတုန်းပါပဲ။

မြန်မလာလို PHP/Laravel လေ့လာလို့ ရမယ့် ကျွန်တော့ YouTube Channel ပါ။
https://www.youtube.com//playlists

အားလုံးအဆင်ပြေကြပါစေ။

Photos from Ye Myint Soe's post 29/10/2023

Edit: အရင် MS Word File နဲ့ မှားပို့ လိုက်မိလို့ အခု PDF File နဲ့ ပြန်ပို့ပေးလိုက်ပါပြီ။ (PDF ပြန် Download ပြီး ဖတ်လို့ရပါပြီ၊ word နဲ့ဆိုတော့ Font တွေ၊ text တွေ လွဲ နေတာ တွေ ဖြစ်လို့ပါ)

2023 သီတင်းကျွတ်မတိုင်မီ တစ်ဖြတ် ပို့ပေး လိုက်ပါပြီ။

အခုမှ ဒီ Post တွေ့ လို့ စာအုပ်ပေး လိုချင်သေးရင် အချိန်မရွေး၊ Form မှာ Gmail ဖြည့်ပေးပါ အချိန်ရရင် ရသလို ပို့ပေးပါမယ်။

Photos from Ye Myint Soe's post 07/10/2023

Vue.js လေ့လာရင် အဓိက အားဖြင့် Vuejs Fundamentals ရယ်၊ Routing ရယ်၊ State Management or Store ရယ် ဆိုပြီး ၃ မျိုးလေ့လာရပါတယ်။

ဒီနေရာမှာ ...
- Vuejs Fundamental ဆိုတာ Vue.js ရဲ့ Syntax တွေ Feature တွေပါ။

- Routing ဆိုတာ Page တစ်ခုကနေ တစ်ခု Browser Reload မဖြစ်ပဲ Navigate လုပ်လို့ရတဲ့ နည်းပညာပါ။ အဲ့ဒီအတွက် ရှင်းတယ် - Vue Router ကို လေ့လာရပါတယ်။

- State or data တွေကို Manage လုပ်ဖို့ အသုံးပြုတာက State Management ဖြစ်ပါတယ်။

ဒီအတွက် Vuejs က အရင်က ဆိုရင် Vuex ကိုသုံးပါတယ်။ အခုတော့ Vuex ကိုမသုံးတော့ဘဲ State Management Solution အတွက် Pinia ကို ပဲ Default အနေနဲ့ သုံးပါတော့တယ်။

Vuex ကို သုံးလို့ မရတော့တာမဟုတ်ပါဘူး။ Pinia ကိုက Vuex ထက်အရမ်းလွယ်ကူပါတယ်။ Step တွေ လုံးဝ လျှော့ချပေးထားပါတယ်။ သီးခြား Library ကိုသုံးပြီး ရေးနေသလို မခံစားရပါဘူး။ Vuejs Composition API ရရင် Pinia ရပါပြီ။ Vuejs ကလည်း သူနဲ့ ပဲ တွဲသုံးဖို့ Recommend ပေးထားတာလည်း ကြာနေပါပြီ။

ဒါကြောင့် Vuejs လေ့လာတဲ့ သူတွေကို ပြောချင်တာ က Vuex မလေ့လာသင့်တော့ ပါဘူး။ Pinia ကိုပဲ လေ့လာသင့်တာပါ။

ကဲ Vue ကိုအတော်အသင့်ရနေပြီ ဆိုသူတွေ Pinia ကို လေ့လာချင်ရင် ကျွန်တော် Pinia ထွက်ထားကတည်းက ရေးထားတဲ့ Pinia Mini စာအုပ်လေးကို ပေးပါမယ်။

ဒီစာအုပ်‌လေးမှာ Pinia ကို Example Project လေးတွေနဲ့ လိုရင်း တိုရှင်း လေး ဖော််ပြပေးထားပါတယ်။

အောက်က Google Form မှာ Gmail ဖြည့်ထားလိုက်ပါ။ 16 Oct 2023 နောက်ပိုင်းကနေ အားရင် အားသလို ပို့ပေးပါမယ်။

`လူပေါင်း ၆၀၀ ကျော်ကိုတော့ လှူထားတာ ကြာပါပြီ`

https://forms.gle/7Rsc6psq55oyx2u5A

08/09/2023

𝗦𝗼𝗳𝘁𝘄𝗮𝗿𝗲 𝗘𝗻𝗴𝗶𝗻𝗲𝗲𝗿, 𝗣𝗿𝗼𝗴𝗿𝗮𝗺𝗺𝗲𝗿, 𝗗𝗲𝘃𝗲𝗹𝗼𝗽𝗲𝗿 တွေ ရှိရမည့် 𝗦𝗼𝗳𝘁 𝗦𝗸𝗶𝗹𝗹𝘀

Software Engineer၊ Programmer၊ Developer တစ်ယောက်က Code ချည်းပဲ ရေးတတ်ရတာ မဟုတ်ပါဘူး။ Coding ကြမ်းတယ်ဆိုတာ technical skill ပါ။

ဒီ့အပြင် အများနဲ့ မတူ နေရာရဖို့၊ Team နဲ့ အတူ လုပ်တတ်ဖို့၊ Client တွေ၊ အထက်လူကြီးတွေနဲ့ အပြောဆို တတ်ဖို့၊ Software Development Field ရဲ့ Dynamic Nature ကို adapt လုပ်နိုင်ဖို့ က Soft Skills တွေလည်း လိုအပ်ပါတယ်။ ကဲကြည့်ကြည့် ရအောင် ဘယ်လို Soft Skill တွေရှိသင့်သလဲပေါ့။

𝟭.𝗣𝗿𝗼𝗯𝗹𝗲𝗺-𝗦𝗼𝗹𝘃𝗶𝗻𝗴
Software Development လောက မှာဆိုရင် ရှုပ်ထွေးလှတဲ့ ပြသနာတွေကို နေ့စဉ်လိုလို ကြုံရလေ့ရှိပါတယ်။ ဒါကြောင့် ဒီလို ပြသနာတွေကို creative solution တွေနဲ့ ဖြေရှင်းနိုင်ဖို့၊ Analyze လုပ်နိုင်ဖို့ Problem-solving skill လိုအပ်ပါတယ်။

𝟮.𝗖𝗿𝗶𝘁𝗶𝗰𝗮𝗹 𝗧𝗵𝗶𝗻𝗸𝗶𝗻𝗴
Software Engineer တွေ Program ရေးတယ်ဆိုတာ Code ချည်းပဲ ရေးတတ်ရုံနဲ့ ဆို လုံးဝ အဆင်မပြေပါဘူး။ CRUD, CMS သာသာ လောက်ပဲရှိတဲ့ Program ရေးရင် အဆင်ပြေတယ်ဆိုပေမယ့် Complex ဖြစ်တဲ့ Program တွေရေးလာရရင် မြေပြင်မှာ ဖြစ်နေတဲ့ တကယ့် Business Requirement နဲ့ကိုက်ညီတဲ့ functionality တွေကို Code နဲ့ရေးနိုင်ရပါတယ်။

ဒီနေရာမှာ Critical thinking တို့ Problem Solving တို့ကလိုလာပါတယ်။ Critical thinking ဆိုတာဟာ Information တွေ၊ Idea (အတွေး)တွေ၊ Situations(အခြေအနေ)တွေကို Logically နဲ့ objectively evaluate(အကဲဖြတ်) နိုင်တဲ့ thinking ကိုဆိုလိုတာပါ။ ဒါတွေကဆိုရင် မှန်ကန်တဲ့ Decision ကိုဘယ်လိုချမှတ်မလဲ၊ debugging ဘယ်လိုလုပ်မလဲ စတာတွေကို ကောင်းကောင်း ချမှတ်တတ်စေပါတယ်။

𝟯.𝗖𝗼𝗺𝗺𝘂𝗻𝗶𝗰𝗮𝘁𝗶𝗼𝗻
Organization တစ်ခုမှာ Software Program တစ်ခု Develop လုပ်တယ်ဆိုတာ တစ်ယောက်တည်းနဲ့ မပြီးသွားပါဘူး။ SDLC ဆိုတဲ့ Software Development Life Circle ဆိုတာ ရှိပါတယ်။

ဆိုလိုချင်တာ Program ကို Software Engineer တွေက Code နဲ့ ရေးပါတယ်ဆိုတဲ့ အဆင့်မရောက်ခင်မှာ ဉပမာ Requirement Analysis, System Design ဒီလိုအဆင့် တွေကို အလွှာပေါင်းစုံ ကနေ step by step လာရတာပါ။

ဒါကြောင့် အလွှာပေါင်းစုံက လူတွေ၊ ဉပမာ team member အချင်းချင်း၊ stakeholder တွေ၊ end-user တွေနဲ့ communicate လုပ်ရတာ၊ project requirement တွေ နားလည်ဖို့၊ ကိုယ့် idea တွေ၊ solution တွေကို non-technical stakeholders တွေ non-technical end-user တွေနဲ့ Effective communicate လုပ်နိုင်ဖို့ အရမ်းအရမ်း အရေးကြီးပါတယ်။

𝟰.𝗧𝗲𝗮𝗺𝘄𝗼𝗿𝗸 𝗮𝗻𝗱 𝗖𝗼𝗹𝗹𝗮𝗯𝗼𝗿𝗮𝘁𝗶𝗼𝗻
Software Development ကဆိုရင် အပေါ်မှာ ပြောထားသလို team နဲ့လုပ်ရတယ်။ ဒါကြောင့် Team member တွေနဲ့ ကောင်းကောင်း ဆက်ဆံတတ်ရမယ်၊ Knowledge တွေ Share ရတတ်ရမယ်၊ Conflict တွေ ဖြေရှင်းတတ်ရတယ်။ အခုပြောတဲ့ အချက်တွေ မှာတော် နေရင် ဒါဟာ Teamwork and Collaboration skill ကောင်းတာဖြစ်ပါတယ်။

𝟱.𝗧𝗶𝗺𝗲 𝗠𝗮𝗻𝗮𝗴𝗲𝗺𝗲𝗻𝘁
ဒါကတော့ Software Engineer တွေပဲမဟုတ်ဘူး ဘယ်လုပ်ငန်းအတွက်မဆို လိုကိုလိုအပ်တဲ့ Skill တစ်ခုဖြစ်ပါတယ်။ ဒီလိုပဲ Software Projects တွေမှာဆို deadline ဆိုတာရှိပါတယ်။ Time management skill ကောင်းမှ အဲ့ Deadline ကိုမှီနိုင်မှာဖြစ်ပါတယ်။ အဲ့ဒီ Software Engineer အတွက် Time Management ဆိုတာ Project ရဲ့ priorities တွေကိုဘယ်လို setting ချမလဲ၊ task duration တွေကို ဘယ်လို တွက်ချက်မလဲ၊ ဒါတွေကို ဆိုလိုတာပါ။

𝟲.𝗔𝗱𝗮𝗽𝘁𝗮𝗯𝗶𝗹𝗶𝘁𝘆
ဒါကတော့ လိုက်လျောညီထွေစွာ နေထိုင်တဲ့ skill ပေါ့။ ဒီ့အတွက် အမျိုးစား ၂ ခုကိုပြောပြချင်ပါတယ်။

နည်းပညာတွေကဆိုရင် အမြဲတိုးတက်လာတာပဲရှိပါတယ်။ Software Engineer တွေကလည်း new technologies တွေ၊ tools တွေ၊ methodologies တွေကို အမြဲလေ့လာ ဆန်းသစ်ရမယ်၊ ဒါမှလည်း လိုက်မှီနိုင်မှာကိုး။

နောက်တစ်ခုက Software Engineering အလုပ်တစ်ခုကို စလုပ်တယ်ဆိုရင် Team နဲ့ လုပ်ရတယ်၊ ကိုယ်က Junior ဆိုရင် Senior တွေကို မှီဝဲပြီး အလုပ်လုပ်ရတယ်။ တစ်ချို့ Junior တွေရှိတယ်၊ ကိုယ့်ကို သင်ပေးတဲ့ Senior ကဘယ်လို အမျိုးစားလဲ ဆိုတာမသိဘူး။ သေးအမွှားက အစမေးတာ။ ဒီလိုရှိတယ် Senior တွေက အစပိုင်းတော့ သင်ပေးရတယ် ဒါပေမယ့် မလိုလားအပ်တဲ့ အချက်တွေကို မပြောတာတွေရှိတယ်၊ ဒါဟာမပြောချင်လို့မဟုတ်ဘူး မိမိဘာသာ လုပ်စေချင်လို့လဲ ဖြစ်ပါတယ်။ ဒီလို အပြုမူကို ကောင်းကောင်းနားလည် ရပါမယ်။

𝟳. 𝗔𝘁𝘁𝗲𝗻𝘁𝗶𝗼𝗻 𝘁𝗼 𝗗𝗲𝘁𝗮𝗶𝗹
ဒါကလည်း အရေးကြီးပါတယ်။ Error သေးသေးလေးပါ ဆိုတဲ့ တစ်ခုက ပြသနာအကြီးတွေဖြစ်သွားတတ်တယ်။ ဒါကြောင့် clean code တွေ၊ bug-free code တွေရေးနိုင်ဖို့လည်း အသေးစိတ်ကအစ သတိထားကိုယ်တွယ်တတ်ဖို့ အရမ်းလိုအပ်ပါတယ်။

𝟴. 𝗖𝗿𝗲𝗮𝘁𝗶𝘃𝗶𝘁𝘆
Creativity ဆိုတဲ့ အများနှင့်မတူ တီထွင်ဖန်တီးမူတွေ လုပ်နိုင်ရင်တော့ သူများထက် unique ဖြစ်ပြီး ပိုပိုသော challenges တွေနဲ့ တီထွင်ဖန်တီးနိုင်ပါမယ်။

𝟵. 𝗘𝗺𝗽𝗮𝘁𝗵𝘆
မြန်မာလိုတိုက်ရိုက်ပြန်ရင် စာနာမူပေါ့။ ဆိုလိုရင်းက user-friendly software ကိုရေးသားဖန်တီးဖို့ end-users တွေ၊ stakeholders တွေရဲ့ လိုအပ်ချက်တွေ၊ အမျိုးမျိုးသောရှုထောင့် တွေကို နားလည်နိုင်တဲ့ skill တွေလိုအပ်တယ်ဆိုတာကို ပြောချင်တာပါ။

𝟭𝟬. 𝗥𝗲𝘀𝗶𝗹𝗶𝗲𝗻𝗰𝗲
ဒါကတော့ အရေးကြီးဆုံးလို့တောင် ပြောလို့ရတယ်။ အလုပ်ခေါ်စာမှာလည်း တွေ့နေကျဖြစ်မှာပါ၊ can work under pressure ဆိုပြီးတော့။ Software Development ဆိုတာ တစ်ခါတလေ အရမ်းစိတ်ပျက်ဖို့ ကောင်းတယ်လို့ ပြောလို့ရတယ်။

ဘာလို့လဲဆိုတော့ တစ်ရက်တစ်ရက် error တွေ၊ bug တွေ၊ maintenance တွေ၊ system upgrade တွေနဲ့တိုင်ပါတ်ရပါတယ်။ ဒါတွေကို handle လုပ်နိုင်ရမယ်၊ ထွက်ပြေးလို့မရပါဘူး။ ဒါကြောင့် Resilience ဆိုတဲ့ စိတ်ဖီးစိမူ ဒဏ်ကိုလည်းခံနိုင်ရပါတယ်။

𝟭𝟭.𝗟𝗶𝘀𝘁𝗲𝗻𝗶𝗻𝗴 𝗦𝗸𝗶𝗹𝗹𝘀
Code ရေးရတာ အဆင်ပြေဖို့ဆိုတာ နားထောင်နိုင်တဲ့ စွမ်းရည်ကအရမ်းအရေးကြီးပါတယ်။ Team member အချင်းချင်း ဆွေးနွေးတာပဲ ဖြစ်ဖြစ်၊ Client တွေနဲ့ ဆွေးနွေးတာပဲ ဖြစ်ဖြစ် Actively နားထောင်မှ ကိုယ်ရေးမယ့် Feature requirement တွေကို ကောင်းကောင်းနားလည်မယ်ပေါ့။

𝟭𝟮. 𝗘𝘁𝗵𝗶𝗰𝗮𝗹 𝗔𝘄𝗮𝗿𝗲𝗻𝗲𝘀𝘀
Ethic မရှိဘူး၊ Ethic ရှိတယ်ဆိုတဲ့ စကားလည်း အမြဲကြားရမှာပါ။ နည်းပညာလုပ်တဲ့ သူတွေက ကိုယ့်ကြောင့် တစ်ပါးသူ၊ အဖွဲ့ အစည်း ထိခိုက်မူမရှိရအောင် Ethic ရှိကို ရှိရပါတယ်။ ဘာလို့ဆို‌တော့ လူတွေရဲ့ Personal Info တွေ၊ Organization တစ်ခုရဲ့ info တွေ စသည် စသည် data privacy နဲ့ security တွေနဲ့ ထိတွေ့ Handle လုပ်နေရလို့ကို ပိုပြီး Ethic ရှိရပါမယ်။

𝟭𝟯. 𝗦𝗲𝗹𝗳-𝗠𝗼𝘁𝗶𝘃𝗮𝘁𝗶𝗼𝗻
Continuously learning Career မလို့ သူများထက် self-motivation ကလည်း လိုပါတယ်။ ဒါမှ ဒီလောကထဲမှာ အမြဲရှိနေနိုင်မယ်၊ productive ဖြစ်မယ်၊ လိုချင်တဲ့ ပန်းတိုင်ရောက်နိုင်မယ်။

𝟭𝟰.𝗟𝗲𝗮𝗱𝗲𝗿𝘀𝗵𝗶𝗽
Team Lead တွေမှာပဲ Leadership skill လိုတာမဟုတ်ပါဘူး၊ ကိုယ့်ထက် ငယ်တဲ့ Junior တွေကို Mentor လုပ်နိုင်ရမယ်၊ project တွေကို Portion အလိုက် guide လုပ်ပေးနိုင်ရမယ် ဒါကြောင့် Leadership skill လည်း လိုအပ်ပါတယ်။

အခုပြောပြထားတဲ့ soft skills တွေက အရမ်းအရေးကြီးပါတယ်။ တစ်ခု သိထားရမှာက အပေါ်မှာ ပြောထားတဲ့ skill set တွေက ကိုယ်လုပ်ကိုင်နေတဲ့ company၊ role ပေါ်မှာ မူတည်ပြီး အနည်းနဲ့ အများ လိုအပ်တဲ့ ရာခိုင်နှုန်းချင်းမတူပါဘူး။ ဒါပေမယ် ဒီ Skill တွေသာကိုယ့်မှာ ရှိနေရင် အများထက် ပိုထူးခြားတဲ့ Software Engineer၊ Programmer၊ Developer ဖြစ်လာပါမယ်။

03/09/2023

𝟮𝟬 𝗣𝗛𝗣 𝗔𝗿𝗿𝗮𝘆 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗬𝗼𝘂 𝗠𝘂𝘀𝘁 𝗞𝗻𝗼𝘄

ရှုပ်ထွေးလှတဲ့ Data တွေ Manipulate လုပ်ရတဲ့ Project တွေကို Core PHP နဲ့ ပဲရေးရေး၊ Laravel Framework နဲ့ပဲ ရေးရေး အောက်မှာ ဖော်ပြထားတဲ့ Built in Function တွေ ကိုသိထားမှ ---
- မလိုအပ်တဲ့ Code Redundancy တွေလျှော့ချနိုင်မယ်
- Productivity ကောင်းလာမယ်
- Code Reusability လုပ်လို့ ရတော့ Development Time လျှော့ချလာနိုင်မယ်
- Code Quality တွေမြင့်လာမှာဖြစ်ပါတယ်။

ရှင်းရှင်းလင်းလင်း code တွေ copy/paste ပြီးစမ်းချင် ဖတ်ချင်ရင်
https://yemyintsoe.medium.com/20-php-array-functions-you-must-know-2126ab68d2f9

𝟭. 𝗰𝗼𝘂𝗻𝘁($𝗮𝗿𝗿𝗮𝘆)
Array ထဲမှ Element အရေတွက်ကို ဖော်ပြပေးပါတယ်။

$fruits = ['apple', 'banana', 'cherry'];
$count = count($fruits);

// $count will be 3


𝟮. 𝗲𝗺𝗽𝘁𝘆($𝗮𝗿𝗿𝗮𝘆)
Array သည် empty ဟုတ်၊ မဟုတ် စစ်ပေးပါတယ်။

$emptyArray = [ ];
if (empty($emptyArray)) {
echo 'The array is empty';
}

// Array က တကယ် empty ဖြစ်နေတော့ အဖြေက The array is empty ဆိုတဲ့ output မြင်ရပါမယ်။


𝟯. 𝗮𝗿𝗿𝗮𝘆_𝗽𝘂𝘀𝗵($𝗮𝗿𝗿𝗮𝘆, $𝗻𝗲𝘄𝗘𝗹𝗲𝗺𝗲𝗻𝘁)
Array ထဲမှာ Element အသစ်တစ်ခုကို Array နောက်ဆုံးက နေထည့်ပေးပါတယ်။ Argument ၂ ခုပါပါမယ်။
ပထမ Argument - Array
ဒုတိယ Argument - Array ထဲကို ထည့်ချင်တဲ့ New Element

$fruits = ['apple', 'banana'];
array_push($fruits, 'cherry');

// $fruits is now ['apple', 'banana', 'cherry']


𝟰. 𝗮𝗿𝗿𝗮𝘆_𝗽𝗼𝗽($𝗮𝗿𝗿𝗮𝘆)
Array တစ်ခုမှ နောက်ဆုံး Element ကို ဖျက်ပစ်ပါတယ်။ ဖျက်လိုက်တဲ့ Element ကိုလိုချင်ရင် Variable တစ်ခုထဲကို assign ချပြီးပြန်ယူလို့ရပါတယ်။

$fruits = ['apple', 'banana', 'cherry'];
$lastFruit = array_pop($fruits);

// $fruits will be ['apple', 'banana']
// $lastFruit will be 'cherry'


𝟱. 𝗮𝗿𝗿𝗮𝘆_𝘀𝗵𝗶𝗳𝘁($𝗮𝗿𝗿𝗮𝘆)
Array တစ်ခုမှ ပထမဆုံး Element ကို ဖျက်ပစ်ပါတယ်။ ဖျက်လိုက်တဲ့ Element ကိုလိုချင်ရင် Variable တစ်ခုထဲကို assign ချပြီးပြန်ယူလို့ရပါတယ်။

$fruits = ['apple', 'banana', 'cherry'];
$firstFruit = array_shift($fruits);

$fruits will be ['banana', 'cherry']
// $firstFruit will be 'apple'


𝟲. 𝗮𝗿𝗿𝗮𝘆_𝘂𝗻𝘀𝗵𝗶𝗳𝘁($𝗮𝗿𝗿𝗮𝘆, $𝗻𝗲𝘄𝗘𝗹𝗲𝗺𝗲𝗻𝘁)
Array ထဲမှာ Element အသစ်တစ်ခုကို Array ရှေ့ဆုံးကနေ ထည့်ပေးပါတယ်။ Argument ၂ ခုပါပါမယ်။
ပထမ Argument - Array
ဒုတိယ Argument - Array ထဲကို ထည့်ချင်တဲ့ New Element

$fruits = ['banana', 'cherry'];
array_unshift($fruits, 'apple');

// $fruits is now ['apple', 'banana', 'cherry']


𝟳. 𝗶𝗻_𝗮𝗿𝗿𝗮𝘆($𝘃𝗮𝗿, $𝗮𝗿𝗿𝗮𝘆)
Element တစ်ခုသည် Array တစ်ခုမှာ ရှိမရှိ စစ်ဆေးပေးပါတယ်။
ပထမ Argument - Array ထဲမှာ ရှိမရှိ စစ်ဆေးချင်တဲ့ Element
ဒုတိယ Argument - Array

$fruits = ['apple', 'banana', 'cherry'];

if (in_array('banana', $fruits)) {
echo 'Found banana in the array';
}

// Array ထဲမှာ banana ဆိုတဲ့ Element ကတကယ် ရှိနေတော့ Found banana in the array ဆိုတဲ့ Output ရရှိပါမယ်။


𝟴. 𝗮𝗿𝗿𝗮𝘆_𝗸𝗲𝘆_𝗲𝘅𝗶𝘀𝘁𝘀($𝗸𝗲𝘆, $𝗮𝘀𝘀𝗼𝗰𝗶𝗮𝘁𝗶𝘃𝗲𝗔𝗿𝗿𝗮𝘆)
Element Key တစ်ခုသည် Associative Array တစ်ခုမှာ ရှိမရှိ စစ်ဆေးပေးပါတယ်။
ပထမ Argument - Array ထဲမှာ ရှိမရှိ စစ်ဆေးချင်တဲ့ Element Key
ဒုတိယ Argument - Associative Array

$person = ['name' => 'John', 'age' => 30];

if (array_key_exists('age', $person)) {
echo 'Age key exists in the array';
}

// Array ထဲမှာ age ဆိုတဲ့ Key ကတကယ် ရှိနေတော့ Age key exists in the array ဆိုတဲ့ Output ရရှိပါမယ်။


𝟵. 𝗮𝗿𝗿𝗮𝘆_𝗺𝗲𝗿𝗴𝗲($𝗮𝗿𝗿𝗮𝘆𝟭, $𝗮𝗿𝗿𝗮𝘆𝟮)
Array ၂ ခု (သို့) ၂ ခုထက်များသော Array တွေပေါင်းပေးပါတယ်။

$fruits1 = ['apple', 'banana'];
$fruits2 = ['cherry', 'date'];

$mergedFruits = array_merge($fruits1, $fruits2);

// $mergedFruits is ['apple', 'banana', 'cherry', 'date']


𝟭𝟬. 𝗮𝗿𝗿𝗮𝘆_𝘀𝗽𝗹𝗶𝗰𝗲($𝗮𝗿𝗿𝗮𝘆, $𝗮𝗿𝗴𝟭, $𝗮𝗿𝗴𝟮)
Array ထဲမှ Element အချို့ကို ဖြတ်ထုတ်ပေးပါတယ်။ Argument ၃ ခုပါပါမယ်။
ပထမ Argument - Array
ဒုတိယ Argument - Array Index (ကိုယ် ဖြတ်ထုတ်ချင်တဲ့ Position)
တတိယ Argument - ဘယ်နှစ်ခု ဖြတ်ထုတ်ချင်တာလဲ ဆိုတဲ့ အရေအတွက်

$fruits = ['apple', 'banana', 'cherry', 'date'];
$slicedFruits = array_slice($fruits, 1, 2);

// $slicedFruits is ['banana', 'cherry']


𝟭𝟭. 𝗮𝗿𝗿𝗮𝘆_𝗿𝗲𝘃𝗲𝗿𝘀𝗲($𝗮𝗿𝗿𝗮𝘆)
Array ထဲမှာရှိတဲ့ Element တွေကို ပြောင်းပြန် ပြန်စီပေးပါတယ်။

$fruits = ['apple', 'banana', 'cherry'];
$reversedFruits = array_reverse($fruits);

// $reversedFruits is ['cherry', 'banana', 'apple']


𝟭𝟮. 𝗮𝗿𝗿𝗮𝘆_𝘀𝗲𝗮𝗿𝗰𝗵($𝗲𝗹𝗲𝗺𝗲𝗻𝘁, $𝗮𝗿𝗿𝗮𝘆)
Array ထဲမှ Element ကိုရှာပေးပါတယ်၊ တွေ့ရင် သူ့ရဲ့ Array Index ကို ပြန်ပေးပါတယ်။ Argument ၂ ခု ပါရပါမယ်။
ပထမ Argument - ရှာချင်တဲ့ Element
ဒုတိယ Argument - Array

$fruits = ['apple', 'banana', 'cherry'];
$key = array_search('banana', $fruits);

// $key will be 1


𝟭𝟯. 𝗮𝗿𝗿𝗮𝘆_𝘂𝗻𝗶𝗾𝘂𝗲($𝗮𝗿𝗿𝗮𝘆)
တူနေတဲ့ ထပ်နေတဲ့ Element ရှိရင် တစ်ခုကိုပဲ ချန်ထားပြီး တစ်ခြားဟာတွေကို ဖျက်ပစ်ပါတယ်။

$fruits = ['apple', 'banana', 'cherry', 'apple'];

$uniqueFruits = array_unique($fruits);

// $uniqueFruits is ['apple', 'banana', 'cherry']


𝟭𝟰. 𝗮𝗿𝗿𝗮𝘆_𝗳𝗶𝗹𝘁𝗲𝗿($𝗮𝗿𝗿𝗮𝘆, $𝗰𝗮𝗹𝗹𝗕𝗮𝗰𝗸𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻)
Argument ၂ ခုပါပါမယ်။ ဒုတိယ Argument ဖြစ်တဲ့ callback function ပေါ်မူတည်ပြီး Element တွေကို Filter(စစ်ထုတ်) လုပ်ပေးတာပါ။
ပထမ Argument - စစ်ထုတ်ချင်တဲ့ Array
ဒုတိယ Argument - စစ်ထုတ်မယ့် functionality ($numbers Array ထဲမှာရှိတဲ့ ကိန်းဂဏာန်း တွေထဲမှ 2 နဲ့ စားလို့ပြတ်တဲ့ Element တွေကို စစ်ထုတ်ပေးဆိုတဲ့ Function ဖြစ်ပါတယ်။)

$numbers = [1, 2, 3, 4, 5];
$evenNumbers = array_filter($numbers, function($value) {
return $value % 2 == 0;
});

// $evenNumbers is [2, 4]


𝟭𝟱. 𝗮𝗿𝗿𝗮𝘆_𝗺𝗮𝗽($𝗰𝗮𝗹𝗹𝗕𝗮𝗰𝗸𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻, $𝗮𝗿𝗿𝗮𝘆)
Array ထဲမှာ ရှိတဲ့ Element တစ်ခုချင်းစီကို callback function ပြုပြင်ပြောင်းလဲချင်ရင် သုံးပါတယ်။ Argument ၂ ခုပါပါမယ်။
ပထမ Argument - Element တစ်ခုချင်းစီကို Modify လုပ်လို့ရတဲ့ Callback Function
ဒုတိယ Argument - Array

$numbers = [1, 2, 3, 4, 5];
$squaredNumbers = array_map(function($value) {
return $value * $value;
}, $numbers);

// $squaredNumbers is [1, 4, 9, 16, 25]


𝟭𝟲. 𝗮𝗿𝗿𝗮𝘆_𝗿𝗲𝗱𝘂𝗰𝗲($𝗮𝗿𝗿𝗮𝘆, $𝗰𝗮𝗹𝗹𝗕𝗮𝗰𝗸𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻)
Callback Function ကိုသုံးပြီး Array ထဲမှာရှိတဲ့ Element တွေကို တန်ဖိုးတစ်ခု (Single Value) အဖြစ် Modify လုပ်ချင်တဲ့ အခါမှာသုံးပါတယ်။ Argument ၂ ခုပါပါမယ်။
ပထမ Argument - Array
ဒုတိယ Argument - Callback function ဖြစ်ပါတယ်။ အဲ့ဒီထဲမှာ နောက်ထပ် Argument ၂ ပါပါတယ်။ ပထမတစ်ခုက အောက်ကလို ပေါင်းတယ်ဆိုရင် Current Loop လုပ်တဲ့အချိန်ထိ ပေါင်းထားတဲ့ တန်ဖိုး။ ဒုတိယ တစ်ခုက ဆိုရင် Array ထဲမှာ ရှိတဲ့ Element တစ်ခုချင်းစီဖြစ်ပါတယ်။

$numbers = [1, 2, 3, 4, 5];
$sum = array_reduce($numbers, function($carry, $item) {
return $carry + $item;
});

// $sum is 15


𝟭𝟳. 𝗮𝗿𝗿𝗮𝘆_𝗸𝗲𝘆𝘀($𝗮𝗿𝗿𝗮𝘆)
Associative Array ထဲမှ Key တွေကိုပဲ လိုချင်ရင် သုံးပါတယ်။

$person = ['name' => 'John', 'age' => 30];
$keys = array_keys($person);

// $keys is ['name', 'age']


𝟭𝟴. 𝗮𝗿𝗿𝗮𝘆_𝘃𝗮𝗹𝘂𝗲𝘀($𝗮𝗿𝗿𝗮𝘆)
Associative Array ထဲမှ Value တွေကိုပဲ လိုချင်ရင် သုံးပါတယ်။

$person = ['name' => 'John', 'age' => 30];
$values = array_values($person);

// $values is ['John', 30]


𝟭𝟵. 𝗮𝗿𝗿𝗮𝘆_𝗳𝗹𝗶𝗽($𝗮𝗿𝗿𝗮𝘆)
Associative Array ထဲမှ Key နဲ့ Value တွေကို ပြောင်းပြန်လှန်ပေးပါတယ်။

$person = ['name' => 'John', 'age' => 30];

$flippedPerson = array_flip($person);

// $flippedPerson is ['John' => 'name', 30 => 'age']


𝟮𝟬. 𝗮𝗿𝗿𝗮𝘆_𝗰𝗵𝘂𝗻𝗸($𝗮𝗿𝗿𝗮𝘆, $𝗰𝗼𝘂𝗻𝘁)
Array ထဲမှာရှိနေကြတဲ့ Element တွေကို နောက်ထပ် Multidimensional Array ထဲကို သတ်မှတ်ထားတဲ့ အရေအတွက်အလိုက် ခွဲချင်ရင် သုံးပါတယ်။
ပထမ Argument - Array
ဒုတိယ Argument - ခွဲချင်တဲ့ အရေအတွက်

$fruits = ['apple', 'banana', 'cherry', 'date', 'fig'];
$chunks = array_chunk($fruits, 2);

// $chunks is [['apple', 'banana'], ['cherry', 'date'], ['fig']]

love you all

Want your business to be the top-listed Computer & Electronics Service in Yangon?
Click here to claim your Sponsored Listing.

Videos (show all)

Laravel CRUD | Episode - 09
Laravel CRUD | Episode - 08
Laravel CRUD | Episode - 07
Laravel CRUD | Episode - 06

Telephone

Website

Address

Yangon