Sorbet, sistem semakan jenis statik untuk Ruby, adalah sumber terbuka.

Syarikat Stripe, yang mengkhusus dalam pembangunan platform untuk pembayaran dalam talian, dibuka kod sumber projek Sorbet, di mana sistem semakan jenis statik untuk bahasa Ruby telah disediakan. Kod ini ditulis dalam C++ dan diedarkan oleh berlesen di bawah Apache 2.0.

Maklumat tentang jenis dalam kod boleh dikira secara dinamik, dan juga boleh dinyatakan dalam bentuk mudah anotasi, yang boleh ditentukan dalam kod menggunakan kaedah sig (contohnya, "sig {params(x: Integer).returns(String)}") atau diletakkan dalam fail berasingan dengan sambungan rbi. Tersedia sebagai pendahuluan analisis kod statik tanpa melaksanakannya, dan menyemak semasa ia dilaksanakan (hidupkan dengan menambahkan "memerlukan 'sorbet-runtime'" pada kod.

Kemungkinan disediakan terjemahan secara beransur-ansur projek untuk menggunakan Sorbet - kod boleh menggabungkan kedua-dua blok ditaip beranotasi dan kawasan tidak ditaip yang tidak diliputi oleh pengesahan. Ciri-ciri juga termasuk prestasi yang sangat tinggi dan keupayaan untuk membuat skala untuk asas kod yang mengandungi berjuta-juta baris kod.

Projek ini termasuk kernel untuk pemeriksaan jenis statik,
kit alat untuk mencipta projek baharu menggunakan Sorbet, kit alat untuk pemindahan langkah demi langkah projek sedia ada untuk menggunakan Sorbet, masa jalan dengan bahasa khusus domain untuk menulis anotasi tentang jenis dan repositori dengan definisi jenis siap sedia untuk pelbagai pakej permata Ruby.

Pada mulanya, Sorbet dibangunkan untuk menyemak projek dalaman syarikat Stripe, yang kebanyakan sistem pembayaran dan analisisnya ditulis dalam bahasa Ruby, dan telah dipindahkan ke kategori sumber terbuka selepas satu setengah tahun pembangunan dan pelaksanaan. Sebelum membuka kod, ujian beta telah dijalankan, di mana lebih daripada 30 syarikat mengambil bahagian. Pada peringkat pembangunan semasa, Sorbet menyokong pelancaran kebanyakan projek standard dalam Ruby, tetapi mungkin terdapat beberapa ketidakserasian.

Sumber: opennet.ru

Tambah komen