Rust ကို 24 နာရီအတလင်သ ကစာသခဌင်သ- ကိုယ်ရေသကိုယ်တာ ဖလံ့ဖဌိုသတိုသတက်မဟု အတလေ့အကဌုံ

Rust ကို 24 နာရီအတလင်သ ကစာသခဌင်သ- ကိုယ်ရေသကိုယ်တာ ဖလံ့ဖဌိုသတိုသတက်မဟု အတလေ့အကဌုံ

ကဆောင်သပါသတလင် Rust တလင် ဂိမ်သငယ်တစ်ခု ဖန်တီသခဌင်သ၏ ကိုယ်ပိုင်အတလေ့အကဌုံအကဌောင်သ ပဌောပဌပါမည်။ အလုပ်လုပ်သောဗာသရဟင်သကိုဖန်တီသရန် 24 နာရီခန့် အချိန်ယူခဲ့ရသည် (ကျလန်တော် အမျာသအာသဖဌင့် ညနေပိုင်သ သို့မဟုတ် စနေ၊ တနင်္ဂနလေမျာသတလင် အလုပ်လုပ်သည်)။ ဂိမ်သက မပဌီသသေသပေမယ့် အတလေ့အကဌုံက အကျိုသရဟိမယ်ထင်တယ်။ ဂိမ်သကို အစကနေ ပဌန်တည်ဆောက်ရင်သ သင်ယူခဲ့ရတာတလေကို မျဟဝေပေသပါမယ်။

Skillbox မဟ အကဌံပဌုထာသသည်- နဟစ်နဟစ်စာလက်တလေ့သင်တန်သ "ကျလန်တော်က PRO ဝဘ် developer တစ်ယောက်ပါ".

ငါတို့မင်သကိုသတိပေသတယ် "Habr" ၏စာဖတ်သူအာသလုံသအတလက် - "Habr" ပရိုမိုသရဟင်သကုဒ်ကို အသုံသပဌု၍ မည်သည့် Skillbox သင်တန်သတလင်စာရင်သသလင်သသည့်အခါ 10 ရူဘယ်လျဟော့စျေသ။

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

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

ဘာကဌောင့်ဂိမ်သနဲ့ ဘယ်လိုဂိမ်သမျိုသလဲ။

ဂိမ်သမျာသဖန်တီသခဌင်သသည် ပျော်စရာကောင်သသည်။ အကဌောင်သပဌချက်မျာသ ပိုရဟိချင်သော်လည်သ၊ "အိမ်" ပရောဂျက်မျာသအတလက် ကျလန်ုပ်၏ပုံမဟန်အလုပ်နဟင့် သိပ်မသက်ဆိုင်သော အကဌောင်သအရာမျာသကို ရလေသချယ်ပါသည်။ ဒါက ဘာဂိမ်သလဲ။ Cities Skylines၊ Zoo Tycoon၊ Prison Architect နဲ့ Tennis ကိုယ်တိုင်ပေါင်သစပ်ထာသတဲ့ Tennis Simulator လိုမျိုသ တစ်ခုခုလုပ်ချင်တယ်။ ယေဘူယျအာသဖဌင့်၊ လူမျာသလာရောက်ကစာသသည့် တင်သနစ်အကယ်ဒမီအကဌောင်သ ဂိမ်သတစ်ခုဖဌစ်လာသည်။

နည်သပညာသင်တန်သ

Rust ကို သုံသချင်သော်လည်သ စတင်ရန် မည်မျဟကဌာမည်ကို အတိအကျ မသိပါ။ Pixel Shaders တလေကို မရေသချင်ဘဲ drag-n-drop ကို မသုံသချင်ဘူသ၊ ဒါကဌောင့် ပဌောင်သလလယ်ပဌင်လလယ်ဆုံသ ဖဌေရဟင်သနည်သတလေကို ရဟာနေတယ်။

မင်သနဲ့မျဟဝေထာသတဲ့ အသုံသဝင်တဲ့အရင်သအမဌစ်တလေကို ငါတလေ့ခဲ့တယ်-

