ጎግል የዳርት 2.15 ፕሮግራሚንግ ቋንቋን ለቋል። አያስፈልግም፣ ነገር ግን ተለዋዋጭ ትየባ ከአሁን በኋላ ጥቅም ላይ አይውልም እና መጀመሪያ ላይ የተሰላው አይነት ለተለዋዋጭ ይመደባል እና ከዚያ ጥብቅ ዓይነት ፍተሻ ይተገበራል።
የዳርት ቋንቋ ባህሪዎች
- ለጃቫ ስክሪፕት፣ ሲ እና ጃቫ ፕሮግራመሮች ተፈጥሯዊ የሆነ የተለመደ እና ለመማር ቀላል የሆነ አገባብ።
- ከተንቀሳቃሽ መሳሪያዎች እስከ ኃይለኛ መሳሪያዎች ድረስ ለሁሉም ዘመናዊ የድር አሳሾች እና ለተለያዩ አካባቢዎች ፈጣን ጅምር እና ከፍተኛ አፈጻጸም ማረጋገጥ አገልጋዮች.
- ማቀፊያን ለማንቃት እና ያሉትን ዘዴዎች እና መረጃዎች እንደገና ለመጠቀም ክፍሎችን እና በይነገጾችን የመግለጽ ችሎታ።
- ዓይነቶችን መግለጽ ስህተቶችን ለማረም እና ለመለየት ቀላል ያደርገዋል, ኮዱን የበለጠ ግልጽ እና የበለጠ ለማንበብ ያደርገዋል, እና የሶስተኛ ወገን ገንቢዎች ለማጣራት እና ለመተንተን ቀላል ያደርገዋል.
- ከሚደገፉት ዓይነቶች መካከል፡- የተለያዩ የሃሽ ዓይነቶች፣ ድርድሮች እና ዝርዝሮች፣ ወረፋዎች፣ የቁጥር እና የሕብረቁምፊ አይነቶች፣ የቀን እና የሰዓት አይነቶች፣ መደበኛ መግለጫዎች (RegExp)። የእራስዎን ዓይነቶች መፍጠር ይቻላል.
- ትይዩ ማስፈጸሚያን ለማደራጀት መልእክቶችን በመላክ ከዋናው ሂደት ጋር መስተጋብር በተለየ የማስታወሻ ቦታ ውስጥ ሙሉ በሙሉ የሚፈፀመውን ልዩ ባህሪ ያላቸውን ክፍሎች እንዲጠቀሙ ይመከራል ።
- የትላልቅ የድር ፕሮጀክቶችን ድጋፍ እና ማረም ቀላል የሚያደርግ የቤተ-መጻህፍት አጠቃቀም ድጋፍ። የሶስተኛ ወገን ትግበራዎች እንደ የጋራ ቤተ-መጽሐፍት ሊካተቱ ይችላሉ. አፕሊኬሽኖች ወደ ክፍሎች ሊከፋፈሉ እና የእያንዳንዱ ክፍል እድገት ለተለየ የፕሮግራም አውጪዎች ቡድን ሊመደብ ይችላል።
- በዳርት ቋንቋ ልማትን ለመደገፍ ዝግጁ የሆኑ መሳሪያዎች ስብስብ፣ ተለዋዋጭ የልማት መሳሪያዎችን መተግበር እና በበረራ ላይ በኮድ እርማት ማረም ("አርትዕ-እና-ቀጥል")።
- ኤስዲኬ፣ የመጠጥ ቤት ፓኬጅ አስተዳዳሪ፣ የዳርት_አናላይዘር የማይንቀሳቀስ ኮድ ተንታኝ፣ የቤተ-መጻህፍት ስብስብ፣ የዳርትፓድ አይዲኢ እና ዳርት የነቁ ፕለጊኖች ለIntelliJ IDEA፣ WebStorm፣ Emacs፣ Sublime Text 2 እና Vim የዳርት ልማትን ለማቃለል ቀርቧል።
- ቤተ-መጻሕፍት እና መገልገያ ያላቸው ተጨማሪ ፓኬጆች 22 ሺህ ያህል ፓኬጆች ባለው መጠጥ ቤት ማከማቻ በኩል ይሰራጫሉ።
በዳርት 2.15 መለቀቅ ላይ ቁልፍ ለውጦች፡-
- ከተቆጣጣሪዎች መነጠል ስራዎችን በፍጥነት በትይዩ ለማስፈጸሚያ መሳሪያዎችን ያቀርባል። በባለብዙ ኮር ሲስተሞች፣ Dart Runtime በነባሪ የመተግበሪያ ኮድን በአንድ ሲፒዩ ኮር ያስኬዳል እና እንደ ያልተመሳሰለ I/O፣ ፋይሎችን መጻፍ ወይም የአውታረ መረብ ጥሪዎችን ለማድረግ ሌሎች ኮሮችን ይጠቀማል። ተቆጣጣሪዎቻቸውን በትይዩ ማስፈፀም ለሚፈልጉ አፕሊኬሽኖች ለምሳሌ በበይነገፁ ላይ አኒሜሽን ለመስራት ፣የተለያዩ የኮድ ብሎኮችን ማስጀመር ይቻላል (ገለልተኛ) ፣ አንዳቸው ከሌላው የተነጠሉ እና በሌሎች ሲፒዩ ኮሮች ላይ በተመሳሳይ ጊዜ ከዋናው መተግበሪያ ክር ጋር ተፈፃሚ ይሆናሉ ። . በተመሳሳይ የውሂብ ስብስብ የሚሰራ ኮድ በአንድ ጊዜ ሲተገበር ከሚፈጠሩ ስህተቶች ለመከላከል፣ የሚለዋወጡ ዕቃዎችን በተለያዩ የተገለሉ ብሎኮች ውስጥ ማጋራት የተከለከለ ሲሆን የመልእክት ማስተላለፍ ሞዴል በተቆጣጣሪዎች መካከል መስተጋብር ለመፍጠር ጥቅም ላይ ይውላል።
ዳርት 2.15 አዲስ ፅንሰ-ሀሳብ ያስተዋውቃል - የተለዩ የማገጃ ቡድኖች (የገለልተኛ ቡድኖች) ፣ ይህም የአንድ ቡድን አካል በሆኑ በገለልተኛ ብሎኮች ውስጥ የተለያዩ የውስጥ የውሂብ አወቃቀሮችን የጋራ ተደራሽነት እንዲያደራጁ ያስችልዎታል ፣ ይህም በቡድን ውስጥ ባሉ ተቆጣጣሪዎች መካከል በሚገናኙበት ጊዜ ከአናት በላይ ሊቀንስ ይችላል ። . ለምሳሌ በነባር ቡድን ውስጥ ተጨማሪ ማግለል ብሎክን ማስጀመር 100 እጥፍ ፈጣን ሲሆን የተለየ የማግለል ብሎክ ከመጀመር ከ10-100 እጥፍ ያነሰ ማህደረ ትውስታን ይፈልጋል የፕሮግራም ዳታ አወቃቀሮችን የማስጀመር አስፈላጊነት በመጥፋቱ።
ምንም እንኳን በቡድን ውስጥ ያሉ ማገጃዎች የሚለዋወጡትን ነገሮች በጋራ መጠቀምን የሚከለክሉ ቢሆኑም ቡድኖቹ የጋራ ክምር ማህደረ ትውስታን ይጠቀማሉ ፣ ይህም የነገሮችን ይዘት ከአንድ ብሎክ ወደ ሌላ በፍጥነት ማስተላለፍን በከፍተኛ ሁኔታ ሊያፋጥን ይችላል ። አዲሱ እትም ወደ Isolate.exit() ሲደውሉ የተቆጣጣሪውን ውጤት እንዲያሳልፉ ይፈቅድልዎታል። በተጨማሪም ፣ የመልእክት ማስተላለፊያ ዘዴው ተሻሽሏል - ትናንሽ እና መካከለኛ መልዕክቶች አሁን በግምት 8 ጊዜ ያህል በፍጥነት ይሰራሉ። የ SendPort.send() ጥሪን በመጠቀም በገለልተኛ መካከል ሊተላለፉ የሚችሉ ነገሮች አንዳንድ አይነት ተግባራትን፣ መዝጊያዎችን እና የቁልል መከታተያዎችን ያካትታሉ።
- በሌሎች ነገሮች ውስጥ ወደ ግለሰባዊ ተግባራት አመላካቾችን ለመፍጠር በሚጠቀሙባቸው መሳሪያዎች ውስጥ (እንባ) በኮንስትራክተር ኮድ ውስጥ ተመሳሳይ ጠቋሚዎችን የመፍጠር ገደቦች ተወግደዋል ፣ ይህም በ Flutter ቤተ-መጽሐፍት ላይ በመመስረት መገናኛዎችን ሲገነቡ ጠቃሚ ሊሆን ይችላል። ለምሳሌ፣ በርካታ የጽሁፍ መግብሮችን የሚያካትት የአምድ መግብር ለመፍጠር፣ ".map()" በመደወል ጠቋሚዎችን ወደ Text.new ገንቢው የጽሁፍ ነገር ማስተላለፍ ይችላሉ፡ ክፍል ፍሬውዋይጅ ሀገር አልባ መግብርን ያራዝማል {@override Widget build(BuildContext context) {መመለሻ አምድ (ልጆች፡ ['አፕል'፣ 'ብርቱካን']])። ካርታ (Text.new) .toList()); }
- ከተግባር ጠቋሚዎች አጠቃቀም ጋር የተያያዙ እድሎች ተዘርግተዋል. አጠቃላይ ያልሆነ ዘዴ እና ጠቋሚ ለመፍጠር አጠቃላይ ዘዴዎችን እና የተግባር አመልካቾችን የመጠቀም ችሎታ ታክሏል፡ ቲ መታወቂያ (ቲ እሴት) => ዋጋ; var intId = መታወቂያ ; // በ "int Function(int) intId = id;" ፈንታ በስሪት 2.15 ተፈቅዷል። const fo = id; // ወደ ተግባር መታወቂያ ጠቋሚ። const c1 = fo ;
- የዳርት፡ኮር ቤተ መፃህፍቱ ለኢነምዎች ድጋፍን አሻሽሏል፡ ለምሳሌ፡ አሁን የ‹‹.name›› ዘዴን በመጠቀም ከእያንዳንዱ የቁጥር እሴት የሕብረቁምፊ እሴት ማውጣት ትችላለህ፣ እሴቶችን በስም ምረጥ፣ ወይም ጥንድ እሴቶችን ማዛመድ፡ enum MyEnum {አንድ , ሁለት, ሶስት} ባዶ ዋና () {ህትመት (MyEnum.one.name); // "አንድ" ይታተማል. ማተም (MyEnum.values.byName ('ሁለት') == MyEnum.two); // "እውነት" ይታተማል። የመጨረሻ ካርታ = MyEnum.values.asNameMap (); ማተም (ካርታ ['ሦስት'] == MyEnum.three); // "እውነት" }
- የጠቋሚ መጭመቂያ ቴክኒክ ተግባራዊ ሆኗል፣ ይህም ባለ 32-ቢት የአድራሻ ቦታ ለመቅረጽ በቂ ከሆነ (ከ 4 ጊባ በላይ ማህደረ ትውስታን ሳይጠቀም) በ64-ቢት አካባቢዎች ውስጥ የበለጠ የታመቀ የጠቋሚ ውክልና መጠቀም ያስችላል። ሙከራዎች እንደሚያሳዩት ይህ ማመቻቸት የክምር መጠንን በግምት 10% ሊቀንስ ይችላል። አዲሱ ሁነታ በFlutter SDK ውስጥ በነባሪነት ነቅቷል። Androidእና ለ iOS ወደፊት በሚወጣ እትም ውስጥ እንዲካተት ታቅዷል።
- ዳርት ኤስዲኬ ከዚህ ቀደም በተለየ ጥቅል ውስጥ የቀረቡትን የማረም እና የአፈጻጸም ትንተና (DevTools) መሳሪያዎችን ያካትታል።
- ሚስጥራዊ መረጃ በአጋጣሚ መታተምን ለመከታተል መሳሪያዎች ወደ "ዳርት pub" ትዕዛዝ እና በ pub.dev ጥቅል ማከማቻዎች ላይ ተጨምረዋል፣ ለምሳሌ በጥቅሉ ውስጥ ለተከታታይ የውህደት ስርዓቶች እና የደመና አከባቢዎች ምስክርነቶችን ይተዋል። እንደዚህ አይነት ፍሳሾች ከተገኙ የ"ዳርት መጠጥ ቤት ህትመት" ትዕዛዝ አፈጻጸም በስህተት መልዕክት ይቋረጣል። የውሸት አወንታዊ ነገር ካለ፣ ቼኩን በነጭ ዝርዝር በኩል ማለፍ ይቻላል።
- ቀደም ሲል የታተመውን የጥቅል እትም የመሻር ችሎታ ወደ pub.dev ማከማቻ ታክሏል፣ ለምሳሌ አደገኛ ስህተቶች ወይም ተጋላጭነቶች ከተገኙ። ከዚህ ቀደም ለእንደዚህ አይነት እርማቶች, ልምምዱ የማስተካከያ እትም ማተም ነበር, ነገር ግን በአንዳንድ ሁኔታዎች ነባሩን መሰረዝ እና ተጨማሪ ስርጭቱን በአስቸኳይ ማቆም አስፈላጊ ነው (ለምሳሌ, እርማቱ ገና ዝግጁ ካልሆነ ወይም ሙሉ በሙሉ ከተለቀቀ) ከሙከራ ስሪት ይልቅ በስህተት የታተመ)። ከተሻረ በኋላ ጥቅሉ በ"pub get" እና "pub upgrade" ትዕዛዞች ውስጥ ተለይቶ አይታወቅም እና ቀደም ሲል በጫኑት ስርዓቶች ላይ " pub get" በሚፈፀምበት ጊዜ ልዩ ማስጠንቀቂያ ይሰጣል.
- የማሳያውን ቅደም ተከተል በሚቀይሩ ኮድ ውስጥ የዩኒኮድ ቁምፊዎችን በመጠቀም ለተጋላጭነት (CVE-2021-22567) ተጨማሪ ጥበቃ።
- የ pub.dev oauth2021 የመዳረሻ ቶከኖችን ለሚቀበል የሶስተኛ ወገን አገልጋይ ፓኬጆችን በሚያትሙበት ጊዜ ሌላ pub.dev ተጠቃሚን ለማስመሰል የሚያስችልዎት ቋሚ ተጋላጭነት (CVE-22568-2)። ለምሳሌ፣ ተጋላጭነቱ የውስጥ እና የድርጅት ጥቅል አገልጋዮችን ለማጥቃት ሊያገለግል ይችላል። በ pub.dev ላይ ጥቅሎችን ብቻ የሚያስተናግዱ ገንቢዎች በዚህ ችግር አይነኩም።
በተመሳሳይ ጊዜ፣ የFlutter 2.8 የተጠቃሚ በይነገጽ ልማት ማዕቀፍ ጉልህ የሆነ እትም ቀርቧል፣ ይህም ከ React Native አማራጭ ተደርጎ የሚወሰድ እና በአንድ የኮድ መሰረት ላይ ተመስርተው ለ iOS መድረኮች መተግበሪያዎችን እንዲለቁ ያስችላል። Android, Windows, macOS и Linuxእንዲሁም በአሳሾች ውስጥ ለማስኬድ መተግበሪያዎችን መፍጠር። Flutter የጉግል ማይክሮከርኔል ኦፕሬቲንግ ሲስተም ፉችሲያ የተጠቃሚ በይነገጽ መሰረት ነው። ባለፉት ስድስት ወራት ውስጥ በጉግል ፕሌይ መደብር ውስጥ ያሉት የFlutter 2 መተግበሪያዎች ቁጥር ከ200 ወደ 375 ከፍ ማለቱ ተጠቁሟል፣ ይህም በእጥፍ ሊጨምር ነው።
አብዛኛው የFlutter ኮድ በዳርት ውስጥ ይተገበራል፣ እና መተግበሪያዎችን ለማስኬድ የሩጫ ጊዜ ሞተር በC++ ተጽፏል። አፕሊኬሽኖችን በሚገነቡበት ጊዜ፣ ከFlutter የዳርት ቋንቋ በተጨማሪ፣ ወደ C/C++ ኮድ ለመደወል የዳርት የውጭ ተግባር በይነገጽን መጠቀም ይችላሉ። ለዒላማ መድረኮች መተግበሪያዎችን ወደ ቤተኛ ኮድ በማዘጋጀት ከፍተኛ የሩጫ ጊዜ አፈጻጸም ተገኝቷል። በተመሳሳይ ጊዜ መርሃግብሩ ከእያንዳንዱ ለውጥ በኋላ እንደገና ማጠናቀር አያስፈልገውም - ዳርት በአሂድ ትግበራ ላይ ለውጦችን እንዲያደርጉ እና ውጤቱን ወዲያውኑ እንዲገመግሙ የሚያስችል የሞቀ ዳግም ጭነት ሁነታን ይሰጣል።
በአዲሱ የFlutter ልቀት ላይ ከተደረጉት ለውጦች መካከል የማስጀመሪያ ፍጥነት እና የማህደረ ትውስታ ፍጆታ በሞባይል መሳሪያዎች ላይ ማመቻቸት ተጠቁሟል። መተግበሪያዎችን እንደ ፋየርቤዝ እና ጎግል ክላውድ ካሉ የድጋፍ ሰጪ አገልግሎቶች ጋር ማገናኘት ቀላል ነው። ከጎግል ማስታወቂያ ጋር የመዋሃድ መሳሪያዎች ተረጋግተዋል። ለካሜራዎች እና የድር ተሰኪዎች ድጋፍ በከፍተኛ ሁኔታ ተሻሽሏል። ልማትን ለማቃለል አዳዲስ መሳሪያዎች ቀርበዋል ለምሳሌ፡Firebaseን በመጠቀም ለማረጋገጥ መግብር ተጨምሯል። Flutterን በመጠቀም 2D ጨዋታዎችን ለማዘጋጀት የተነደፈው የፍላም ሞተር ተዘምኗል።
ምንጭ: opennet.ru
