Ruby-д зориулсан статик төрлийн шалгах систем болох Sorbet нь нээлттэй эх сурвалжтай.

Онлайн төлбөрийн платформ боловсруулах чиглэлээр мэргэшсэн Stripe компани, нээгдсэн төслийн эх кодууд Сорбет, үүний хүрээнд Ruby хэлний статик төрлийн шалгах системийг бэлтгэсэн. Код нь C++ хэл дээр бичигдсэн бөгөөд тараасан Apache 2.0 дагуу лицензтэй.

Кодын төрлүүдийн талаарх мэдээллийг динамикаар тооцоолж болохоос гадна энгийн хэлбэрээр зааж өгч болно тайлбарууд, үүнийг sig аргыг ашиглан кодонд зааж өгөх боломжтой (жишээ нь, “sig {params(x: Integer).returns(String)}”) эсвэл rbi өргөтгөлтэй тусдаа файлд байрлуулж болно. Боломжтой урьдчилсан байдлаар статик кодын шинжилгээ үүнийг гүйцэтгэхгүйгээр, мөн гүйцэтгэлийг нь шалгах (асаадаг кодонд "require 'sorbet-runtime'" гэж нэмснээр.

Боломжтой аажмаар орчуулга Сорбет ашиглах төслүүд - код нь баталгаажуулалтад хамрагдаагүй тэмдэглэгээтэй бичсэн блокууд болон бичээгүй хэсгүүдийг хоёуланг нь нэгтгэж болно. Онцлогууд нь маш өндөр гүйцэтгэлтэй, олон сая мөр кодын багтаасан кодын баазыг масштаблах чадвартай байдаг.

Төсөлд статик төрлийг шалгах цөм,
Сорбет ашиглан шинэ төсөл үүсгэх хэрэгсэл, одоо байгаа төслүүдийг Сорбет ашиглахад алхам алхмаар шилжүүлэх хэрэгсэл, төрөл болон хадгалах газар төрөл бүрийн Ruby эрдэнийн багцад зориулсан бэлэн төрлийн тодорхойлолттой.

Эхэндээ Сорбет нь төлбөрийн болон аналитик системүүд нь Ruby хэл дээр бичигдсэн Stripe компанийн дотоод төслүүдийг шалгах зорилгоор бүтээгдсэн бөгөөд нэг жил хагасын хугацаанд боловсруулж, хэрэгжүүлсний дараа нээлттэй эхийн ангилалд шилжсэн. Кодыг нээхээс өмнө бета туршилтыг явуулсан бөгөөд үүнд 30 гаруй компани оролцсон. Хөгжлийн өнөөгийн шатанд Сорбет нь Ruby-д ихэнх стандарт төслүүдийг эхлүүлэхийг дэмждэг боловч зарим нэг үл нийцэл байж магадгүй юм.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх