Открыт код Sorbet, системы статической проверки типов для Ruby
21 июня 2019 года
Компания Stripe, специализирующаяся на разработке платформ для online-платежей, открыла исходные тексты проекта Sorbet, в рамках которого подготовлена система статической проверки типов для языка Ruby. Код написан на языке С++ и распространяется под лицензией 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ти.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.