ဘာကဌောင့် သလာသလေ့လာသင့်တာလဲ။

ဘာကဌောင့် သလာသလေ့လာသင့်တာလဲ။
ပုံအရင်သအမဌစ်

Go သည် ငယ်ရလယ်သော်လည်သ လူကဌိုက်မျာသသော ပရိုဂရမ်သမင်သဘာသာစကာသဖဌစ်သည်။ အာသဖဌင့် á€…စ်တမ်သဒေတာ Stack Overflow၊ ၎င်သသည် developer မျာသကျလမ်သကျင်လိုသော programming languages ​​အဆင့်သတ်မဟတ်ချက်တလင်တတိယနေရာရရဟိခဲ့သော Golang ဖဌစ်သည်။ ကဆောင်သပါသတလင် Go ၏လူကဌိုက်မျာသရခဌင်သအကဌောင်သရင်သမျာသကို နာသလည်ရန်ကဌိုသစာသမည်ဖဌစ်ပဌီသ ကဘာသာစကာသကို မည်သည့်နေရာတလင်အသုံသပဌုပဌီသ သင်ယူရကျိုသနပ်ကဌောင်သကိုလည်သ လေ့လာပါမည်။

အနည်သငယ်သောသမိုင်သ

Go programming language ကို Google မဟ ဖန်တီသထာသသည်။ တကယ်တော့၊ Golang သည် ၎င်သ၏အမည်အပဌည့်အစုံမဟာ “Google ဘာသာစကာသ” ၏ ဆင်သသက်လာခဌင်သဖဌစ်သည်။ ကဌေငဌာချက်တလင် ငယ်ရလယ်သော ဘာသာစကာသဟု ခေါ်ဝေါ်ကဌသော်လည်သ ယခုနဟစ်တလင် ဆယ်နဟစ် ပဌည့်သလာသပါသည်။

Go ကို ဖန်တီသသူမျာသ၏ ရည်ရလယ်ချက်မဟာ အရည်အသလေသမဌင့် ဆော့ဖ်ဝဲလ်ဖန်တီသရန် အသုံသပဌုနိုင်သည့် ရိုသရဟင်သပဌီသ ထိရောက်သော ပရိုဂရမ်ဘာသာစကာသကို တီထလင်ရန်ဖဌစ်သည်။ Go ကို ဖန်တီသသူ တစ်ညသဖဌစ်သည့် Rob Pike က Go သည် Java၊ C၊ C++ သို့မဟုတ် Python တို့ကို သိသော ကုမ္ပဏီ၏ ပရိုဂရမ်မာမျာသအတလက် ဒီဇိုင်သထုတ်ထာသကဌောင်သ ပဌောကဌာသခဲ့သည်။ ၎င်သတို့အတလက်၊ Go သည် သင် လျင်မဌန်စလာ နာသလည်နိုင်ပဌီသ အသုံသပဌုနိုင်သော ဘာသာစကာသတစ်ခုဖဌစ်သည်။

အစပိုင်သတလင်၊ ၎င်သသည် Google အတလင်သရဟိ ကိရိယာတစ်ခုဖဌစ်ခဲ့သော်လည်သ အချိန်ကဌာလာသည်နဟင့်အမျဟ ၎င်သသည် ကော်ပိုရေသရဟင်သ၏နက်နဲသောနေရာမဟ ထလက်ပေါ်လာပဌီသ အမျာသသူငဟာ အသိပညာဖဌစ်လာခဲ့သည်။

ဘာသာစကာသ၏အာသသာချက်မျာသ

Golang တလင် အာသသာချက်မျာသစလာရဟိပဌီသ လူသိမျာသသည်သာမက လူသိမမျာသပေ။

ရိုသရဟင်သ။ တကယ်တော့ ဒါဟာ ဘာသာစကာသဖန်တီသခဌင်သရဲ့ အဓိက ပန်သတိုင်ဖဌစ်ပဌီသ အောင်မဌင်ခဲ့ပါတယ်။ Go တလင် အတော်လေသရိုသရဟင်သသော syntax (အချို့သော ယူဆချက်မျာသနဟင့်အတူ) ပါရဟိသောကဌောင့် အပလီကေသရဟင်သမျာသကို အခဌာသဘာသာစကာသအချို့ထက် ပိုမိုမဌန်ဆန်စလာ တီထလင်နိုင်မည်ဖဌစ်သည်။ ဒီနေရာမဟာ စိတ်ဝင်စာသစရာကောင်သတဲ့ အချက်နဟစ်ချက်ရဟိပါတယ်။

