ډارټ 2.15 د پروګرام کولو ژبه او د فلټر 2.8 چوکاټ شتون لري

ګوګل د ډارټ 2.15 پروګرام کولو ژبه خپره کړې، کوم چې د ډارټ 2 په بنسټیز ډول بیا ډیزاین شوي څانګې پراختیا ته دوام ورکوي، کوم چې د قوي جامد ټایپ کولو په کارولو سره د ډارټ ژبې اصلي نسخه سره توپیر لري (ډولونه په اتوماتيک ډول اټکل کیدی شي، نو د ډولونو مشخص کول اړین ندي، مګر متحرک ټایپ کول نور نه کارول کیږي او په پیل کې حساب شوي ډول متغیر ته ټاکل شوی او د سخت ډول چک کول وروسته پلي کیږي).

د ډارټ ژبې ځانګړتیاوې:

  • پیژندل شوی او د زده کولو لپاره اسانه ترکیب، د جاواسکریپټ، C او جاوا پروګرام کونکو لپاره طبیعي.
  • د ټولو عصري ویب براوزرونو او مختلف ډوله چاپیریالونو لپاره د ګړندي لانچ او لوړ فعالیت تضمین کول ، د پورټ ایبل وسیلو څخه تر ځواکمنو سرورونو پورې.
  • د ټولګیو او انٹرفیسونو تعریف کولو وړتیا چې د موجوده میتودونو او ډیټا انکاپسولیشن او بیا کارولو ته اجازه ورکوي.
  • د ډولونو مشخص کول د غلطیو ډیبګ او پیژندل اسانه کوي ، کوډ روښانه او ډیر لوستلو وړ کوي ، او د دریمې ډلې پراختیا کونکو لخوا د دې ترمیم او تحلیل ساده کوي.
  • ملاتړ شوي ډولونه عبارت دي له: د هش مختلف ډولونه، سرې او لیستونه، کتارونه، شمیرې او تار ډولونه، د نیټې او وخت ټاکلو ډولونه، منظم بیانونه (RegExp). دا ممکنه ده چې خپل ډولونه جوړ کړئ.
  • د موازي اجرا کولو تنظیم کولو لپاره ، دا وړاندیز کیږي چې د جلا کولو ځانګړتیا سره ټولګي وکاروئ ، د کوم کوډ په بشپړ ډول په جلا حافظه کې په جلا ځای کې پلي کیږي ، د پیغامونو لیږلو له اصلي پروسې سره تعامل کوي.
  • د کتابتونونو کارولو لپاره ملاتړ چې د لوی ویب پروژو ملاتړ او ډیبګ کول اسانه کوي. د دندو دریم اړخ پلي کول د ګډ کتابتونونو په شکل کې شامل کیدی شي. غوښتنلیکونه په برخو ویشل کیدی شي او د هرې برخې پراختیا د پروګرامرانو جلا ټیم ته وسپارل شي.
  • په ډارټ ژبه کې د پراختیا مالتړ لپاره د چمتو شوي وسیلو یوه ټولګه، په شمول د متحرک پراختیا پلي کول او د کوډ سمون سره د ډیبګ کولو وسیلو ("ایډیټ او دوام").
  • په ډارټ ژبه کې د پراختیا ساده کولو لپاره، دا د SDK سره راځي، د بسته بندي مدیر پب، د جامد کوډ شنونکي dart_analyzer، د کتابتونونو سیټ، د انټیلیجی IDEA، WebStorm، Emacs، Sublime Text لپاره د مدغم پرمختیا چاپیریال DartPad او Dart-enabled plugins. 2 او ویم.
  • د کتابتونونو او اسانتیاو سره اضافي کڅوړې د پب ذخیره له لارې توزیع کیږي ، کوم چې شاوخوا 22 زره کڅوړې لري.

