Sorbet, Ruby staatiline tüübikontrollisüsteem, on avatud lähtekoodiga.

Stripe ettevõte, mis on spetsialiseerunud veebimaksete platvormide arendamisele, avatud projekti lähtekoodid Sorbet, mille raames valmistati ette Ruby keele staatiline tüübikontrollisüsteem. Kood on kirjutatud C++ ja jaotatud litsentsitud Apache 2.0 alusel.

Teavet koodi tüüpide kohta saab arvutada dünaamiliselt ja seda saab määrata ka lihtsa kujul annotatsioonid, mille saab määrata koodis sig-meetodil (näiteks “sig {params(x: Integer).returns(String)}”) või paigutada eraldi failidesse laiendiga rbi. Saadaval esialgsena staatilise koodi analüüs ilma seda täitmata ja kontrollides nii, nagu see täidetakse (lülitub sisse lisades koodile "require 'sorbet-runtime'".

Võimalus ette nähtud järkjärguline tõlkimine projektid Sorbeti kasutamiseks – kood võib kombineerida nii annoteeritud trükitud plokke kui ka kinnitamata alasid, mida kontrollimine ei hõlma. Funktsioonide hulka kuulub ka väga kõrge jõudlus ja võimalus skaleerida miljoneid koodiridu sisaldavate koodibaaside jaoks.

Projekt sisaldab tuuma staatilise tüübikontrolli jaoks,
tööriistakomplekt uute projektide loomiseks Sorbeti abil, tööriistakomplekt olemasolevate projektide järkjärguliseks ülekandmiseks Sorbeti kasutamiseks, domeenispetsiifilise keelega käituskeskkond tüüpide ja annotatsioonide kirjutamiseks. hoidla valmis tüübimääratlustega erinevate Ruby kalliskivide pakettide jaoks.

Algselt töötati Sorbet välja ettevõtte Stripe siseprojektide kontrollimiseks, mille makse- ja analüüsisüsteemid on enamuses kirjutatud Ruby keeles, ning viidi pärast poolteiseaastast arendus- ja juurutamist üle avatud lähtekoodiga kategooriasse. Enne koodi avamist viidi läbi beetatestimine, milles osales üle 30 ettevõtte. Praeguses arendusjärgus toetab Sorbet enamiku Ruby standardprojektide käivitamist, kuid seal võib esineda mõningaid vastuolusid.

Allikas: opennet.ru

Lisa kommentaar