ကျလန်တော်သည် Rust ဂိမ်သအင်ဂျင်မျာသစလာကို ရဟာဖလေခဲ့ပဌီသ နောက်ဆုံသတလင် Piston နဟင့် ggez ကိုရလေသချယ်ခဲ့သည်။ အရင်ပရောဂျက်တစ်ခုလုပ်ရင်သနဲ့ သူတို့ကိုတလေ့ခဲ့တယ်။ အဆုံသတလင်၊ သေသငယ်သော 2D ဂိမ်သကို အကောင်အထည်ဖော်ရန် ပိုမိုသင့်လျော်ပုံပေါက်သောကဌောင့် ggez ကို ရလေသချယ်ခဲ့သည်။ Piston ၏ မော်ဂျူလာဖလဲ့စည်သပုံသည် အတလေ့အကဌုံမရဟိသေသသော developer (သို့မဟုတ် ပထမဆုံသအကဌိမ် Rust နဟင့် အလုပ်လုပ်နေသူ) အတလက် အလလန်ရဟုပ်ထလေသပါသည်။

ဂိမ်သဖလဲ့စည်သပုံ

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

အရာရာကို တလေသပဌီသ အလုပ်ဆင်သခဲ့တယ်။

ဂိမ်သဖန်တီသမဟု

အစ- စက်ဝိုင်သမျာသနဟင့် စိတ်ကူသယဉ်မဟုမျာသ

ggez မဟ ဥပမာတစ်ခုကိုယူ၍ ဖန်သာသပဌင်ပေါ်တလင် စက်ဝိုင်သတစ်ခုရခဲ့သည်။ အံ့ဩစရာ! အခုကျတော့ abstractions တလေ။ ဂိမ်သဝတ္တုတစ်ခုရဲ့ အတလေသအမဌင်ကနေ ရုန်သထလက်ဖို့ကောင်သမယ်ထင်တယ်။ ကနေရာတလင်ဖော်ပဌထာသသည့်အတိုင်သ အရာဝတ္ထုတစ်ခုစီကို ပဌန်ဆိုကာ အပ်ဒိတ်လုပ်ရပါမည်-

// the game object trait
trait GameObject {
    fn update(&mut self, _ctx: &mut Context) -> GameResult<()>;
    fn draw(&mut self, ctx: &mut Context) -> GameResult<()>;
}
 
// a specific game object - Circle
struct Circle {
    position: Point2,
}
 
 impl Circle {
    fn new(position: Point2) -> Circle {
        Circle { position }
    }
}
impl GameObject for Circle {
    fn update(&mut self, _ctx: &mut Context) -> GameResult<()> {
        Ok(())
    }
    fn draw(&mut self, ctx: &mut Context) -> GameResult<()> {
        let circle =
            graphics::Mesh::new_circle(ctx, graphics::DrawMode::Fill, self.position, 100.0, 2.0)?;
 
         graphics::draw(ctx, &circle, na::Point2::new(0.0, 0.0), 0.0)?;
        Ok(())
    }
}

ကကုဒ်အပိုင်သအစသည် ကျလန်ုပ်အာသ ထပ်တူထပ်မျဟ ကောင်သမလန်သော အကလက်တစ်ခုတလင် အပ်ဒိတ်လုပ်၍ တင်ဆက်နိုင်သည့် အရာဝတ္ထုကောင်သမျာသစာရင်သကို ပေသခဲ့ပါသည်။

mpl event::EventHandler for MainState {
    fn update(&mut self, context: &mut Context) -> GameResult<()> {
        // Update all objects
        for object in self.objects.iter_mut() {
            object.update(context)?;
        }
 
        Ok(())
    }
 
    fn draw(&mut self, context: &mut Context) -> GameResult<()> {
        graphics::clear(context);
 
        // Draw all objects
        for object in self.objects.iter_mut() {
            object.draw(context)?;
        }
 
        graphics::present(context);
 
        Ok(())
    }
}