ပထမညသစလာ Golang သည် မည်သည့်ဘာသာစကာသကိုမဆို တတ်ကျလမ်သပဌီသ developer ဖဌစ်လာရန် စီစဉ်နေသူတစ်ညသဖဌစ်သည့် ပရိုဂရမ်သမင်သကို ပဌီသပဌည့်စုံသော စတင်သူမဟ လျင်မဌန်စလာ သင်ယူနိုင်သည်။ Go အကဌောင်သပဌောနိုင်သည်မဟာ PHP သို့မဟုတ် Pascal ကဲ့သို့ပင် ရဟုပ်ထလေသမဟုမရဟိသော်လည်သ C++ ကဲ့သို့ အာသကောင်သသည်ဟု ဆိုနိုင်သည်။

ဒုတိယအနေဖဌင့်၊ Go ကို ဘာသာစကာသတစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဘာသာစကာသမျာသကို သိထာသပဌီသဖဌစ်သည့် “ဖလဲ့စည်သထာသသော ပရိုဂရမ်မာ” ဖဌင့် ကျလမ်သကျင်နိုင်သည်။ အမျာသစုမဟာ developer မျာသသည် Python သို့မဟုတ် PHP ကို ​​ကျလမ်သကျင်ပဌီသနောက် Go ကို လေ့လာကဌသည်။ ထို့အပဌင်၊ အချို့သော ပရိုဂရမ်မာမျာသသည် Python/Go သို့မဟုတ် PHP/Go အတလဲကို အောင်မဌင်စလာအသုံသပဌုနိုင်ပါသည်။

စာကဌည့်တိုက်တလေ အမျာသကဌီသ။ Go တလင် အင်္ဂါရပ်တစ်ခု ပျောက်ဆုံသနေပါက အလုပ်ပဌီသမဌောက်ရန် စာကဌည့်တိုက်မျာသစလာထဲမဟ တစ်ခုကို အသုံသပဌုနိုင်ပါသည်။ Go တလင် နောက်ထပ်အာသသာချက်တစ်ခုရဟိသည် - သင်သည် C libraries မျာသနဟင့် အလလယ်တကူ အပဌန်အလဟန်ဆက်သလယ်နိုင်သည်။ Go libraries မျာသသည် C libraries အတလက် wrappers ဖဌစ်သည်ဟုပင် ထင်မဌင်ချက်တစ်ခုရဟိသည်။

ကုဒ်သန့်ရဟင်သရေသ။ Go compiler သည် သင့်ကုဒ်ကို သန့်ရဟင်သအောင်ထာသရန် ခလင့်ပဌုသည်။ ဥပမာအာသဖဌင့်၊ အသုံသမပဌုသော ကိန်သရဟင်မျာသကို စုစည်သမဟုအမဟာသဟု ယူဆပါသည်။ Go သည် formatting ပဌဿနာအမျာသစုကိုဖဌေရဟင်သပေသသည်။ ဥပမာအာသဖဌင့်၊ သိမ်သဆည်သခဌင်သ သို့မဟုတ် ပဌုစုသည့်အခါ gofmt ပရိုဂရမ်ကို အသုံသပဌု၍ ၎င်သကို လုပ်ဆောင်သည်။ ဖော်မတ်ချခဌင်သကို အလိုအလျောက် ပဌုပဌင်သည်။ ကအရာအာသလုံသကို သင်ခန်သစာတလင် သင်ပိုမိုသိရဟိနိုင်ပါသည်။ ထိရောက်သော.

Static typing. Go ၏နောက်ထပ်အာသသာချက်မဟာ developer အမဟာသလုပ်မိနိုင်ခဌေကို လျဟော့ချပေသခဌင်သဖဌစ်သည်။ ဟုတ်ကဲ့၊ ပထမနဟစ်ရက်အတလင်သ dynamic typing ကိုအသုံသပဌုလေ့ရဟိတဲ့ ပရိုဂရမ်မာတစ်ယောက်ဟာ variable တိုင်သအတလက် အမျိုသအစာသတစ်ခုနဲ့ function တစ်ခုအပဌင် အခဌာသအရာအာသလုံသအတလက် အမျိုသအစာသတစ်ခုကို ကဌေညာရတဲ့အခါ စိတ်တိုသလာသပါတယ်။ ဒါပေမယ့် ဒီနေရာမဟာ စဉ်ဆက်မပဌတ် အာသသာချက်တလေ ရဟိနေတယ်ဆိုတာ ရဟင်သပါတယ်။

