2017-05-07 24 views
8

Tôi hiện đang sử dụng SBT để xây dựng dự án scala của mình tuy nhiên gần đây tôi đã học về một công cụ xây dựng khác có tên là CBT.Công cụ xây dựng Scala SBT vs CBT

Một lợi thế rõ ràng tôi có thể thấy từ tài liệu CBT là, việc viết tệp xây dựng cũng tốt như viết mã scala.

Tôi muốn biết các ưu và nhược điểm so sánh của cả hai công cụ xây dựng như hiệu suất, thời gian xây dựng, v.v ... từ người đã sử dụng nó.

Trả lời

14

Tôi là tác giả của CBT.

TL; DR CBT đơn giản và nhanh hơn ở một số khu vực nhất định nhưng thực tế trẻ hơn và ít được chứng minh hơn.

Phiên bản dài:

CBT nhằm thể đơn giản hơn đáng kể để sử dụng hơn so với SBT trong khi đem lại lợi ích tương tự như trong biểu cảm so với các công cụ cũ như Maven hoặc Ant. Tôi tin rằng CBT cung cấp ở đây. Nó cũng cung cấp cho bạn loại an toàn khi đề cập đến nhiệm vụ (phương pháp), trong đó SBT một nhiệm vụ có thể hoặc có thể không được xác định trong phạm vi bạn đang đọc nó từ. Hiệu quả hoạt động của CBT có thời gian khởi động nhanh hơn nhiều (khoảng 100ms) từ bash và phản ứng với các thay đổi tập tin ngay lập tức thông qua các thông báo đẩy hệ điều hành hơn là việc bỏ qua khoảng thời gian 0.5 giây của SBT.

CBT ít được thực hành chứng minh hơn SBT tại thời điểm này và bạn có thể tìm thấy một số cạnh thô. Đặc biệt có rất ít tài liệu ngay bây giờ mà tôi muốn thay đổi sớm. Bạn cũng sẽ tìm thấy ít ví dụ hơn về xây dựng CBT trực tuyến. Có thư mục ví dụ trong repo của CBT và các bài kiểm tra. Bạn cũng có thể vẫn tìm thấy một số điểm mù wrt plugins. Tất cả các linters, mã định dạng, trình biên dịch, xuất bản plugin tồn tại. Việc đóng gói và hỗ trợ IDE vẫn cần những cải tiến lớn. Plugin rất dễ viết và thêm.

Mã nguồn của CBT là mã đơn giản, thân thiện với người mới bắt đầu dễ đóng góp, một phần vì CBT tự động xây dựng lại chính nó sau khi có thay đổi. Cơ sở mã của SBT khó nắm bắt hơn và tôi không biết làm thế nào để thực sự sử dụng một thay đổi cục bộ, tôi cho rằng việc triển khai các bản dựng ảnh chụp nhanh.

CBT hiện không chạy nhiệm vụ hoặc xây dựng dự án đồng thời. Nó có thể không bao giờ làm điều đó cho các tác vụ trong một dự án nhưng có khả năng sẽ bắt đầu biên dịch đồng thời cho các tiểu dự án khác nhau. SBT song song các nhiệm vụ càng tốt (hoặc giả định có thể). Tôi không cảm nhận được hiệu suất của CBT như bị ảnh hưởng bởi việc không thực hiện nó. Đó là tổng thể khá linh hoạt.

CBT chưa được thử nghiệm trên các dự án lớn hơn. Bản thân CBT là một dự án đa xây dựng với> 10 dự án phụ nhưng đó có lẽ là dự án lớn nhất đã được thử cho đến nay. Vì vậy, ngay bây giờ (và nó nhanh chóng cải thiện trong vòng vài tuần và vài tháng) nếu bạn chọn CBT chuẩn bị đọc một số lượng tốt mã nguồn của nó, hãy sử dụng kênh gitter để nói chuyện với chúng tôi, chứ không sử dụng IDE hoặc tự cấu hình nó , giúp sửa các lỗi khả năng sử dụng nhỏ hơn, hời hợt mà không ai phải lo lắng.

Nếu bạn muốn công cụ được đánh bóng, được hỗ trợ tốt hơn, được tài liệu hơn, phức tạp hơn với nhiều ví dụ về bản sao và có thể dán và nhiều plugin trực tuyến hơn, hãy đi kèm SBT. Nếu bạn muốn công cụ đơn giản hơn, dễ sử dụng hơn, dễ sử dụng hơn, gần như không có giấy tờ với cơ sở mã, bạn có thể hiểu một cách nhanh chóng nhưng đôi khi bạn có thể phải tự sửa lỗi với CBT.

Cũng có video gần đây về CBT: https://youtu.be/-2aMaAPQ35s

+0

Tôi nghĩ câu trả lời của bạn cho tôi một bức tranh rõ ràng. Cảm ơn. –

Các vấn đề liên quan