Компания Stripe, специализирующаяся на разработке платформ для online-платежей, kodet burimore të projektit , в рамках которого подготовлена система статической проверки типов для языка Ruby. Код написан на языке С++ и nën licencën 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, но могут наблюдаться отдельные несовместимоcти.
Burimi: opennet.ru