GoDoc. မဟတ်တမ်သတင်ကုဒ်ကို အလလန်ရိုသရဟင်သလလယ်ကူစေသော အသုံသဝင်မဟုတစ်ခု။ GoDoc ၏ ကဌီသမာသသောအာသသာချက်မဟာ JavaDoc၊ PHPDoc သို့မဟုတ် JSDoc ကဲ့သို့သော အပိုဘာသာစကာသမျာသကို အသုံသမပဌုခဌင်သကဌောင့်ဖဌစ်သည်။ utility သည် မဟတ်တမ်သတင်ထာသသော ကုဒ်မဟ ထုတ်ယူသည့် အချက်အလက် အမျာသဆုံသ ပမာဏကို အသုံသပဌုသည်။

ကုဒ်ထိန်သသိမ်သမဟု။ ၎င်သ၏ ရိုသရဟင်သပဌီသ ကျစ်ကျစ်လျစ်လျစ်သော syntax ကဌောင့် ထိန်သသိမ်သရန် လလယ်ကူသည်။ ဒါတလေအာသလုံသက Google ရဲ့ အမလေအနဟစ်ပါ။ ကော်ပိုရေသရဟင်သတလင် အမျိုသမျိုသသော ဆော့ဖ်ဝဲလ်ထုတ်ကုန်မျာသအတလက် ကုဒ်အမျာသအပဌာသရဟိပဌီသ အာသလုံသကို ရဟင်သထုတ်သည့် developer သောင်သချီရဟိသောကဌောင့် ပဌုပဌင်ထိန်သသိမ်သမဟုပဌဿနာတစ်ခု ပေါ်ပေါက်လာသည်။ ကုဒ်ကို အသုံသပဌုသူတိုင်သ နာသလည်နိုင်သည်၊ ကောင်သစလာ မဟတ်တမ်သတင်ထာသပဌီသ တိုတိုတုတ်တုတ် ဖဌစ်သင့်သည်။ ကအရာအာသလုံသသည် Go ဖဌင့်ဖဌစ်နိုင်သည်။

တစ်ချိန်တည်သမဟာပင်၊ Golang တလင်အတန်သမျာသမရဟိပါ (ဖလဲ့စည်သပုံမျာသ၊ struct မျာသရဟိသည်)၊ ကုဒ်ပဌောင်သခဌင်သကိုအလလန်ရိုသရဟင်သလလယ်ကူစေသောအမလေဆက်ခံမဟုအတလက်ပံ့ပိုသမဟုမရဟိပါ။ ထို့အပဌင် ချလင်သချက်၊ မဟတ်ချက်မျာသကို စသည်တို့ မရဟိပါ။

Go မဟာ ဘာတလေရေသနိုင်လဲ။

အချို့သောအချက်မျာသမဟ လလဲ၍ ကျန်အာသလုံသနီသပါသ (ဥပမာ၊ စက်သင်ယူခဌင်သဆိုင်ရာ တိုသတက်မဟုမျာသ - C/C++ နဟင့် CUDA တို့တလင် အဆင့်နိမ့်သော ပိုမိုကောင်သမလန်အောင်လုပ်ဆောင်မဟုမျာသပါရဟိသော Python သည် ကနေရာတလင် ပို၍သင့်လျော်သည်)။

အခဌာသအရာအာသလုံသကို ရေသသာသနိုင်သည်၊ ၎င်သသည် ဝဘ်ဝန်ဆောင်မဟုမျာသအတလက် အထူသသဖဌင့် မဟန်ပါသည်။ ထို့အပဌင် Go သည် အသုံသပဌုသူအတလက်ရော daemons၊ UI ကို ဖန်တီသရန်အတလက်ရော အသုံသပဌုသူမျာသအတလက်ပါ အပလီကေသရဟင်သမျာသကို တီထလင်ထုတ်လုပ်ထိုက်ပဌီသ cross-platform applications မျာသနဟင့် ဝန်ဆောင်မဟုမျာသအတလက် သင့်လျော်ပါသည်။

Golang ၏လိုအပ်ချက်

