Sorbet, un système de vérification de type statique pour Ruby, est open source.

Société Stripe, spécialisée dans le développement de plateformes de paiements en ligne, ouvert codes sources du projet Sorbet, au sein duquel un système de vérification de type statique pour le langage Ruby a été préparé. Le code est écrit en C++ et distribué par sous licence Apache 2.0.

Les informations sur les types dans le code peuvent être calculées dynamiquement et peuvent également être spécifiées sous la forme de simples annotations, qui peut être spécifié dans le code à l'aide de la méthode sig (par exemple, « sig {params(x: Integer).returns(String)} ») ou placé dans des fichiers séparés avec l'extension rbi. Possible à titre préliminaire analyse de code statique sans l'exécuter, et en vérifiant au fur et à mesure de son exécution (s'allume en ajoutant "require 'sorbet-runtime'" au code.

Possibilité offerte traduction progressive projets pour utiliser Sorbet - le code peut combiner à la fois des blocs typés annotés et des zones non typées non couvertes par la vérification. Les fonctionnalités incluent également des performances très élevées et la possibilité d'évoluer pour des bases de code contenant des millions de lignes de code.

Le projet inclut un noyau pour la vérification de type statique,
une boîte à outils pour créer de nouveaux projets à l'aide de Sorbet, une boîte à outils pour le transfert étape par étape de projets existants pour utiliser Sorbet, un runtime avec un langage spécifique au domaine pour écrire des annotations sur les types et dépôt avec des définitions de types prêtes à l'emploi pour divers packages Ruby Gems.

Initialement, Sorbet a été développé pour vérifier les projets internes de la société Stripe, dont la plupart des systèmes de paiement et d'analyse sont écrits en langage Ruby, et a été transféré dans la catégorie open source après un an et demi de développement et de mise en œuvre. Avant d'ouvrir le code, des tests bêta ont été effectués, auxquels ont participé plus de 30 entreprises. Au stade actuel de développement, Sorbet prend en charge le lancement de la plupart des projets standards en Ruby, mais il peut y avoir quelques incompatibilités.

Source: opennet.ru

Ajouter un commentaire