Nếu bạn cần một cái gì đó được thực hiện trong Ruby, một viên ngọc cho nó có thể tồn tại. Chà, có thể tồn tại hàng tá viên ngọc cho nó. Một số trong số chúng thanh lịch, nổi bật và được bảo trì tốt, và một số khác được viết để giải quyết một trường hợp sử dụng mà tác giả đã gặp phải lần đó. Bạn có rất nhiều loại đá quý để lựa chọn, vậy làm cách nào để bạn chọn được loại phù hợp ? Sự lựa chọn này rất quan trọng - vào thời điểm bạn hối tiếc vì đã thêm một viên ngọc quý vào dự án của mình, thật khó để thay đổi lại.
Số liệu thống kê
Khi tôi cần một thư viện để giải quyết vấn đề mà tôi đang gặp phải, tôi bắt đầu với Hộp công cụ Ruby. Hộp công cụ Ruby là một cách tuyệt vời để lấy danh sách tất cả các viên ngọc trong một danh mục (như “Quản lý đăng ký”), cùng với:
-
Có bao nhiêu người sử dụng nó?
Đá quý phổ biến thường phổ biến hơn vì một lý do. Và sẽ dễ dàng hơn nhiều để được trợ giúp nếu mọi người khác trên internet đang sử dụng cùng một loại đá quý.
-
Nó được cập nhật gần đây / thường xuyên như thế nào?
Đá quý có nhận được các bản cập nhật nhất quán không hay bản nâng cấp khả năng tương thích Rails 3.2 vẫn nằm trong hàng đợi yêu cầu kéo? Nếu bản phát hành gần đây nhất là cách đây nhiều năm, bạn có thể muốn bỏ qua - dù sao thì bản phát hành đó có thể sẽ không tương thích với ứng dụng của bạn.
Với những viên ngọc bạn tìm thấy trên Hộp công cụ Ruby, được lọc theo hai tiêu chí đầu tiên đó, bạn sẽ có một danh sách những viên đá quý mà bạn đang tích cực xem xét. Hộp công cụ Ruby cũng cung cấp cho bạn các liên kết đến nguồn, tài liệu, trang web và trình theo dõi lỗi mà bạn sẽ cần tiếp theo.
Mã &tài liệu
-
Đá quý có được ghi chép đầy đủ không?
Kiểm tra trang web, nếu nó có một. Tài liệu có tốt không? Nó có RDoc không? Bạn có thể tìm thấy câu trả lời mình cần khi bạn cần không?
-
Nó có được kiểm tra tốt không?
Hãy xem các bài kiểm tra. Nó thậm chí có có một
test/
hoặcspec/
danh mục? Nó có bất kỳ kiểm tra nào ngoàitest_truth
không ? Tác giả có biết liệu chúng có gây ra hồi quy không? -
Xem xét các vấn đề và kéo các yêu cầu
Các lỗi có được khắc phục nhanh chóng không? Có thảo luận về các lỗi và yêu cầu kéo, và chúng có được khắc phục không? Hay họ chỉ ngồi đó?
-
Tìm kiếm tên của đá quý trên Google, StackOverflow và reddit
Mọi người nói gì về nó? Những viên ngọc nào được đề xuất và những viên nào không được khuyến khích?
-
Tìm kiếm trên GitHub một số lớp được cung cấp bởi gem
Chúng được sử dụng như thế nào trong các ứng dụng trong thế giới thực? Chúng có vẻ dễ sử dụng? Hay các nhà phát triển khác phải hack xung quanh các vấn đề trong đá quý?
Tại thời điểm này, bạn nên thu hẹp lựa chọn của mình cho một số ứng viên còn lại.
Nội dung hấp dẫn
Những tiêu chí này hơi chủ quan, đó là lý do tại sao bạn phải tìm viên ngọc phù hợp cho dự án của bạn . Nhưng nếu bạn bỏ lỡ những điều này, bạn sẽ hối tiếc về sau.
-
Dựa trên các ví dụ trong tài liệu, thư viện có cảm thấy Ruby-ish không?
Nó có sử dụng thành ngữ Ruby không? Hay bạn có cảm giác như đang thực sự viết Java hoặc PHP? Điều này xảy ra cực kỳ thường xuyên đối với trình bao bọc API.
-
Nó có được tạo ra từ các bộ phận nhỏ hoạt động tốt với nhau không?
Bạn có thể sử dụng những đồ vật mà tác giả đã cho bạn để xây dựng những thứ mà tác giả chưa bao giờ nghĩ đến không? Vì có thể bạn sẽ muốn.
-
Đá quý đã được sử dụng bởi một đá quý khác đã có trong dự án của bạn chưa?
Phần thưởng, bạn vừa tiết kiệm được cho mình một khoảng thời gian tích hợp và bạn biết rằng mình sẽ không phải đấu tranh với việc phân bổ quá nhiều phiên bản của Bundler.
-
Đá quý có đưa ra giả định về ứng dụng của bạn không? Ứng dụng của bạn có phù hợp với những giả định đó không và nó sẽ luôn phù hợp với chúng?
Một số gem, như ActiveResource, đưa ra các giả định về API của máy chủ mà họ nói chuyện. Những người khác, như ResourceController, đưa ra giả định về những gì bộ điều khiển của bạn sẽ làm. Đá quý tạo ra các giả định có thể giúp bạn nhanh hơn nhiều và mã của bạn đơn giản hơn nhiều– trong khi những giả định đó vẫn giữ nguyên . Tuy nhiên, nếu những giả định đó trở nên không tương thích với ứng dụng của bạn, bạn sẽ thấy mình mất nhiều ngày để vá lỗi, gỡ lỗi và cuối cùng chỉ làm rách viên ngọc.
Chà, rất nhiều.
Đúng vậy, bạn có thể sử dụng rất nhiều tiêu chí để chọn viên ngọc tốt nhất cho dự án của mình. Và bạn thường sẽ không phải trải qua tất cả. Hầu hết thời gian, bạn có thể chỉ cần sử dụng Hộp công cụ Ruby và chọn viên ngọc phổ biến nhất.
Nhưng có một số viên ngọc trở thành phần cốt lõi của ứng dụng của bạn. Những thứ như thư viện HTTP, thư viện cơ sở dữ liệu hoặc bất kỳ thứ gì hứa hẹn làm cho bộ điều khiển của bạn sạch hơn. Và bạn nên dành thêm thời gian để đảm bảo rằng những đá quý sạch sẽ, được bảo quản tốt, được ghi chép đầy đủ và phù hợp với mô hình tinh thần của bạn về cách chúng nên làm việc.
Tôi đưa tất cả các tiêu chí này vào Bảng tính Google , vì vậy khi bạn cần chọn từ một số lượng lớn các viên ngọc có vẻ giống nhau, bạn có thể dễ dàng so sánh chúng. Bạn có thể lấy nó ở đây.