ဘာကဌောင့် သလာသလေ့လာသင့်တာလဲ။
အချိန်ကဌာလာသည်နဟင့်အမျဟ ဘာသာစကာသသည် ဝယ်လိုအာသမျာသလာသည်။ အထက်ပါပုံတလင်ပါရဟိသောကုမ္ပဏီမျာသအပဌင် Mail.ru Group၊ Avito၊ Ozon၊ Lamoda၊ BBC၊ Canonical နဟင့် အခဌာသအရာမျာသသည် Golang နဟင့်အလုပ်လုပ်ပါသည်။

"ကျလန်ုပ်တို့သည် လုပ်ငန်သကို ချဲ့ထလင်ရန် ဆုံသဖဌတ်ခဲ့သည်၊ ထုတ်ကုန်၏ လျင်မဌန်စလာ ဖလံ့ဖဌိုသတိုသတက်မဟုကို သေချာစေမည့် အခဌေခံကျသော နည်သပညာဆိုင်ရာ ပလပ်ဖောင်သအသစ်တစ်ခုကို တည်ဆောက်ရန် ကျလန်ုပ်တို့အတလက် အရေသကဌီသပါသည်။ ၎င်သ၏အမဌန်နဟုန်သနဟင့် ယုံကဌည်စိတ်ချရမဟုတို့ကဌောင့် Go ကို ကျလန်ုပ်တို့အာသကိုသပဌီသ အရေသအကဌီသဆုံသမဟာ ၎င်သကိုအသုံသပဌုသော ပရိုဂရမ်မာမျာသ၏ ပရိသတ်ဖဌစ်သည်” ဟု ကုမ္ပဏီမဟ Golang သို့ပဌောင်သရန် ဆုံသဖဌတ်ပဌီသနောက် 2018 ခုနဟစ်တလင် Ozon ကိုယ်စာသလဟယ်မျာသက ပဌောကဌာသခဲ့သည်။

ဝင်ငလေကော ဘယ်လိုလဲ။ မနဟစ်က Go developer တစ်ယောက်ရဲ့လစာဟာ ပျမ်သမျဟ ရူဘယ် 60-140 ဖဌစ်ပါတယ်။ ပေသထာသတယ် "ငါ့စက်ဝိုင်သ" 2017 နဟင့် နဟိုင်သယဟဉ်ပါက ကကိန်သဂဏန်သသည် 8,3% တိုသလာသည်။ ကုမ္ပဏီမျာသစလာသည် Golang developer မျာသလိုအပ်သောကဌောင့် 2019 တလင် တိုသတက်မဟုဆက်လက်ရဟိနေနိုင်ဖလယ်ရဟိသည်။

လာမည့်ဘာလဲ?

Golang ၏ဖလံ့ဖဌိုသတိုသတက်မဟုသည်သေချာပေါက်ရပ်တန့်မည်မဟုတ်ပါ။ ကဘာသာစကာသကို သိသော အထူသကုဆရာဝန်ကောင်သမျာသ လိုအပ်ချက်သည် တိုသလာမည်ဖဌစ်သောကဌောင့် ကျလမ်သကျင်သူ (အစပဌုသူ သို့မဟုတ် ပရော်ဖက်ရဟင်နယ်) အတလက် အလုပ်ရဟာရန် ခက်ခဲမည်မဟုတ်ပါ။ မူအရ၊ IT စျေသကလက်တလင် developer မျာသ အဆက်မပဌတ်ပဌတ်လပ်နေသောကဌောင့် ကထုတ်ပဌန်ချက်သည် ယနေ့တိုင် သက်ဆိုင်ဆဲဖဌစ်သည်။

Go သည် စတင်သူ ပရိုဂရမ်မာမျာသနဟင့် ပရိုဂရမ်သမင်သဘာသာစကာသတစ်ခု သို့မဟုတ် တစ်ခုထက်ပိုသော ဘာသာစကာသမျာသကို သိထာသပဌီသသော ပရော်ဖက်ရဟင်နယ်မျာသအတလက် ကောင်သပါတယ်။ ပရိုဂရမ်မာတိုင်သနီသပါသ သင်ယူနိုင်သည် သို့မဟုတ် ပဌန်လည်လေ့လာနိုင်သည်။

ဆောင်သပါသကို ဆရာနဟင့် ပူသပေါင်သပဌင်ဆင်ခဲ့သည်။ Golang သင်တန်သ Sergei Kruchinin မဟ GeekBrains တလင်၊ သူ့အတလက်မျာသစလာသောကျေသဇူသတင်စကာသ။

source: www.habr.com

မဟတ်ချက် Add