د ډارټ 2.15 خوشې کولو کې لوی بدلونونه:

  • د هینډلرانو جلا کولو سره د دندو ګړندي موازي اجرا کولو لپاره وسیلې چمتو کوي. په ملټي کور سیسټمونو کې ، د ډیفالټ ډارټ رن ټایم په یو CPU کور کې د غوښتنلیک کوډ چلوي او د سیسټم دندو ترسره کولو لپاره نور کورونه کاروي لکه غیر متناسب I/O ، فایلونو ته لیکل ، یا د شبکې تلیفونونه. د غوښتنلیکونو لپاره چې اړتیا لري خپل هینډلرونه په موازي ډول اجرا کړي ، د مثال په توګه ، په انٹرفیس کې د انیمیشن وړاندې کولو لپاره ، دا ممکنه ده چې د کوډ جلا بلاکونه پیل کړئ (جلا کول) ، له یو بل څخه جلا شوي او په نورو CPU کورونو کې په ورته وخت کې د اصلي غوښتنلیک تار سره اجرا شوي. . د غلطیو په وړاندې د ساتنې لپاره چې رامینځته کیږي کله چې د ورته ډیټا سیټ سره د کوډ اجرا کولو په وخت کې کار کوي ، په مختلف جلا بلاکونو کې د بدلون وړ شیانو شریکول منع دي ، او د پیغام لیږدونکي ماډل د لاسوند کونکو ترمینځ تعامل لپاره کارول کیږي.

    ډارټ 2.15 یو نوی مفهوم معرفي کوي - جلا شوي بلاک ګروپونه (جلا ګروپونه) ، کوم چې تاسو ته اجازه درکوي په جلا بلاکونو کې مختلف داخلي ډیټا جوړښتونو ته ګډ لاسرسي تنظیم کړئ چې د ورته ګروپ برخه دي ، کوم چې کولی شي د پام وړ سر ټیټ کړي کله چې په ګروپ کې د لاسوندونو ترمینځ متقابل عمل وکړي. . د مثال په توګه، په موجوده ګروپ کې د اضافي جلا جلا بلاک پیل کول 100 ځله ګړندي دي او د جلا جلا جلا بلاک پیل کولو په پرتله 10-100 ځله لږ حافظې ته اړتیا لري ، د برنامې ډیټا جوړښتونو پیل کولو اړتیا له مینځه وړو له امله.

    د دې حقیقت سره سره چې په یوه ګروپ کې جلا بلاکونه لاهم د بدلون وړ شیانو ته ګډ لاسرسی منع کوي ، ډلې د ګډې هپ حافظه کاروي ، کوم چې کولی شي د پام وړ له یوه بلاک څخه بل بلاک ته د شیانو لیږد ګړندی کړي پرته لدې چې د سرچینې پراخه کاپي عملیات ترسره کړي. نوې نسخه تاسو ته اجازه درکوي د هینډلر پایله تیر کړئ کله چې Isolate.exit() ته زنګ ووهئ ترڅو د کاپي عملیاتو پرته د والدین جلا جلا بلاک ته ډیټا لیږدولو لپاره. سربیره پردې، د پیغام لیږد میکانیزم اصلاح شوی - کوچني او منځني پیغامونه اوس نږدې 8 ځله ګړندي پروسس کیږي. هغه څیزونه چې د SendPort.send() کال په کارولو سره د جلا کیدو ترمینځ تیریدلی شي ځینې ډولونه افعال ، بندونه او د سټیک ټریس شامل دي.

  • په نورو شیانو کې انفرادي افعالاتو ته د پوائنټرونو رامینځته کولو وسیلو کې (ټیر آف) ، په جوړونکي کوډ کې د ورته پوائنټرونو رامینځته کولو محدودیتونه لرې شوي ، کوم چې د فلټر کتابتون پراساس د انٹرفیسونو رامینځته کولو کې ګټور کیدی شي. د مثال په توګه، د کالم ویجټ رامینځته کولو لپاره چې ډیری متن ویجټونه پکې شامل دي، تاسو کولی شئ ".map()" ته زنګ ووهئ او د متن څیز د Text.new جوړونکي ته ټکي واستوئ: کلاس FruitWidget د Stateless Widget { @override Widget build(BuildContext context) { ستنیدنه کالم } }
  • د فنکشن پوائنټرونو کارولو سره تړلي امکانات پراخ شوي. د غیر عام میتود او پوائنټر رامینځته کولو لپاره د عمومي میتودونو او فنکشن پوائنټرونو کارولو وړتیا اضافه کړه: T id (T value) => ارزښت var intId = id ; // د "int Function(int) intId = id؛" پرځای په 2.15 نسخه کې اجازه ورکړل شوې const fo = id; // د فعالیت ID ته اشاره. const c1 = fo ;
  • dart:core کتابتون د enums لپاره ملاتړ ښه کړی، د بیلګې په توګه، تاسو اوس کولی شئ د ".name" میتود په کارولو سره د هر اینوم ارزښت څخه د تار ارزښت تولید کړئ، د نوم په واسطه ارزښتونه وټاکئ، یا د ارزښتونو جوړه جوړه کړئ: enum MyEnum { one , دوه، درې } باطل اصلي() { چاپ(MyEnum.one.name); // "یو" به چاپ شي. چاپ(MyEnum.values.byName('two') == MyEnum.two؛ // "ریښتیا" به چاپ شي. وروستۍ نقشه = MyEnum.values.asNameMap(); چاپ(نقشه['درې'] == MyEnum.three); // "ریښتیا". }
  • د پوائنټر کمپریشن تخنیک پلي شوی چې په 64-bit چاپیریال کې د پوائنټرونو ډیر کمپیکٹ نمایش کارولو ته اجازه ورکوي که چیرې د 32-bit پته ځای د پته کولو لپاره کافي وي (د 4 GB څخه ډیر حافظه نه کارول کیږي). ازموینو ښودلې چې دا ډول اصلاح دا ممکنه کوي چې د ټوټو اندازه نږدې 10٪ کم کړي. په فلټر SDK کې ، نوی حالت دمخه د ډیفالټ لخوا د Android لپاره فعال شوی ، او پلان شوی چې په راتلونکي ریلیز کې د iOS لپاره فعال شي.
  • په ډارټ SDK کې د ډیبګ کولو او فعالیت تحلیل (DevTools) لپاره وسیلې شاملې دي ، کوم چې دمخه په جلا کڅوړه کې چمتو شوي.
  • وسیلې د "dart pub" کمانډ او pub.dev کڅوړې ذخیره کې اضافه شوي ترڅو د محرم معلوماتو ناڅاپي خپرونه تعقیب کړي ، د مثال په توګه ، د کڅوړې دننه د دوامداره ادغام سیسټمونو او کلاوډ چاپیریالونو لپاره اعتبار پریښودل. که دا ډول لیکونه وموندل شي ، د "ډارټ پب خپریدو" کمانډ اجرا کول به د خطا پیغام سره مداخله وکړي. که چیرې غلط مثبت وي، نو دا ممکنه ده چې د سپینې لیست له لارې چک له لارې تیر کړئ.
  • د یوې کڅوړې دمخه خپره شوې نسخه لغوه کولو وړتیا د pub.dev ذخیره کې اضافه شوې ، د مثال په توګه ، که خطرناک خطاګانې یا زیانونه وموندل شي. پخوا، د دې ډول اصالحاتو لپاره، عمل د اصلاح کولو نسخه خپرول وو، مګر په ځینو حاالتو کې دا اړینه وه چې موجوده خپرونه لغوه کړي او په چټکۍ سره د هغې نور توزیع ودروي (د مثال په توګه، که اصالح لاهم چمتو نه وي یا بشپړ خپور شوی وي) د ازموینې نسخې پرځای په غلطۍ سره خپور شوی). د لغوه کیدو وروسته ، کڅوړه نور د "پب ګیټ" او "پب اپ گریڈ" کمانډونو کې نه پیژندل کیږي ، او په سیسټمونو کې چې دمخه یې نصب کړی وي ، بل ځل چې "پب ګیټ" اجرا کیږي یو ځانګړی خبرداری صادریږي.
  • د زیانمننې (CVE-2021-22567) پروړاندې محافظت اضافه شوی چې په کوډ کې د یونیکوډ حروفونو کارولو له امله رامینځته شوی چې د ښودلو ترتیب بدلوي.
  • یو زیان منونکی (CVE-2021-22568) حل کړی چې تاسو ته اجازه درکوي د بل pub.dev کارونکي نقض کړئ کله چې د دریمې ډلې سرور ته کڅوړې خپروي چې pub.dev oauth2 لاسرسي ټیکونه مني. د مثال په توګه، زیانمنتیا د داخلي او کارپوریټ بسته سرورونو برید لپاره کارول کیدی شي. پرمخ وړونکي چې یوازې په pub.dev کې کڅوړې کوربه کوي د دې مسلې لخوا اغیزمن ندي.

