L'entreprise Stripe, spécialisée dans le développement de plateformes pour les paiements en ligne, les codes sources du projet , dans le cadre duquel un systÚme de vérification statique des types a été préparé pour le langage Ruby. Le code est écrit en C++ et sous licence Apache 2.0.
Les informations sur les types dans le code peuvent ĂȘtre calculĂ©es dynamiquement, mais aussi spĂ©cifiĂ©es sous forme de simples , qui peuvent ĂȘtre indiquĂ©es dans le code Ă l'aide de la mĂ©thode sig (par exemple, «sig {params(x: Integer).returns(String)}») ou placĂ©es dans des fichiers sĂ©parĂ©s avec l'extension rbi. de le faire Ă l'avance sans son exĂ©cution, ainsi que de procĂ©der Ă une vĂ©rification au fur et Ă mesure de l'exĂ©cution ( en ajoutant dans le code «require âsorbet-runtime'»).
La possibilitĂ© des projets pour utiliser Sorbet â dans le code, il est possible de combiner des blocs typĂ©s avec annotations et des sections non typĂ©es non couvertes par le contrĂŽle. Parmi les caractĂ©ristiques, on note Ă©galement une trĂšs haute performance et la possibilitĂ© d'Ă©voluer pour des bases de code comprenant des millions de lignes de code.
Le projet comprend un noyau pour la vérification statique des types,
un outil pour crĂ©er de nouveaux projets utilisant Sorbet, un outil pour la conversion progressive de projets existants Ă l'application de Sorbet, un runtime avec un langage orientĂ© objet pour Ă©crire des annotations de types et des dĂ©finitions de types prĂȘtes Ă l'emploi pour diffĂ©rents gems Ruby.
Ă l'origine, Sorbet a Ă©tĂ© dĂ©veloppĂ© pour vĂ©rifier les projets internes de l'entreprise Stripe, dont la majoritĂ© des systĂšmes de paiement et d'analyse sont Ă©crits en Ruby, et a Ă©tĂ© rendu open source aprĂšs un an et demi de dĂ©veloppement et d'implĂ©mentation. Avant l'Ă©dition du code, un bĂȘta-test a Ă©tĂ© rĂ©alisĂ©, avec la participation de plus de 30 entreprises. Ă l'Ă©tape actuelle de son dĂ©veloppement, Sorbet prend en charge le lancement de la plupart des projets standards en Ruby, mais certaines incompatibilitĂ©s peuvent ĂȘtre observĂ©es.
Source : opennet.ru
