Sorbet, một hệ thống kiểm tra kiểu tĩnh cho Ruby, có nguồn mở.

Công ty Stripe, chuyên phát triển nền tảng thanh toán trực tuyến, mở ra mã nguồn dự án Sorbet, trong đó một hệ thống kiểm tra kiểu tĩnh cho ngôn ngữ Ruby đã được chuẩn bị. Mã được viết bằng C++ và phân phối bởi được cấp phép theo Apache 2.0.

Thông tin về các loại trong mã có thể được tính toán linh hoạt và cũng có thể được chỉ định dưới dạng đơn giản chú thích, có thể được chỉ định trong mã bằng phương thức sig (ví dụ: “sig {params(x: Integer).returns(String)}”) hoặc được đặt trong các tệp riêng biệt có phần mở rộng rbi. Có sẵn như sơ bộ phân tích mã tĩnh mà không thực thi nó và kiểm tra khi nó được thực thi (bật lên bằng cách thêm "require 'sorbet-runtime'" vào mã.

Khả năng được cung cấp dịch dần dần các dự án sử dụng Sorbet - mã có thể kết hợp cả các khối được đánh máy có chú thích và các khu vực chưa được đánh máy không được xác minh. Các tính năng cũng bao gồm hiệu suất rất cao và khả năng mở rộng quy mô cho các cơ sở mã chứa hàng triệu dòng mã.

Dự án bao gồm một kernel để kiểm tra kiểu tĩnh,
bộ công cụ để tạo các dự án mới bằng Sorbet, bộ công cụ để chuyển từng bước các dự án hiện có sang sử dụng Sorbet, một thời gian chạy với ngôn ngữ dành riêng cho miền để viết chú thích về các loại và kho với các định nghĩa kiểu được tạo sẵn cho các gói đá quý Ruby khác nhau.

Ban đầu, Sorbet được phát triển để kiểm tra các dự án nội bộ của công ty Stripe, hầu hết các dự án có hệ thống phân tích và thanh toán được viết bằng ngôn ngữ Ruby và được chuyển sang danh mục nguồn mở sau một năm rưỡi phát triển và triển khai. Trước khi mở mã, thử nghiệm beta đã được thực hiện với sự tham gia của hơn 30 công ty. Ở giai đoạn phát triển hiện tại, Sorbet hỗ trợ khởi chạy hầu hết các dự án tiêu chuẩn trong Ruby, nhưng có thể có một số điểm không tương thích.

Nguồn: opennet.ru

Thêm một lời nhận xét