Το Sorbet, ένα σύστημα ελέγχου στατικού τύπου για το Ruby, είναι ανοιχτού κώδικα.

Η εταιρεία Stripe, που ειδικεύεται στην ανάπτυξη πλατφορμών για ηλεκτρονικές πληρωμές, άνοιξε πηγαίους κώδικες έργου Σορμπέ, εντός του οποίου ετοιμάστηκε ένα σύστημα ελέγχου στατικού τύπου για τη γλώσσα Ruby. Ο κώδικας είναι γραμμένος σε C++ και διανέμονται από άδεια σύμφωνα με το Apache 2.0.

Οι πληροφορίες σχετικά με τους τύπους στον κώδικα μπορούν να υπολογιστούν δυναμικά και μπορούν επίσης να καθοριστούν με τη μορφή απλών σχολιασμοί, το οποίο μπορεί να καθοριστεί σε κώδικα χρησιμοποιώντας τη μέθοδο sig (για παράδειγμα, "sig {params(x: Integer).returns(String)}") ή να τοποθετηθεί σε ξεχωριστά αρχεία με την επέκταση rbi. Διαθέσιμος ως προκαταρκτική ανάλυση στατικού κώδικα χωρίς να το εκτελέσετε και να ελέγξετε πώς εκτελείται (ανάβει προσθέτοντας το "require 'sorbet-runtime'" στον κώδικα.

Παρέχεται δυνατότητα σταδιακή μετάφραση έργα για χρήση Sorbet - ο κώδικας μπορεί να συνδυάζει τόσο σχολιασμένα πληκτρολογημένα μπλοκ όσο και μη πληκτρολογημένες περιοχές που δεν καλύπτονται από επαλήθευση. Τα χαρακτηριστικά περιλαμβάνουν επίσης πολύ υψηλή απόδοση και τη δυνατότητα κλιμάκωσης για βάσεις κώδικα που περιέχουν εκατομμύρια γραμμές κώδικα.

Το έργο περιλαμβάνει έναν πυρήνα για έλεγχο στατικού τύπου,
μια εργαλειοθήκη για τη δημιουργία νέων έργων χρησιμοποιώντας Sorbet, μια εργαλειοθήκη για τη σταδιακή μεταφορά υπαρχόντων έργων στη χρήση Sorbet, ένα χρόνο εκτέλεσης με μια συγκεκριμένη γλώσσα τομέα για τη σύνταξη σχολιασμών σχετικά με τους τύπους και αποθήκη με έτοιμους ορισμούς τύπων για διάφορα πακέτα πολύτιμων λίθων Ruby.

Αρχικά, το Sorbet αναπτύχθηκε για να ελέγχει εσωτερικά έργα της εταιρείας Stripe, τα περισσότερα από τα συστήματα πληρωμής και ανάλυσης της οποίας είναι γραμμένα στη γλώσσα Ruby, και μεταφέρθηκε στην κατηγορία του ανοιχτού κώδικα μετά από ενάμιση χρόνο ανάπτυξης και υλοποίησης. Πριν από το άνοιγμα του κώδικα, πραγματοποιήθηκε δοκιμή beta, στην οποία συμμετείχαν περισσότερες από 30 εταιρείες. Στο τρέχον στάδιο ανάπτυξης, το Sorbet υποστηρίζει την έναρξη των περισσότερων τυπικών έργων στο Ruby, αλλά ενδέχεται να υπάρχουν κάποιες ασυμβατότητες.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο