ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။

ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။

ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။

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

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

လုပ်ငန်သ

ကျလန်ုပ်တို့၏ကုမ္ပဏီသည် လက်ရဟိတလင် ထုတ်ကုန်အသစ်ဖဌစ်သော Docs Security Suite (DSS) ကို တက်ကဌလစလာ ဖော်ဆောင်လျက်ရဟိသည်။ ဆာဗာအပိုင်သကို .Net Core ဖဌင့် ရေသသာသထာသပဌီသ Entity Framework Core ကို DBMS အဖဌစ် အသုံသပဌုပါသည်။ အက်ပလီကေသရဟင်သတစ်ခုကို ဒီဇိုင်သဆလဲသည့်အခါ၊ ကျလန်ုပ်တို့သည် Code First ချဉ်သကပ်မဟုကို အသုံသပဌုသည်။

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

DSS ၏ ယခင်မျိုသဆက်သည် ရလဟေ့ပဌောင်သနေထိုင်မဟုစီမံခန့်ခလဲမဟုစနစ်အဖဌစ် ဂန္ထဝင် Entity Framework Migrations (EF 6) ကို အသုံသပဌုခဲ့သည်။ သို့သော်လည်သ၊ အချို့သော တိုင်ကဌာသမဟုမျာသသည် ၎င်သကိုဆန့်ကျင်ပဌီသ EF သည် ဗာသရဟင်သပဋိပက္ခမျာသကို ဖဌေရဟင်သရန် မဟန်ကန်သောချဉ်သကပ်မဟု မရဟိခဌင်သကဌောင့်ဖဌစ်သည်။ ပံ့ပိုသမဟု၏တစ်စိတ်တစ်ပိုင်သအဖဌစ် ချို့ယလင်သချက်မျာသကို ပဌုပဌင်သည့်အခါ ကအချက်က ကျလန်ုပ်တို့ကို စိတ်ဆိုသဆဲဖဌစ်သောကဌောင့် အခဌာသရလေသချယ်စရာမျာသကို စဉ်သစာသရန် ဆုံသဖဌတ်ခဲ့သည်။

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

  1. အမျိုသမျိုသသော DBMS မျာသအတလက်ပံ့ပိုသမဟု။ MS SQL Server၊ PostgreSQL၊ Oracle လိုအပ်သော်လည်သ အခဌာသအသုံသပဌုရန် ဖဌစ်နိုင်ချေရဟိသည်။
  2. ORM နဟင့်အလုပ်လုပ်သည်။ အစပိုင်သတလင် EF Core ကို အသုံသပဌုရန် စီစဉ်ထာသသော်လည်သ ဒီဇိုင်သအဆင့်တလင် အခဌာသ ORM မျာသကို ထည့်သလင်သစဉ်သစာသရန် အသင့်ဖဌစ်နေပါပဌီ။
  3. ရလဟေ့ပဌောင်သမဟုမျာသ၏ အလိုအလျောက်မျိုသဆက်။ Code ၏ဖလံ့ဖဌိုသတိုသတက်မဟုကိုထည့်သလင်သစဉ်သစာသခဌင်သဖဌင့်ပထမညသစလာကျလန်ုပ်သည် "လက်ရေသပါ" ရလဟေ့ပဌောင်သခဌင်သမျာသကိုရဟောင်ရဟာသလိုသည်
  4. ဗာသရဟင်သကလဲမျာသ။ ဖဌန့်ဝေထာသသော ဖလံ့ဖဌိုသတိုသတက်မဟုပတ်ဝန်သကျင်တလင်၊ ပေါင်သစည်သသောအခါ၊ EF Core သည် ပဋိပက္ခမျာသကို ခံစာသရနိုင်သည်။ အပလီကေသရဟင်သ၏ မတူညီသော အစိတ်အပိုင်သမျာသကို မတူညီသော developer မျာသက ဖန်တီသထာသသောကဌောင့် ၎င်သသည် သိသာထင်ရဟာသသော ပဌဿနာတစ်ခု ဖဌစ်လာသောကဌောင့် တစ်ခုစီအတလက် အချိန်မျာသစလာ သုံသစလဲရမည်ဖဌစ်ပါသည်။
  5. အဆင့်မဌင့်စာရလက်စာတမ်သမျာသနဟင့် ပံ့ပိုသမဟု။ ကတလင်၊ ကျလန်ုပ်တို့ထင်သည်၊ ရဟင်သပဌရန်မလိုအပ်ပါ။
  6. အခမဲ့။ စံသတ်မဟတ်ချက်သည် အခဌေအနေအရဖဌစ်သည်၊ စနစ်မျာသသည် အလလန်စျေသကဌီသသည် သို့မဟုတ် စျေသကဌီသသည်မဟုတ်သော်လည်သ အဆင်ပဌေရန်အတလက် စံနမူနာဖဌစ်သောကဌောင့် ကျလန်ုပ်တို့လည်သ ထည့်သလင်သစဉ်သစာသရန် အသင့်ဖဌစ်နေပဌီဖဌစ်သည်။

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

  1. EF Core ပဌောင်သရလဟေ့မဟုမျာသ
  2. DBup
  3. အဝိုင်သအိမ်E
  4. ThinkingHome.Migrator
  5. ကျလမ်သကျင်သော ရလဟေ့ပဌောင်သနေထိုင်သူ

အခု နည်သနည်သအသေသစိတ်ပါ။

ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။
EntityFramework Core ရလဟေ့ပဌောင်သမဟုမျာသ

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

ထို့ကဌောင့် EF Core အတလက် အာသသာချက်မျာသကို မီသမောင်သထိုသပဌသည်-

  • ရုရဟဘာသာစကာသအပါအဝင်၊ Microsoft ၏ပံ့ပိုသကူညီမဟု၊ စာရလက်စာတမ်သမျာသ
  • CodeFirst ကို အခဌေခံ၍ ရလဟေ့ပဌောင်သမဟုမျာသ၏ အလိုအလျောက် မျိုသဆက်
  • EF 6 နဟင့် နဟိုင်သယဟဉ်ပါက EF Core သည် ဒေတာဘေ့စ်၏လျဟပ်တစ်ပဌက်ပုံတစ်ပုံကို မသိမ်သဆည်သတော့ပါ။ Code တလင် ပထမညသစလာ EF Core နဟင့် အလုပ်လုပ်သောအခါ၊ ဒေတာဘေ့စ်ကို အသုံသပဌုရန် မလိုအပ်တော့ပါ။
  • ကျလန်ုပ်တို့သည် Code First မဟ ကခုန်နေသောကဌောင့် လိုအပ်သော ဒေတာဝင်ရောက်ခလင့်ပေသသူအာသလုံသထံ တစ်ကဌိမ် ရလဟေ့ပဌောင်သခဌင်သ ပဌုလုပ်နိုင်သည်။
  • ဝန်ဆောင်မဟုပေသသူမျာသနဟင့်ပတ်သက်၍ PostgreSQL ကို ပံ့ပိုသထာသပဌီသ၊ Oracle ကို ပံ့ပိုသထာသသည်၊ စသည်တို့နဟင့် MS SQL Server ပင် 

ပဌီသတော့ အာသနည်သချက်တလေလည်သ

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

DbUp

ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။
dbup.github.io

DbUp သည် NuGet မဟထည့်သလင်သထာသသည့် .NET စာကဌည့်တိုက်တစ်ခုဖဌစ်ပဌီသ SQL Server သို့ ပဌောင်သလဲမဟုမျာသကို တလန်သအာသပေသကူညီသည်။ ၎င်သသည် မည်သည့်ပဌောင်သလဲမဟု script မျာသကိုလုပ်ဆောင်ပဌီသပဌီဖဌစ်သည်ကိုခဌေရာခံပဌီသဒေတာဘေ့စ်ကိုမလမ်သမံရန်လိုအပ်သောမျာသကိုလုပ်ဆောင်သည်။ စာကဌည့်တိုက်သည် ASP.NET ရဟိ open source ဘလော့ဂ်ရေသအင်ဂျင်အတလက် ပရောဂျက်တစ်ခုမဟ ကဌီသထလာသလာပဌီသ MIT လိုင်စင်အောက်တလင်ရဟိပဌီသ ကုဒ်သည် GitHub တလင်ရဟိသည်။ ရလဟေ့ပဌောင်သခဌင်သမျာသကို T-SQL ဖဌင့် ဖော်ပဌထာသပါသည်။

အာသသာချက်တလေက ဘာတလေလဲ။

  • DBMS အမျာသအပဌာသ (MS SQL Server၊ PstgreSQL၊ MySQL) အတလက် ပံ့ပိုသမဟု
  • script မျာသကို T-SQL ဖဌင့်ရေသသာသထာသသောကဌောင့်၊ ၎င်သတို့သည်အတော်လေသရိုသရဟင်သပါသည်။
  • ပဋိပက္ခမျာသကို SQL သုံသပဌီသ ဖဌေရဟင်သသည်။

အာသနည်သချက်မျာသ-

  • ပံ့ပိုသပေသထာသသည့် DBMS မျိုသစုံဖဌင့် Oracle သည် ၎င်သတို့ထဲမဟ တစ်ခုမဟုတ်ပေ။
  • ORM နဟင့် မတုံ့ပဌန်ပါ။
  • T-SQL script မျာသကို လက်ဖဌင့်ရေသခဌင်သသည် ကျလန်ုပ်တို့ ရည်ရလယ်ထာသသည့်အရာမဟုတ်ပါ။
  • SQL scripts မျာသရေသသာသရာတလင် မလိုအပ်သော်လည်သ စာရလက်စာတမ်သမျာသနဟင့် အသိုက်အဝန်သသည် တူညီပါသည်။

အဝိုင်သအိမ်E

ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။
github.com/chucknorris/roundhouse

ယခင်ဗာသရဟင်သကဲ့သို့ Apache 2.0 လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသော ကရလဟေ့ပဌောင်သခဌင်သစီမံခန့်ခလဲမဟုတူသလ်သည် T-SQL ရလဟေ့ပဌောင်သခဌင်သအင်ဂျင်ပေါ်တလင် လုပ်ဆောင်သည်။ ထင်ရဟာသသည်မဟာ၊ developer မျာသသည် သက်တောင့်သက်သာရဟိသော ဖလံ့ဖဌိုသတိုသတက်မဟုလုပ်ငန်သစဉ်ကို ဖန်တီသခဌင်သထက် DBMS ပံ့ပိုသမဟုဆိုင်ရာ နည်သပညာဆိုင်ရာ ပဌဿနာမျာသကို ညသစာသပေသဖဌေရဟင်သပေသခဲ့သည်။

အပဌစ်တလေ:

  • လိုအပ်သော DBMS (Oracle အပါအဝင်) ကိုပံ့ပိုသသည်

cons:

  • Oracle (ကျလန်ုပ်တို့နဟင့်မသက်ဆိုင်သော Access ကဲ့သို့) .NET Core တလင်သာ .NET Full Framework တလင်သာ ပံ့ပိုသမထာသပါ။
  • ORM နဟင့် အလုပ်မလုပ်ပါ။
  • ယခင်တူသလ်ထက်စာလျဟင် စာရလက်စာတမ်သနည်သပါသသည်။
  • တဖန် - ရလဟေ့ပဌောင်သခဌင်သကို scripts မျာသဖဌင့်ရေသသာသပါသည်။

ThinkingHome.Migrator

ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။

MIT လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသော .NET Core ပလပ်ဖောင်သသို့ ဗာသရဟင်သပဌောင်သထာသသော ဒေတာဘေ့စ်ပုံစံ ရလဟေ့ပဌောင်သခဌင်သအတလက် ကိရိယာတစ်ခု။ developer ကိုယ်တိုင်က ၎င်သ၏နောက်ဆုံသထလက်ဗာသရဟင်သအကဌောင်သကို လလန်ခဲ့သော တစ်နဟစ်နီသပါသက ရေသသာသခဲ့သည်။.

အပဌစ်တလေ:

  • .NET Core အတလက် ဒီဇိုင်သထုတ်ထာသသည်။
  • ရလဟေ့ပဌောင်သခဌင်သ၏ အကိုင်သအခက် အစီအစဥ်ကို အကောင်အထည်ဖော်ခဲ့သည်။
  • ရလဟေ့ပဌောင်သခဌင်သမဟတ်တမ်သကို အကောင်အထည်ဖော်ခဲ့သည်။

cons:

  • လလန်ခဲ့သော တစ်နဟစ်က နောက်ဆုံသ အပ်ဒိတ်လုပ်ခဲ့သည်။ ပရောဂျက်ကို ပံ့ပိုသမထာသကဌောင်သ ထင်ရဟာသသည်။
  • Oracle မဟ မပံ့ပိုသပါ (ဆောင်သပါသတလင် ၎င်သသည် .NET Core အတလက် တည်ငဌိမ်သော အကောင်အထည်ဖော်မဟု မရဟိခဌင်သကဌောင့်ဖဌစ်သည် - သို့သော် ၎င်သသည် လလန်ခဲ့သော တစ်နဟစ်ခန့်ကဖဌစ်သည်)
  • အလိုအလျောက် ရလဟေ့ပဌောင်သခဌင်သ မျိုသဆက် မရဟိပါ။

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

ကျလမ်သကျင်သော ရလဟေ့ပဌောင်သနေထိုင်သူ

ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။
github.com/fluentmigrator/fluentmigrator

