Avalikukood Sorbet, Ruby staatilise tüübi kontrollimise süsteem

Stripe'i ettevõte, mis on spetsialiseerunud online-maksete platvormide arendamisele, on avanud projekti lähtekoodid Sorbet, mille raames on ette valmistatud staatiliste tüüpide kontrollimise süsteem Ruby keele jaoks. Kood on kirjutatud C++ keeles ja GNU Üldine Avaliku litsentsi alusel. ainekood on litsentsitud Apache 2.0 all.

Koodis olevate tüüpide teavet saab lugeda dünaamiliselt, samuti täiendada lihtsate märgenditega, mida saab koodis määrata meetodi sig abil (näiteks „sig {params(x: Integer).returns(String)}”) või paigutada eraldi ribi laiendiga failidesse. On võimalik nii eelnevalt koodi staatiline analüüs ilma selle käivitamiseta, kui ka kontrollimine jooksu ajal (lülitatakse sisse koodi lisamise kaudu „require 'sorbet-runtime'“).

On ette nähtud võimalus projektide järkjärguliseks üleminekuks Sorbeti kasutamisele – koodis võivad seguneda nii annotatsioonide poolt tüübistatud plokid kui ka tüübistamata osad, mida kontrollimine ei kata. Eriti märkimisväärne on ka väga kõrge jõudlus ja otstarbekus koodibaaside korral, mis sisaldavad miljoneid koodiridu. projekte, kus kasutatakse Sorbet — koodis võivad seguneda nii annotatsioonidega tüübiga plokid kui ka tüüpidega katmata osad. Eripäradena märgitakse samuti väga kõrge jõudlus ja võimalus skaleerimiseks, mis on vajalik miljonite koodiridade sisaldavate koodibaaside jaoks.

Projekt sisaldab tuuma staatiliste tüüpide kontrollimiseks,
Sorbeti tööriistakomplekt uute projektide loomiseks, tööriistakomplekt olemasolevate projektide etappide kaupa üleviimiseks Sorbetile, runtime kontekstipõhise keele jaoks tüüpide annotatsioonide kirjutamiseks ja repo valmis tüdefineerimiste jaoks erinevatele Ruby gem-pakettidele.

Alguses arendati Sorbetit Stripe'i siseste projektide kontrollimiseks, kus enamik makse- ja analüüsisüsteeme on kirjutatud Ruby keeles, ja see muudeti avatud allikaks pärast enam kui poolteiseaastast arendust ja rakendamist. Enne koodi avamist viidi läbi beetatestimine, millest võttis osa üle 30 ettevõtte. Sorbet toetab praegusel arenguetapil enamiku tüüpiliste Ruby projektide käivitamist, kuid võivad esineda erilised ühilduvusprobleemid.

Allikas: opennet.ru

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster