Відкрито код Sorbet, системи статичної перевірки типів для Ruby

Компанія Stripe, що спеціалізується на розробці платформ для online-платежів, відкрила вихідні тексти проекту шербет, в рамках якого підготовлено систему статичної перевірки типів для мови 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, але можуть спостерігатися окремі несумісності.

Джерело: opennet.ru

Додати коментар або відгук