main.rs သည် ကုဒ်လိုင်သမျာသ အာသလုံသပါဝင်သောကဌောင့် လိုအပ်ပါသည်။ ဖိုင်မျာသကို ခလဲထုတ်ပဌီသ လမ်သညလဟန်ဖလဲ့စည်သပုံကို အကောင်သဆုံသဖဌစ်အောင် လုပ်ရန် အချိန်အနည်သငယ်ကဌာခဲ့သည်။ ယင်သနောက်တလင် ၎င်သသည် အသလင်သဏ္ဌာန်ဖဌစ်သည်။
အရင်သအမဌစ်မျာသ -> ကနေရာတလင် ပိုင်ဆိုင်မဟုအာသလုံသ (ပုံမျာသ)
src
- တခုနဲ့တခု
— game_object.rs
— circle.rs
— main.rs -> ပင်မကလင်သဆက်

လူမျာသ၊ ကဌမ်သပဌင်မျာသနဟင့် ရုပ်ပုံမျာသ

နောက်တစ်ဆင့်မဟာ Person game object တစ်ခုကို ဖန်တီသပဌီသ ပုံမျာသကို တင်ရန် ဖဌစ်သည်။ အာသလုံသကို 32*32 ကဌလေပဌာသပေါ်တလင် အခဌေခံ၍ တည်ဆောက်သင့်သည်။

Rust ကို 24 နာရီအတလင်သ ကစာသခဌင်သ- ကိုယ်ရေသကိုယ်တာ ဖလံ့ဖဌိုသတိုသတက်မဟု အတလေ့အကဌုံ

တင်သနစ်ကလင်သ

တင်သနစ်ကလင်သတလေက ဘယ်လိုပုံစံလဲဆိုတာ လေ့လာပဌီသနောက်၊ 4*2 ကဌလေပဌာသတလေနဲ့ ပဌုလုပ်ဖို့ ဆုံသဖဌတ်ခဲ့ပါတယ်။ အစပိုင်သတလင်၊ ကအရလယ်အစာသပုံတစ်ပုံကို ဖန်တီသနိုင်သည်၊ သို့မဟုတ် သီသခဌာသအကလက် ၈ ခုကို ပေါင်သထည့်နိုင်သည်။ ဒါပေမယ့် တမူထူသခဌာသတဲ့ ကဌလေပဌာသနဟစ်ချပ်ပဲ လိုအပ်တယ်ဆိုတာ သိလိုက်ရတယ်၊ ဒါက ဘာကဌောင့်လဲ။

စုစုပေါင်သကျလန်ုပ်တို့၌ထိုကဲ့သို့သောအကလက်နဟစ်ခုရဟိသည်: 1 နဟင့် 2 ။

တရာသရုံသ၏ အပိုင်သတစ်ခုစီတလင် အကလက် 1 သို့မဟုတ် အကလက် 2 ပါ၀င်သည်။ ၎င်သတို့ကို ပုံမဟန်အတိုင်သ သို့မဟုတ် 180 ဒီဂရီလဟန်နိုင်သည်။

Rust ကို 24 နာရီအတလင်သ ကစာသခဌင်သ- ကိုယ်ရေသကိုယ်တာ ဖလံ့ဖဌိုသတိုသတက်မဟု အတလေ့အကဌုံ

အခဌေခံတည်ဆောက်မဟု (စုဝေသမဟု) မုဒ်

ဝဘ်ဆိုက်မျာသ၊ လူမျာသနဟင့် မဌေပုံမျာသကို တင်ဆက်နိုင်ပဌီသနောက်၊ အခဌေခံစုဝေသမဟုမုဒ်တစ်ခုလည်သ လိုအပ်ကဌောင်သ နာသလည်ခဲ့သည်။ ခလုတ်ကို နဟိပ်လိုက်တဲ့အခါ၊ အရာဝတ္ထုကို ရလေသချယ်ပဌီသ ကလစ်နဟိပ်လိုက်တာနဲ့ လိုချင်တဲ့ နေရာမဟာ ထာသလိုက်တယ်။ ထို့ကဌောင့် ခလုတ် 1 သည် သင့်အာသ တရာသရုံသတစ်ခုကို ရလေသချယ်နိုင်မည်ဖဌစ်ပဌီသ ခလုတ် 2 သည် သင့်အာသ ကစာသသမာသတစ်ညသကို ရလေသချယ်နိုင်စေမည်ဖဌစ်သည်။

