Stripe'i ettevõte, mis on spetsialiseerunud online-maksete platvormide arendamisele, projekti lähtekoodid , mille raames on välja töötatud staatiliste tüüpide kontrollimise süsteem Ruby keele jaoks. Kood on kirjutatud C++ keeles ja lisensiga Apache 2.0.
Koodis saab tüübinfot arvutada dünaamiliselt või määrata see lihtsate , mida saab koodis määrata meetodi sig abil (näiteks „sig {params(x: Integer).returns(String)}”) või paigutada eraldi failidesse, millel on laiend rbi. kas ettevalmistav ilma selle täitmiseta, või kontrollimise läbiviimine käivitamise ajal ( kaudu koodi lisamisega „require ‘sorbet-runtime'”).
Eeldatakse, et Sorbet'i kasutamisele — koodis võivad koexistida nii annotatsioonidega typiseeritud plokid kui ka tüüpimata osad, mida kontrollimine ei kata. Eristava joone juurde kuulub ka väga kõrge jõudlus ja skaleeritavus koodibaaside jaoks, mis sisaldavad miljoneid koodirekke.
Projekt sisaldab tüübi staatilise kontrollimise tuuma,
vahendid uute projektide loomiseks Sorbet'i kasutades, vahendid olemasolevate projektide järk-järgulise ülemineku jaoks Sorbet'i manustamisele, runtime teemakohase keele annotatsioonide kirjutamiseks ning valmistüüpidest, mis on mõeldud erinevate Ruby gems-pakettide jaoks.
Alguses arendati Sorbet Stripe'i ettevõtte sisemiste projektide kontrollimiseks, millest enamus makse- ja analüütilist süsteemi on kirjutatud Ruby keeles, ning see muudeti avatud allikaks pärast poolteist aastat arendamist ja rakendamist. Koodiga avamise eel tehti beetatest, kus osales üle 30 ettevõtte. Praegusel arenguetapil toetab Sorbet enamik standardseid Ruby projekte, kuid erandeid võib esineda.
Allikas: opennet.ru
