Dart 2.15 ulwimi lwenkqubo kunye nesakhelo seFlutter 2.8 ekhoyo

UGoogle upapashe ukukhutshwa kolwimi lwenkqubo lweDart 2.15, oluqhubeleka nophuhliso lwesebe elihlengahlengiswe ngokugqibeleleyo leDart 2, elahlukileyo kwinguqulelo yoqobo yolwimi lweDart ngokusetyenziswa kochwethezo olomeleleyo (iintlobo zinokuchazwa ngokuzenzekelayo, ngoko ke ukukhankanya iindidi akukho mfuneko, kodwa ukuchwetheza okuguquguqukayo akusasetyenziswa kwaye ekuqaleni kubalwe uhlobo lwabelwa uguqulo kunye nohlobo olungqongqo lokujonga kusetyenziswa emva koko).

Iimpawu zolwimi lweDart:

  • Iqhelekile kwaye kulula ukuyifunda i-syntax, yendalo yeJavaScript, iC kunye nabaprogram beJava.
  • Ukuqinisekisa ukuqaliswa okukhawulezayo kunye nokusebenza okuphezulu kuzo zonke iibhrawuza zewebhu zanamhlanje kunye neentlobo ezahlukeneyo zeemeko, ukusuka kwizixhobo eziphathwayo ukuya kwiiseva ezinamandla.
  • Ukukwazi ukuchaza iiklasi kunye nojongano oluvumela ukufakwa kunye nokusetyenziswa kwakhona kweendlela ezikhoyo kunye neenkcukacha.
  • Ukukhankanya iintlobo kwenza kube lula ukulungisa iimpazamo kunye nokuchonga iimpazamo, kwenza ikhowudi icace kwaye ifundeke ngakumbi, kwaye ilula ukuguqulwa kwayo kunye nohlalutyo ngabaphuhlisi beqela lesithathu.
  • Iindidi ezixhaswayo zibandakanya: iindidi ngeendidi zeehashes, ii-arrays kunye noluhlu, imigca, amanani kunye neendidi zemitya, iindidi zokumisela umhla kunye nexesha, amabinzana aqhelekileyo (RegExp). Kuyenzeka ukuba wenze iintlobo zakho.
  • Ukuququzelela ukuphunyezwa okufanayo, kucetywayo ukusebenzisa iiklasi ezinophawu olulodwa, ikhowudi eyenziwa ngokupheleleyo kwindawo esecaleni kwindawo yememori eyahlukileyo, isebenzisana nenkqubo ephambili ngokuthumela imiyalezo.
  • Inkxaso yokusetyenziswa kwamathala eencwadi enza lula inkxaso kunye nokulungiswa kweeprojekthi ezinkulu zewebhu. Ukuphunyezwa kwemisebenzi yomntu wesithathu kunokuqukwa ngohlobo lwamathala eencwadi ekwabelwana ngawo. Izicelo zinokwahlulwa zibe ngamacandelo kwaye zinikezele uphuhliso lwecandelo ngalinye kwiqela elahlukileyo labadwelisi benkqubo.
  • Iseti yezixhobo esele zenziwe ukuxhasa uphuhliso kulwimi lweDart, kubandakanywa ukuphunyezwa kophuhliso oluguquguqukayo kunye nezixhobo zokulungisa izixhobo kunye nokulungiswa kwekhowudi kwi-fly ("hlela-and-continue").
  • Ukwenza lula uphuhliso kulwimi lweDart, luza kunye ne-SDK, i-pack manager pub, i-static code analyzer dart_analyzer, isethi yamathala eencwadi, indawo edibeneyo yophuhliso i-DartPad kunye ne-Dart-enabled plugins ye-IntelliJ IDEA, i-WebStorm, i-Emacs, i-Sublime Text. 2 kunye neVim.
  • Iipakethe ezongezelelweyo ezinamathala eencwadi kunye nezixhobo ezisetyenziswayo zisasazwa kwindawo yogcino-pub, enamaphakheji angama-22 amawaka.