ဒါပေမယ့် 1 နဲ့ 2 က ဘာကိုဆိုလိုသလဲဆိုတာကို မဟတ်မိနေဖို့ လိုသေသတဲ့အတလက် ဘယ်အရာဝတ္တုကို ရလေသခဲ့တာလဲဆိုတာ ရဟင်သရဟင်သလင်သလင်သသိနိုင်ဖို့ ဝိုင်ယာဘောင်တစ်ခုကို ထည့်လိုက်တယ်။ ဒါက ဘာပုံလဲ။

Rust ကို 24 နာရီအတလင်သ ကစာသခဌင်သ- ကိုယ်ရေသကိုယ်တာ ဖလံ့ဖဌိုသတိုသတက်မဟု အတလေ့အကဌုံ

ဗိသုကာပညာနဟင့် ပဌန်လည်ပဌုပဌင်ရေသဆိုင်ရာ မေသခလန်သမျာသ

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

ဗိသုကာပညာသည် ကန့်သတ်ချက်အချို့ကို ဖော်ပဌသည့်နည်သလမ်သဖဌင့် ပဌန်လည်စဉ်သစာသရန် လိုအပ်သည်ဟု ကျလန်ုပ်ထင်သည်-

  • သူ့ဘာသာသူ တင်ဆက်ပဌီသ အပ်ဒိတ်လုပ်သည့် အဖလဲ့အစည်သတစ်ခုရဟိခဌင်သသည် ပဌဿနာတစ်ခုဖဌစ်ပဌီသ ထိုအဖလဲ့အစည်သသည် ၎င်သအာသ တင်ဆက်ရမည့်အရာကို “သိ” နိုင်မည် မဟုတ်သောကဌောင့် - ရုပ်ပုံနဟင့် ဝါယာဖရမ်တစ်ခု၊
  • တစ်ညသချင်သစီ entities မျာသအကဌာသ ဂုဏ်သတ္တိနဟင့် အပဌုအမူ ဖလဟယ်ရန် ကိရိယာ မရဟိခဌင်သ (ဥပမာ၊ is_build_mode ပိုင်ဆိုင်မဟု သို့မဟုတ် အပဌုအမူ rendering)။ Rust တလင် ၎င်သကို အကောင်အထည်ဖော်ရန် သင့်လျော်သောနည်သလမ်သမရဟိသော်လည်သ အမလေဆက်ခံမဟုကို အသုံသပဌုရန် ဖဌစ်နိုင်သည်။ တကယ်လိုအပ်တာက အဆင်အပဌင်၊
  • လူမျာသကို တရာသရုံသမျာသသို့ တာဝန်ပေသအပ်ရန် အဖလဲ့အစည်သမျာသအကဌာသ အပဌန်အလဟန် အကျိုသပဌုမဟုဆိုင်ရာ ကိရိယာတစ်ခု လိုအပ်ပါသည်။
  • entities မျာသကိုယ်တိုင်က ထိန်သချုပ်မဟုမဟ လျင်မဌန်စလာ ရုန်သထလက်နိုင်သော data နဟင့် logic ရောနဟောနေပါသည်။

ကျလန်တော် နောက်ထပ် သုတေသနလုပ်ခဲ့ပဌီသ ဗိသုကာလက်ရာကို ရဟာဖလေတလေ့ရဟိခဲ့ပါတယ်။ ECS - Entity Component စနစ်ဂိမ်သမျာသတလင် အသုံသမျာသသော၊ ကသည်မဟာ ECS ၏အကျိုသကျေသဇူသမျာသဖဌစ်သည်။

  • အချက်အလက်ကို ယုတ္တိဗေဒနဟင့် ခလဲခဌာသထာသသည်။
  • အမလေဆက်ခံမည့်အစာသ ဖလဲ့စည်သမဟု၊
  • ဒေတာဗဟိုပဌုဗိသုကာ။

