Адкрыты код 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

Дадаць каментар