Đã có phiên bản mới của hệ thống biên dịch QBS 2.0

QbS

Qbs là một hệ thống tự động hóa xây dựng dựa trên cộng đồng, không phụ thuộc vào ngôn ngữ. Nó nhanh và cung cấp một ngôn ngữ dễ học dựa trên QML.

Mới đây, Qbs 2.0, một phần mềm mã nguồn mở, miễn phí và đa nền tảng dùng để quản lý quy trình phát triển phần mềm, đã được công bố . Nó được thiết kế để hỗ trợ các dự án lớn và phức tạp được viết bằng nhiều ngôn ngữ lập trình khác nhau, chủ yếu là C/C++.

Phiên bản 2.0 mới này có ý nghĩa quan trọng ở số phiên bản, vì nó gắn liền với việc triển khai một hệ thống phụ trợ JavaScript mới , thay thế cho QtScript, vốn đã lỗi thời từ Qt 6.

Đối với những người chưa quen với Qbs, nó sử dụng một phiên bản đơn giản hóa của ngôn ngữ QML để định nghĩa các tập lệnh xây dựng dự án, cho phép các quy tắc xây dựng khá linh hoạt, có thể kết nối các mô-đun bên ngoài, sử dụng các hàm JavaScript và tạo ra các quy tắc xây dựng tùy ý.

Qbs độc đáo ở chỗ nó không có cơ chế biên dịch nội bộ, đảm bảo khả năng tạo ra nhiều bản dựng từ một cây mã nguồn duy nhất, bao gồm cả việc biên dịch từ một lệnh duy nhất và song song.

Đây là một tính năng quan trọng, đảm bảo rằng các tệp nguồn không bị ảnh hưởng nếu thư mục biên dịch bị xóa và không có sản phẩm đầu ra nào được ghi vào thư mục nguồn. Qt là một phần phụ thuộc cần thiết để xây dựng Qbs, mặc dù bản thân Qbs được thiết kế để tổ chức việc lắp ráp bất kỳ dự án nào.

Ngôn ngữ kịch bản được sử dụng trong Qbs được điều chỉnh để tự động hóa việc tạo và phân tích cú pháp các tập lệnh xây dựng bằng IDE. Hơn nữa, Qbs không tạo tệp tạo tệp và không có trung gian như tiện ích tạo, kiểm soát việc phát hành trình biên dịch và trình liên kết, tối ưu hóa quy trình xây dựng dựa trên biểu đồ chi tiết của tất cả các phụ thuộc.

Sự hiện diện của dữ liệu ban đầu về cấu trúc và các phụ thuộc trong dự án cho phép bạn thực hiện song song hiệu quả việc thực hiện các hoạt động trong một số luồng. Đối với các dự án lớn bao gồm một số lượng lớn tệp và thư mục con, hiệu suất của việc xây dựng lại bằng Qbs có thể tốt hơn nhiều lần so với thực hiện: quá trình xây dựng lại gần như tức thời và không lãng phí thời gian chờ đợi của nhà phát triển.

Điểm mới chính của QBS 2.0

Phiên bản QBS 2.0 mới này đáng chú ý, như đã đề cập ở phần đầu, bởi vì nó sử dụng công cụ JavaScript mới thay thế cho QtScript, vốn đã trở nên lỗi thời từ Qt 6, do việc tiếp tục duy trì QtScript một mình được coi là không khả thi vì các liên kết phức tạp với JavaScriptCore.

Triển vọng giữ QtScript với sự phụ thuộc phức tạp của nó dường như không hấp dẫn lắm. Tuy nhiên, không ứng cử viên nào cung cấp API để chặn quyền truy cập thuộc tính, điều mà các nhà phát triển cho biết họ thực sự cần vì lý do hiệu suất.

Theo quan điểm của người dùng, sẽ không có thay đổi đáng chú ý nào; đặc biệt, hiệu suất dường như là như nhau. Tuy nhiên, QtScript đã khá khoan dung trong việc chấp nhận các giá trị không xác định trong các ngữ cảnh mà nó không cần phải làm như vậy, vì vậy việc triển khai mới có thể phát hiện ra một số lỗi trong dự án của bạn.

Công cụ này tuân thủ tiêu chuẩn ES2019 và vượt trội hơn đáng kể so với các công cụ hiện có (XS nhanh hơn 35%, DukTape nhanh hơn gấp đôi, JerryScript nhanh hơn gấp ba lần và MuJS nhanh hơn gấp bảy lần). Từ góc độ phát triển kịch bản biên dịch, việc chuyển đổi sang công cụ mới sẽ không dẫn đến bất kỳ thay đổi đáng chú ý nào.

Hiệu năng cũng sẽ gần như không thay đổi. Trong số những điểm khác biệt, công cụ mới có yêu cầu khắt khe hơn đối với việc sử dụng giá trị null, điều này có thể làm lộ ra các vấn đề trong các dự án hiện có mà trước đây không được phát hiện khi sử dụng QtScript.

Ngoài ra, bài viết cũng đề cập rằng các tệp dự án qmake đã bị xóa, dẫn đến giảm bớt công việc bảo trì cho các nhà phát triển.

Cuối cùng, người ta đề cập rằng phiên bản 2.1 sẽ viết lại mã mà các nhà phát triển cho rằng họ sẽ có một số tính năng mới, cũng như các cải tiến hiệu suất chung.

Nếu bạn muốn tìm hiểu thêm, bạn có thể xem chi tiết tại liên kết sau.


Thêm vào danh sách nguồn ưu tiên trên Google.