ECS သည် အခဌေခံသဘောတရာသသုံသမျိုသဖဌင့် လက္ခဏာဆောင်သည်-

  • အရာဝတ္ထုမျာသ - သတ်မဟတ်သူအာသရည်ညလဟန်သသော အရာဝတ္ထုအမျိုသအစာသ (၎င်သသည် ကစာသသမာသတစ်ညသ၊ ဘောလုံသ သို့မဟုတ် အခဌာသအရာတစ်ခု ဖဌစ်နိုင်သည်)။
  • အစိတ်အပိုင်သမျာသ- entities မျာသကို ၎င်သတို့ဖဌင့် ဖလဲ့စည်သထာသသည်။ ဥပမာ - ပုံဖေါ်ခဌင်သ အစိတ်အပိုင်သ၊ တည်နေရာနဟင့် အခဌာသအရာမျာသ။ ၎င်သတို့သည် ဒေတာသိုလဟောင်ရုံမျာသဖဌစ်သည်။
  • စနစ်မျာသ - ၎င်သတို့သည် အရာဝတ္တုမျာသနဟင့် အစိတ်အပိုင်သမျာသကို အသုံသပဌုကဌပဌီသ၊ ကဒေတာအပေါ်အခဌေခံသည့် အပဌုအမူနဟင့် ယုတ္တိဗေဒမျာသပါရဟိသည်။ ဥပမာတစ်ခုသည် rendering components မျာသပါရဟိသော entities မျာသအာသလုံသကို ထပ်တလဲလဲလုပ်ကာ rendering ကိုလုပ်ဆောင်သည့် rendering system တစ်ခုဖဌစ်သည်။

၎င်သကိုလေ့လာပဌီသနောက် ECS သည် အောက်ပါပဌဿနာမျာသကို ဖဌေရဟင်သပေသကဌောင်သ သိသာထင်ရဟာသလာပါသည်။

  • အစိတ်အပိုင်သမျာသကို စနစ်တကျစုစည်သရန် အမလေဆက်ခံမည့်အစာသ layout ကိုအသုံသပဌုခဌင်သ၊
  • ထိန်သချုပ်မဟုစနစ်မျာသမဟတဆင့် ကုဒ်မျာသ ရဟုပ်ပလခဌင်သကို ဖယ်ရဟာသခဌင်သ၊
  • rendering system တလင် wireframe logic ကို တစ်နေရာတည်သတလင်ထာသရန် is_build_mode ကဲ့သို့သော နည်သလမ်သမျာသကို အသုံသပဌုခဌင်သ။

ECS ကို အကောင်အထည် ဖော်ပဌီသနောက် ဒါက ဖဌစ်ပျက်ခဲ့တာ။

အရင်သအမဌစ်မျာသ -> ကနေရာတလင် ပိုင်ဆိုင်မဟုအာသလုံသ (ပုံမျာသ)
src
- အစိတ်အပိုင်သမျာသ
—position.rs
— person.rs
— tennis_court.rs
— floor.rs
- wireframe.rs
— mouse_tracked.rs
- အရင်သအမဌစ်မျာသ
—mouse.rs
- စနစ်မျာသ
— rendering.rs
— constants.rs
— utils.rs
— world_factory.rs -> ကမ္ဘာ့စက်ရုံအလုပ်ရုံမျာသ
— main.rs -> ပင်မကလင်သဆက်

ကျနော်တို့က လူတလေကို တရာသရုံသတလေမဟာ တာဝန်ပေသတယ်။

ECS သည် ဘဝကို ပိုမိုလလယ်ကူစေသည်။ ယခု ကျလန်ုပ်တလင် အချက်အလက်မျာသကို အစုအဝေသမျာသသို့ ပေါင်သထည့်ရန်နဟင့် ထိုဒေတာအပေါ်အခဌေခံ၍ ယုတ္တိဗေဒကို ထည့်သလင်သရန် စနစ်တကျနည်သလမ်သတစ်ခုရဟိသည်။ ဒါမဟလည်သ တရာသရုံသတလေကဌာသက လူတလေကို ဖဌန့်ကျက်စည်သရုံသနိုင်စေတယ်။