Utshintsho olukhulu kukukhutshwa kwe-Dart 2.15:

  • Ibonelela ngezixhobo zokwenza imisebenzi enxuseneyo ngokukhawuleza ngokubekwa bodwa kwabaphathi. Kwiinkqubo ezininzi ezingundoqo, ixesha lokuqhuba i-Dart ngokungagqibekanga liqhuba ikhowudi yesicelo kwi-CPU enye kwaye isebenzisa ezinye ii-cores ukwenza imisebenzi yenkqubo efana ne-asynchronous I / O, ukubhala kwiifayile, okanye ukwenza iifowuni zenethiwekhi. Kwizicelo ezifuna ukuphumeza abaphathi bazo ngokunxuseneyo, umzekelo, ukwenza oopopayi kujongano, kuyenzeka ukuba kuqaliswe iibhloko ezahlukeneyo zekhowudi (zodwa), zibekwe zodwa enye kwenye kwaye ziphunyezwe kwezinye iicores ze-CPU ngaxeshanye nomsonto oyintloko wesicelo. . Ukukhusela kwiimpazamo ezivelayo xa ukuphunyezwa kwekhowudi ngaxeshanye kunye neseti efanayo yedatha, ukwabelana ngezinto eziguquguqukayo kwiibhloko ezizimeleyo ezahlukeneyo akuvumelekanga, kwaye imodeli yokudlulisa umyalezo isetyenziselwa ukusebenzisana phakathi kwabaphathi.

    I-Dart 2.15 yazisa ingcamango entsha - amaqela ebloko azimeleyo (amaqela ahlukeneyo), ekuvumela ukuba uququzelele ukufikelela okwabelwanayo kwizakhiwo ezahlukeneyo zedatha yangaphakathi kwiibhloko ezizimeleyo eziyinxalenye yeqela elifanayo, elinokunciphisa kakhulu i-overhead xa usebenzisana phakathi kwabaphathi kwiqela. . Ngokomzekelo, ukuqaliswa kwebhloko eyongezelelweyo eyongezelelweyo kwiqela elikhoyo liphindwe ka-100 ngokukhawuleza kwaye lifuna i-10-100 amaxesha angaphantsi kwememori kunokusungula ibhloko ehlukeneyo, ngenxa yokupheliswa kwesidingo sokuqalisa izakhiwo zedatha yeprogram.

    Ngaphandle kwento yokuba iibhloko zodwa kwiqela zisakwalela ukufikelela okwabelwana ngazo kwizinto eziguquguqukayo, amaqela asebenzisa inkumbulo yemfumba ekwabelwana ngayo, enokuthi ikhawulezise ngokuphawulekayo ukudluliselwa kwezinto ukusuka kwibhloko enye ukuya kwenye ngaphandle kwemfuneko yokwenza imisebenzi yekopi yobutyebi. Uguqulelo olutsha lukwakuvumela ukuba ugqithise isiphumo somphathi xa ufowunela i-Isolate.exit() ukudlulisa idatha kumzali oyedwa ibhloko ngaphandle kokukopa imisebenzi. Ukongeza, indlela yokuhanjiswa kwemiyalezo iye yaphuculwa - imiyalezo emincinci nephakathi ngoku icutshungulwa ngokuphindwe ka-8 ngokukhawuleza. Izinto ezinokuthi zigqithiswe phakathi kokukodwa usebenzisa i-SendPort.send() umnxeba uquka ezinye iindidi zemisebenzi, ukuvalwa, kunye nokulandela istaki.

  • Kwizixhobo zokudala izikhombisi kwimisebenzi yomntu kwezinye izinto (ukukrazula), izithintelo ekudaleni izikhombisi ezifanayo kwikhowudi yomakhi zisusiwe, ezinokuba luncedo xa kwakhiwa i-interfaces esekelwe kwilayibrari yeFlutter. Umzekelo, ukwenza iwijethi yeKholamu ebandakanya iWidget yeTeksti ezininzi, ungabiza ".map()" kwaye ugqithise izikhombisi kuMakhi weText.new wento yokubhaliweyo: iklasi FruitWidget yandisa StatelessWidget {@override Widget build(BuildContext context) { buyisela uKholamu ( abantwana: ['Apple', 'Orenji'].imephu(Umbhalo.entsha).toLuhlu()); }}
  • Izinto ezinokwenzeka eziyanyaniswa nokusetyenziswa kwezikhombisi zokusebenza zandisiwe. Kongezwe amandla okusebenzisa iindlela eziqhelekileyo kunye nezalathisi zokusebenza ukwenza indlela engeyiyo eyesiqhelo kunye nesalathisi: T id (ixabiso leT) => ixabiso; var intId = id ; // ivumelekile kuguqulelo 2.15 endaweni ye "int Function(int) intId = id;" const fo = id; // isalathisi somsebenzi id. const c1 = fo ;
  • I-dart: ilayibrari engundoqo iphucule inkxaso ye-enums, umzekelo, ngoku ungakhupha ixabiso lomtya kwixabiso ngalinye le-enum usebenzisa i ".name" indlela, khetha amaxabiso ngegama, okanye uthelekise izibini zamaxabiso: enum MyEnum { one , zimbini, zintathu } i-void main() {print(MyEnum.one.name); // "enye" ​​iya kuprintwa. print(MyEnum.values.byName('ezimbini') == MyEnum.two); // "inyani" iya kuprintwa. imephu yokugqibela = MyEnum.values.asNameMap(); shicilela(imephu['ezintathu'] == MyEnum.three); // "yinyani". }
  • Ubuchule bokunyanzeliswa kwesalathisi buphunyeziwe obuvumela ukusetyenziswa kokubonakaliswa okuhlangeneyo kwezikhombisi kwiindawo ze-64-bit ukuba indawo ye-32-bit idilesi yanele ukujongana (akukho ngaphezu kwe-4 GB yememori esetyenzisiweyo). Uvavanyo lubonise ukuba ulungiselelo olunjalo lwenza kube lula ukunciphisa ubungakanani bemfumba malunga ne-10%. Kwi-Flutter SDK, imo entsha sele inikwe amandla kwi-Android ngokuzenzekelayo, kwaye icwangciswe ukuba inikwe amandla kwi-iOS ekukhutshweni kwexesha elizayo.
  • I-Dart SDK ibandakanya izixhobo zokulungisa iimpazamo kunye nohlalutyo lokusebenza (i-DevTools), ezazinikezelwe ngaphambili kwiphakheji eyahlukileyo.
  • Izixhobo zongezwa kumyalelo we "dart pub" kunye ne-pub.dev iphakheji yokugcina ukulandelela ukupapashwa ngengozi kolwazi oluyimfihlo, umzekelo, ukushiya iziqinisekiso zeenkqubo eziqhubekayo zokudibanisa kunye neendawo zefu ngaphakathi kwephakheji. Ukuba ukuvuza okunjalo kufunyenwe, ukuphunyezwa komyalelo othi "dart pub publish" kuya kuphazamiseka ngomyalezo wemposiso. Ukuba bekukho ukuchaneka okungeyonyani, kuyenzeka ukuba kudlule itshekhi kuluhlu olumhlophe.
  • Ukukwazi ukurhoxisa inguqulelo esele ipapashiwe yephakheji yongezwe kwindawo yokugcina i-pub.dev, umzekelo, ukuba iimpazamo ezinobungozi okanye ubuthathaka bufunyenwe. Ngaphambili, ukwenzela izilungiso ezinjalo, umkhuba wawukupapasha uguqulelo lolungiso, kodwa kwezinye iimeko kuyimfuneko ukurhoxisa ukukhutshwa okukhoyo kwaye ngokukhawuleza uyeke usasazo olongezelelekileyo (umzekelo, ukuba ulungiso alukalungi okanye ukuba ukukhutshwa okupheleleyo bekukuko. ipapashwe ngempazamo endaweni yovavanyo). Emva kokurhoxiswa, iphakheji ayisachongwa kwi-"pub get" kunye nemiyalelo "ye-pub upgrade", kwaye kwiinkqubo esele ziyifakile, isilumkiso esikhethekileyo sikhutshwa kwixesha elizayo "i-pub get" isenziwa.
  • Ukukhuselwa okongeziweyo kumngcipheko (CVE-2021-22567) obangelwa ukusetyenziswa kweempawu ze-unicode kwikhowudi etshintsha umyalelo wokubonisa.
  • Kulungiswe ubuthathaka (CVE-2021-22568) ekuvumela ukuba uzenze omnye umsebenzisi we-pub.dev xa upapasha iipakethe kumncedisi womntu wesithathu owamkela iithokheni zokufikelela kwi-pub.dev oauth2. Umzekelo, ubuthathaka bunokusetyenziswa ukuhlasela iiseva zephakheji zangaphakathi kunye nezamashishini. Abaphuhlisi ababamba iipakethe kuphela kwi-pub.dev abachatshazelwa ngulo mba.

Kwangaxeshanye, ukukhutshwa okubalulekileyo kwesakhelo sojongano lomsebenzisi iFlutter 2.8 yaboniswa, ethathwa njengenye indlela yeReact Native kwaye ivumela, ngokusekwe kwisiseko sekhowudi enye, ukukhulula izicelo ze-iOS, Android, Windows, macOS kunye Amaqonga eLinux, kunye nokudala usetyenziso oluza kuqhutywa kwizikhangeli. Iqokobhe lesiko leFuchsia microkernel inkqubo yokusebenza ephuhliswe nguGoogle yakhiwe kwisiseko seFlutter. Kuphawulwe ukuba kwiinyanga ezintandathu ezidlulileyo, inani le-Flutter 2 izicelo kwi-Google Play Store liye landa ukusuka kwi-200 ukuya kwi-375 lamawaka, i.e. phantse kabini.

Inxalenye ephambili yekhowudi ye-Flutter iphunyezwe ngolwimi lwe-Dart, kwaye injini ye-runtime yokuqhuba izicelo ibhalwe kwi-C ++. Xa uphuhlisa izicelo, ukongeza kulwimi lweDart lweFlutter, ungasebenzisa ujongano lweDart Foreign Function ukufowunela ikhowudi yeC/C++. Ukusebenza okuphezulu kufezekiswa ngokuqulunqa izicelo kwikhowudi yemveli yamaqonga ekujoliswe kuwo. Kule meko, inkqubo ayifuni ukuphinda iphinde ihlaziywe emva kotshintsho ngalunye - i-Dart ibonelela ngemowudi yokulayisha kwakhona eshushu ekuvumela ukuba wenze utshintsho kwisicelo esisebenzayo kwaye uvavanye ngokukhawuleza umphumo.

Phakathi kweenguqu ekukhutshweni okutsha kweFlutter, ukulungiswa kwesantya sokuqalisa kunye nokusetyenziswa kwememori kwizixhobo eziphathwayo kuphawulwe. Kulula ukuqhagamshela usetyenziso kwiinkonzo zangasemva ezinje ngeFirebase kunye neLifu likaGoogle. Izixhobo zokudityaniswa neentengiso zikaGoogle zizinzisiwe. Inkxaso yeekhamera kunye neeplagi zewebhu ziphuculwe kakhulu. Izixhobo ezitsha ziye zacetywa ukwenza lula uphuhliso, umzekelo, iwijethi yongezwe ukwenzela ukuqinisekiswa kusetyenziswa iFirebase. Injini yeFlame, eyenzelwe ukuphuhlisa imidlalo ye-2D isebenzisa iFlutter, ihlaziywe.

umthombo: opennet.ru

Yongeza izimvo