په ورته وخت کې ، د کارونکي انٹرفیس چوکاټ فلټر 2.8 د پام وړ ریلیز وړاندې شو ، کوم چې د اصلي عکس العمل لپاره بدیل ګڼل کیږي او اجازه ورکوي چې د یو واحد کوډ اساس پراساس د iOS ، Android ، وینډوز ، macOS او لپاره غوښتنلیکونه خوشې کړي. د لینکس پلیټ فارمونه، په بیله بیا په براوزرونو کې د چلولو لپاره غوښتنلیکونه جوړ کړئ. د ګوګل لخوا رامینځته شوی د فوچیا مایکروکرنل عملیاتي سیسټم لپاره دودیز شیل د فلټر په اساس جوړ شوی. د یادونې وړ ده چې په تېرو شپږو میاشتو کې په ګوګل پلی سټور کې د فلټر ۲ اپلیکیشنونو شمېر له ۲۰۰ زرو څخه ۳۷۵ زرو ته لوړ شوی دی. نږدې دوه ځله.

د فلټر کوډ اصلي برخه په ډارټ ژبه کې پلي کیږي، او د غوښتنلیکونو اجرا کولو لپاره د چلولو وخت انجن په C++ کې لیکل شوی. کله چې غوښتنلیکونه رامینځته کوئ ، د فلټر اصلي ډارټ ژبې سربیره ، تاسو کولی شئ د C/C++ کوډ زنګ وهلو لپاره د ډارټ بهرني فنکشن انٹرفیس وکاروئ. د لوړ اجرا کولو فعالیت د هدف پلیټ فارمونو لپاره اصلي کوډ ته د غوښتنلیکونو تالیف کولو سره ترلاسه کیږي. پدې حالت کې ، برنامه د هر بدلون وروسته بیا تنظیم کولو ته اړتیا نلري - ډارټ د ګرم ریلوډ حالت چمتو کوي چې تاسو ته اجازه درکوي په روان غوښتنلیک کې بدلونونه رامینځته کړئ او سمدلاسه پایله ارزونه وکړئ.

د فلټر په نوي ریلیز کې د بدلونونو په مینځ کې ، په ګرځنده وسیلو کې د لانچ سرعت او د حافظې مصرف اصلاح یادونه شوې. د بیک انډ خدماتو لکه Firebase او ګوګل کلاوډ سره د ایپسونو نښلول اسانه دي. د ګوګل اعلاناتو سره د ادغام لپاره وسیلې مستحکم شوي. د کیمرې او ویب پلگ انونو ملاتړ د پام وړ ښه شوی. د پراختیا ساده کولو لپاره نوي وسایل وړاندیز شوي، د بیلګې په توګه، د Firebase په کارولو سره د تصدیق کولو لپاره یو ویجټ اضافه شوی. د فلیم انجن، د فلټر په کارولو سره د 2D لوبو جوړولو لپاره ډیزاین شوی، تازه شوی.

سرچینه: opennet.ru

Add a comment