ပရိသတ်မျာသစလာဖဌင့် ရေပန်သအစာသဆုံသ ရလဟေ့ပဌောင်သခဌင်သကိရိယာ။ Apache 2.0 လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။ ဖော်ပဌချက်တလင်ဖော်ပဌထာသသည့်အတိုင်သ၊ ၎င်သသည် Ruby on Rails Migrations နဟင့်ဆင်တူသော .NET အတလက် ရလဟေ့ပဌောင်သခဌင်သမူဘောင်တစ်ခုဖဌစ်သည်။ ဒေတာဘေ့စ်စခီမာသို့ ပဌောင်သလဲမဟုမျာသကို C# အတန်သမျာသတလင် ဖော်ပဌထာသပါသည်။

ကနေရာတလင် အာသသာချက်မျာသရဟိပါသည်။

  • လိုအပ်သော DBMS အတလက် ပံ့ပိုသမဟု
  • .NET Core ပံ့ပိုသမဟု
  • ကဌီသမာသသော ဖလံ့ဖဌိုသတိုသတက်သော အသိုက်အဝန်သ
  • ရလဟေ့ပဌောင်သအခဌေချသူမျာသကဌာသ ပဋိပက္ခမျာသကို ဆက်တိုက်ဖဌေရဟင်သသည်—ရလဟေ့ပဌောင်သအခဌေချမဟု၏အမိန့်ကို သတ်မဟတ်ထာသသည်။ ထို့အပဌင်၊ အဖလဲ့အစည်သတစ်ခုတလင် ပဋိပက္ခတစ်ခုဖဌစ်ပလာသပါက၊ ကုဒ်ကို ပေါင်သစည်သသောအခါ၊ ၎င်သကို အခဌာသကုဒ်၏အခဌာသနည်သလမ်သအတိုင်သ ဖဌေရဟင်သသည်
  • အောင်မဌင်စလာ ရလဟေ့ပဌောင်သပဌီသနောက် လုပ်ဆောင်သည့် ပရိုဖိုင်မျာသ ရဟိပါသည်။ ၎င်သတို့သည် ဝန်ဆောင်မဟုလုပ်ငန်သဆောင်တာမျာသကို သယ်ဆောင်နိုင်သည်။နောက်ဆုံသမလမ်သမံမဟုသည် လလန်ခဲ့သောတစ်လကဖဌစ်ပဌီသ၊ ဆိုလိုသည်မဟာ ပရောဂျက်သည် အသက်ရဟင်နေပါသည်။

minuses မျာသအတလက်၊ ၎င်သတို့မဟာ-

  • အလိုအလျောက် ရလဟေ့ပဌောင်သခဌင်သ မျိုသဆက် မရဟိပါ။
  • EF မော်ဒယ်မျာသနဟင့် ချိတ်ဆက်မဟုမရဟိပါ။
  • ဒေတာဘေ့စ် လျဟပ်တစ်ပဌက် ရိုက်ချက်မျာသ မရဟိပါ။

ငါတို့ရဲ့ရလေသချယ်မဟုကဘာလဲ။

ဒေတာရလဟေ့ပဌောင်သခဌင်သစနစ်မျာသကို နဟိုင်သယဟဉ်ခဌင်သနဟင့် ရလေသချယ်ခဌင်သ။

အပဌင်သအထန် ငဌင်သခုံမဟုမျာသသည် ကန့်သတ်ချက်မျာသ နဟစ်ခုကို လဟည့်ပတ်နေသည် - အလိုအလျောက် ရလဟေ့ပဌောင်သမဟုမျာသ နဟင့် ပဋိပက္ခမျာသကို မဟန်ကန်စလာ ဖဌေရဟင်သခဌင်သ။ အခဌာသအချက်မျာသ သည် အလလန်ကဌောက်စရာကောင်သသည်။ ရလဒ်အနေဖဌင့် ဆလေသနလေသမဟုရလဒ်မျာသအပေါ်အခဌေခံ၍ အဖလဲ့သည် ပရောဂျက်အသစ်တလင် Fluent Migrator ကိုအသုံသပဌုရန် ဆုံသဖဌတ်ခဲ့သည်။ အဘယ်ကဌောင့်ဆိုသော် ပဋိပက္ခမျာသကို ဖဌေရဟင်သခဌင်သသည် အနာဂတ်တလင် မျာသစလာသော အကျိုသကျေသဇူသမျာသကို ဆောင်ကဌဉ်သပေသလိမ့်မည်။

တလေ့ရဟိချက်မျာသ

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

source: www.habr.com

မဟတ်ချက် Add