Отворен код Sorbet, система за статичен тип контрол за Ruby

Компания Stripe, специализирана в разработването на платформи за онлайн плащания, отвори изходен код на проекта Sorbet, в рамките на който е подготвена система за статичен анализ на типовете за езика Ruby. Кодът е написан на C++ и разпространява е под лицензия Apache 2.0.

Информацията за типовете в кода може да се изчислява динамично, а също така да се задава под формата на прости анотации, които могат да бъдат указани в кода чрез метода sig (например, „sig {params(x: Integer).returns(String)}“) или да бъдат разположени в отделни файлове с разширение rbi. Възможно е както предварителен статичен анализ на кода без да се изпълнява, така и проверка по време на изпълнение (включва се чрез добавяне в кода на „require ‘sorbet-runtime'“).

Предвидена е възможност за постепенно преминаване на проектите към използване на Sorbet — в кода могат да се комбинират както типизирани блокове с анотации, така и нетипизирани участъци, непокрити от проверка. Сред особеностите се отличава и много висока производителност и възможност за мащабиране за кодови бази, съдържащи милиони реда код.

В състава на проекта е включено ядро за статичен анализ на типовете,
инструменти за създаване на нови проекти с използване на Sorbet, инструменти за постепенно преминаване към използване на Sorbet за съществуващи проекти, runtime с предметно-ориентиран език за написване на типови анотации и репозиториум с готови определения на типове за различни gems пакети на Ruby.

Първоначално Sorbet се е развивал за проверка на вътрешни проекти на компанията Stripe, голяма част от платежните и аналитичните системи в която са написани на Ruby, и бе преместен в отворен статус след година и половина разработка и внедряване. Преди отварянето на кода беше проведено бета тестване, в което участваха повече от 30 компании. В текущия етап на развитие Sorbet поддържа стартиране на повечето типови проекти на Ruby, но могат да се наблюдават отделни несъвместимости.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster