Sorbet, një sistem i kontrollit të tipit statik për Ruby, është me burim të hapur.

Kompania Stripe, e specializuar në zhvillimin e platformave për pagesat online, hapur kodet burimore të projektit akullore me lëng frutash, brenda të cilit u përgatit një sistem kontrolli i tipit statik për gjuhën Ruby. Kodi është shkruar në C++ dhe shperndare nga licencuar sipas Apache 2.0.

Informacioni rreth llojeve në kod mund të llogaritet në mënyrë dinamike, dhe gjithashtu mund të specifikohet në formën e thjeshtë shënime, i cili mund të specifikohet në kod duke përdorur metodën sig (për shembull, "sig {params(x: Integer).returns(String)}") ose të vendoset në skedarë të veçantë me shtrirjen rbi. Në dispozicion si paraprake analiza e kodit statik pa e ekzekutuar dhe duke kontrolluar si është ekzekutuar (ndizet duke shtuar kodin "kërkojnë 'sorbet-runtime'".

Mundësia e ofruar përkthim gradual projektet për të përdorur Sorbet - kodi mund të kombinojë të dy blloqet e shkruara me shënime dhe zonat e pashtypura që nuk mbulohen nga verifikimi. Veçoritë përfshijnë gjithashtu performancë shumë të lartë dhe aftësinë për të shkallëzuar bazat e kodit që përmbajnë miliona rreshta kodi.

Projekti përfshin një kernel për kontrollin e tipit statik,
një paketë veglash për krijimin e projekteve të reja duke përdorur Sorbet, një paketë veglash për transferimin hap pas hapi të projekteve ekzistuese për të përdorur Sorbet, një kohë ekzekutimi me një gjuhë specifike për domenin për të shkruar shënime rreth llojeve dhe depo me përkufizime të gatshme të tipit për paketa të ndryshme gurësh të çmuar Ruby.

Fillimisht, Sorbet u zhvillua për të kontrolluar projektet e brendshme të kompanisë Stripe, shumica e sistemeve të pagesave dhe analitike të së cilës janë shkruar në gjuhën Ruby, dhe u transferua në kategorinë e burimit të hapur pas një viti e gjysmë zhvillimi dhe zbatimi. Para hapjes së kodit, u krye testimi beta, në të cilin morën pjesë më shumë se 30 kompani. Në fazën aktuale të zhvillimit, Sorbet mbështet nisjen e shumicës së projekteve standarde në Ruby, por mund të ketë disa papajtueshmëri.

Burimi: opennet.ru

Shto një koment