Sorbet, un sistem static de verificare a tipului pentru Ruby, este open source.

Compania Stripe, specializata in dezvoltarea de platforme de plati online, deschis codurile sursă ale proiectului șerbet, în cadrul căruia a fost pregătit un sistem static de verificare a tipului pentru limbajul Ruby. Codul este scris în C++ și distribuit de licențiat sub Apache 2.0.

Informațiile despre tipurile din cod pot fi calculate dinamic și pot fi specificate și sub formă de simplu adnotări, care poate fi specificat în cod folosind metoda sig (de exemplu, „sig {params(x: Integer).returns(String)}”) sau plasat în fișiere separate cu extensia rbi. Disponibil cu titlu preliminar analiza codului static fără a-l executa și verificând cum este executat (se aprinde prin adăugarea „require 'sorbet-runtime'” la cod.

Posibilitate asigurata traducere treptată proiecte să folosească Sorbet - codul poate combina atât blocuri tipărite adnotate, cât și zone netipizate care nu sunt acoperite de verificare. Caracteristicile includ, de asemenea, performanțe foarte înalte și capacitatea de scalare pentru baze de cod care conțin milioane de linii de cod.

Proiectul include un nucleu pentru verificarea tipului static,
un set de instrumente pentru crearea de noi proiecte folosind Sorbet, un set de instrumente pentru transferul pas cu pas al proiectelor existente pentru a utiliza Sorbet, un timp de execuție cu un limbaj specific domeniului pentru scrierea adnotărilor despre tipuri și repertoriu cu definiții de tip gata făcute pentru diverse pachete de pietre Ruby.

Inițial, Sorbet a fost dezvoltat pentru a verifica proiectele interne ale companiei Stripe, ale căror sisteme de plată și analitice majoritatea sunt scrise în limbajul Ruby, și a fost trecut la categoria open source după un an și jumătate de dezvoltare și implementare. Înainte de deschiderea codului, a fost efectuată testarea beta, la care au participat peste 30 de companii. În stadiul actual de dezvoltare, Sorbet sprijină lansarea majorității proiectelor standard în Ruby, dar pot exista unele incompatibilități.

Sursa: opennet.ru

Adauga un comentariu