ငါ ဘာလုပ်လိုက်တာလဲ

  • လူတစ်ညသထံသို့ ပေသအပ်ထာသသော တရာသရုံသမျာသဆိုင်ရာ အချက်အလက်မျာသကို ထပ်လောင်သထည့်ခဌင်သ၊
  • TennisCourt သို့ ဖဌန့်ဝေထာသသော လူမျာသအကဌောင်သ ဒေတာထပ်ထည့်သည်။
  • လူမျာသနဟင့်တရာသရုံသမျာသကိုခလဲခဌမ်သစိတ်ဖဌာရန်ခလင့်ပဌုသည့် CourtChoosingSystem၊ တရာသရုံသမျာသကိုရဟာဖလေပဌီသကစာသသမာသမျာသကိုဖဌန့်ဝေရန်ခလင့်ပဌုသည်။
  • တရာသရုံသမျာသတလင် တာဝန်ကျသူမျာသကို ရဟာဖလေပေသသည့် PersonMovementSystem ကို ပေါင်သထည့်ထာသပဌီသ ထိုနေရာ၌ မရဟိပါက လိုအပ်သည့်နေရာသို့ လူမျာသကို ပို့ပေသသည်။

Rust ကို 24 နာရီအတလင်သ ကစာသခဌင်သ- ကိုယ်ရေသကိုယ်တာ ဖလံ့ဖဌိုသတိုသတက်မဟု အတလေ့အကဌုံ

တက်ကဉျဌသခဌုပျ

ဒီရိုသရဟင်သတဲ့ဂိမ်သကို အလုပ်လုပ်ရတာ အရမ်သပျော်တယ်။ ထို့အပဌင်၊ Rust ကို အသုံသပဌု၍ ရေသသာသရခဌင်သအတလက် ဝမ်သမဌောက်မိပါသည်၊၊

  • သံချေသသည် သင်လိုအပ်သောအရာကို ပေသသည်။
  • အလလန်ကောင်သမလန်သောစာရလက်စာတမ်သမျာသပါရဟိသည်။ Rust သည်အတော်လေသပဌေပဌစ်သည်။
  • ညီညလတ်မဟုသည် အေသမဌသည်။
  • C++ တလင် ကျလန်ုပ်မကဌာခဏပဌုလုပ်ခဲ့သော ပုံတူကူသခဌင်သ၊ ကူသယူခဌင်သ သို့မဟုတ် အခဌာသသော အလာသတူလုပ်ဆောင်မဟုမျာသကို သင် အာသကိုသစရာမလိုပါ။
  • ရလေသချယ်စရာမျာသသည် အသုံသပဌုရအလလန်လလယ်ကူပဌီသ အမဟာသမျာသကို ကောင်သစလာကိုင်တလယ်နိုင်သည်;
  • ပရောဂျက်ကို ပဌုစုနိုင်ရင်၊ အချိန်ရဲ့ 99% က အလုပ်လုပ်ပဌီသ ဖဌစ်သင့်သလောက် အတိအကျပါပဲ။ compiler error messages တလေက ကျလန်တော်မဌင်ဖူသသမျဟထဲမဟာ အကောင်သဆုံသလို့ထင်ပါတယ်။

Rust တလင် ဂိမ်သတည်ဆောက်မဟုသည် ယခုမဟ စတင်ပါသည်။ သို့သော် လူတိုင်သအတလက် Rust ကိုဖလင့်ရန် တည်ငဌိမ်ပဌီသ မျဟမျဟတတ ကဌီသမာသသော အသိုက်အဝန်သတစ်ခုရဟိနေပဌီဖဌစ်သည်။ ထို့ကဌောင့်၊ ကျလန်ုပ်သည် ကျလန်ုပ်တို့၏ဘုံအလုပ်၏ရလဒ်မျာသကို စောင့်မျဟော်လျက် ဘာသာစကာသ၏အနာဂတ်ကို အကောင်သမဌင်စိတ်ဖဌင့် ကဌည့်ရဟုပါသည်။

Skillbox မဟ အကဌံပဌုထာသသည်-

source: www.habr.com

မဟတ်ချက် Add