17 tiêu chí để khởi động nghiên cứu và đánh giá thư viện của bên thứ ba

Tại sao phải phát minh lại bánh xe? Là nhà phát triển, chúng tôi thường thấy mình phản ánh câu hỏi đó. Bất cứ khi nào chúng tôi chuẩn bị giới thiệu một phần chức năng mới, chúng tôi có xu hướng nhìn xung quanh để xem các công cụ, thư viện và khung hiện có ngoài đó có thể hỗ trợ công việc của chúng tôi không. Rốt cuộc, nó có thực sự đáng đầu tư thời gian và công sức để tái tạo một cái gì đó có thể đã được tạo ra và tối ưu hóa không? Hoặc sẽ tốt hơn nếu sử dụng giải pháp hiện có và điều chỉnh nó để hoàn thành mục tiêu của chúng tôi hiệu quả hơn?

Hầu hết thời gian, tất cả đều phụ thuộc vào việc các giải pháp hiện có có phù hợp với nhu cầu kỹ thuật của chúng tôi hay không và mức độ phù hợp với yêu cầu kinh doanh của chúng tôi. Vì lý do này, nghiên cứu và đánh giá cẩn thận các thư viện của bên thứ ba đã trở thành một hoạt động rất phổ biến giữa các nhà phát triển. Thật không may, nghiên cứu và xác định thư viện bên thứ ba phù hợp nhất là một nhiệm vụ phức tạp và việc so sánh các thư viện khác nhau thường có thể trở nên quá sức.

Tại Panaseer, chúng tôi nhận ra rằng việc thiết lập và sử dụng khung đánh giá bao gồm một bộ tiêu chí phát triển và kinh doanh có thể giúp quá trình này trơn tru hơn. Một danh sách được xác định rõ các khu vực quan trọng để điều tra cung cấp một hướng rõ ràng trong hoạt động nghiên cứu. Trên hết, việc đánh giá nhiều thư viện theo cùng một yêu cầu cho phép các cuộc thảo luận cởi mở và minh bạch hơn.

Danh sách sau đây là kết quả của một nghiên cứu, qua đó chúng tôi đã xác định được một bộ tiêu chí mà chúng tôi sử dụng để đưa ra quyết định về việc có nên áp dụng và tích hợp thư viện của bên thứ ba tại Panaseer hay không. Mặc dù danh sách này phản ánh các lĩnh vực mà chúng tôi cho là cần thiết cho ngăn xếp kinh doanh và phát triển của chúng tôi, chúng tôi hy vọng nó sẽ khuyến khích bạn thiết lập bộ tiêu chí của riêng bạn phù hợp với tầm nhìn và văn hóa của bạn.

1. Mục đích

Các chức năng cốt lõi được cung cấp bởi thư viện là gì?

Mặc dù các thư viện bên thứ ba khác nhau giải quyết cùng một vấn đề, họ thường có mục đích riêng biệt và do đó cung cấp thêm chức năng độc đáo. Bằng cách lưu ý điều này, chúng tôi có thể xác định cái nào phù hợp nhất với yêu cầu của chúng tôi, hiện tại và tương lai. Ví dụ: khi đánh giá các thư viện trực quan để tạo biểu đồ thanh, một thư viện cụ thể có thể phù hợp hơn các thư viện khác do các loại biểu đồ bổ sung mà nó cung cấp.

2. Công nghệ

Thư viện dựa trên công nghệ gì? Nó có thể tích hợp tốt như thế nào với cơ sở mã hiện tại?

Chúng tôi muốn xem xét từng thư viện công nghệ cộng đồng do tác động của nó đối với trải nghiệm người dùng và công việc phát triển, bao gồm tích hợp với cơ sở mã hiện có. Quay lại ví dụ về thư viện trực quan hóa của chúng tôi, thư viện bên thứ ba có thể kết xuất các phần tử thông qua SVG trong khi thư viện thứ hai có thể làm điều đó bằng cách sử dụng API Canvas, có thể ảnh hưởng đến cả hoạt động và hiệu suất triển khai.

3. Bộ phát triển

Thư viện cung cấp những gì về bộ công cụ phát triển? Có khả năng tăng tốc hoặc làm chậm thời gian phát triển?

Bên cạnh công nghệ cơ bản, chúng tôi điều tra bộ phát triển thực tế mà mỗi thư viện bên thứ ba cung cấp. Chẳng hạn, chúng tôi xem xét liệu các thư viện nhất định có kèm theo các công cụ hữu ích hoặc API toàn diện có khả năng tạo điều kiện thuận lợi cho việc triển khai giải pháp được yêu cầu hay không.

4. Tài liệu

Là tài liệu thư viện toàn diện? Nó có bao gồm các ví dụ và đoạn mã không? Có dễ dàng để điều hướng?

Một tài liệu được viết tốt, đầy đủ và cập nhật là rất có giá trị, thậm chí còn hơn thế khi phát triển một phần chức năng với một thư viện bên thứ ba mới. Một trình duyệt đơn giản thông qua một thư viện Tài liệu hướng dẫn thường là đủ để chúng tôi có cảm giác về những gì mong đợi và tính đến điều đó khi đưa ra quyết định cuối cùng.

5. Chi phí

Nó là một thư viện miễn phí hay cao cấp? Chi phí gần đúng là bao nhiêu, nếu có? Các tùy chọn mua có sẵn là gì?

Xác định các chi phí tiền tệ liên quan đến việc áp dụng thư viện là gì rất quan trọng đối với quan điểm kinh doanh và cuối cùng có thể tạo ra sự khác biệt trong quá trình ra quyết định. Mặc dù việc so sánh giá thư viện cao cấp tương đối đơn giản, chúng ta nên cân nhắc thời gian phát triển và chi phí liên quan mà mỗi thư viện sẽ yêu cầu để cung cấp giải pháp mong muốn.

6. Phát hành

Phiên bản hiện tại của thư viện là gì? Thư viện có nhận được cập nhật thường xuyên không? Liệu nó có tuân theo một chiến lược phát hành?

Lịch sử phát hành của thư viện bên thứ ba là một chỉ báo tốt về chiến lược phát hành của nó, cung cấp cái nhìn sâu sắc về những gì có thể được mong đợi cho thư viện đó về các bản cập nhật, sửa lỗi và thay đổi lớn. Những yếu tố này thường đóng vai trò chính khi chúng ta quyết định chọn thư viện nào. Một thư viện được hỗ trợ tốt với chiến lược phát hành đáng tin cậy thường có thể kéo dài tuổi thọ của các tính năng được xây dựng cùng với nó.

7. Kích thước

Kích thước tập tin thực tế của thư viện là gì? Bao nhiêu nó sẽ thêm vào kích thước bó hiện có?

Mặc dù không nhất thiết phải quan trọng, nhưng vẫn đáng để xem kích thước của các tệp thư viện, đặc biệt là trong các phiên bản rút gọn của chúng và phản ánh mức độ ảnh hưởng đến kích thước gói hiện có. Thông thường, càng nhỏ, càng tốt.

8. Hỗ trợ cộng đồng

Làm thế nào lớn và tích cực là cộng đồng xung quanh thư viện? Có bao nhiêu nhà phát triển đã đóng góp cho mã nguồn thư viện? Làm thế nào dễ dàng để tìm thấy thông tin và giúp đỡ trực tuyến?

Tùy thuộc vào mức độ phổ biến hoặc gần đây của thư viện, có thể ít nhiều khó khăn để có được thông tin, mẹo và câu trả lời cho các câu hỏi trực tuyến. Có một ý tưởng về những gì mong đợi về mặt hỗ trợ miễn phí có thể xác định mức độ phù hợp của một thư viện bên thứ ba. Chúng tôi thường làm điều này bằng cách thu thập các số liệu đơn giản thông qua các tìm kiếm trực tuyến nhanh, chẳng hạn như số người đóng góp thư viện trên GitHub hoặc kết quả tìm kiếm cho thư viện trên StackOverflow.

9. Hỗ trợ chuyên nghiệp

Có hỗ trợ chuyên nghiệp nào để nhận trợ giúp với thư viện không? Là sự hỗ trợ được cung cấp bởi những người tạo thư viện hoặc bởi các chuyên gia tự do và tư vấn bên ngoài?

Trong trường hợp khi các thư viện của bên thứ ba không phải là nguồn mở, việc lấy thông tin thông qua các tài nguyên trực tuyến như GitHub và StackOverflow thường khó khăn hơn. Do đó, chúng tôi tìm kiếm các tùy chọn có sẵn để nhận hỗ trợ khi làm việc với thư viện, dịch vụ chuyên nghiệp nào được cung cấp và các chi phí liên quan là gì.

10. Giấy phép

Thư viện được xuất bản và phân phối theo giấy phép nào? Các yêu cầu liên quan là gì?

Các thư viện nguồn mở đi kèm với các giấy phép thường cho phép phần mềm được sử dụng, sửa đổi và chia sẻ tự do, trong khi các thư viện cao cấp thường bao gồm một danh sách chính xác các yêu cầu nghiêm ngặt. Tùy thuộc vào giấy phép của nó, thư viện của bên thứ ba có thể phù hợp ít nhiều cho một công ty, ứng dụng hoặc phần chức năng nhất định. Do đó, chúng tôi đánh giá khía cạnh giấy phép trước khi áp dụng một thư viện cụ thể để đảm bảo chúng tôi hiểu các nghĩa vụ tương ứng và tránh các rắc rối pháp lý tiềm ẩn trong tương lai.

11. Hiệu suất

Làm thế nào biểu diễn là thư viện? Là hiệu suất dự kiến ​​phù hợp với yêu cầu kỹ thuật và người dùng?

Đánh giá hiệu suất của thư viện bên thứ ba trước khi tích hợp nó vào cơ sở mã hiện tại có lẽ là một trong những nhiệm vụ khó khăn nhất. Tối thiểu, chúng tôi cố gắng tìm hiểu thông tin và số liệu bằng cách nghiên cứu trực tuyến, trong tài liệu của thư viện, hoặc thậm chí tốt hơn, thông qua kinh nghiệm của các nhà phát triển khác. Từ quan điểm của chúng tôi, hiệu suất của thư viện ít nhất phải đáp ứng các yêu cầu kỹ thuật và người dùng được xác định cho giải pháp được đề xuất

12. Tương thích trình duyệt

Những trình duyệt nào được thư viện hỗ trợ? Có thiếu trình duyệt quan trọng nào không?

Khả năng tương thích giữa nhiều trình duyệt thường đại diện cho một điểm đau đối với các nhà phát triển front-end, thậm chí còn hơn thế khi sử dụng các thư viện của bên thứ ba. Theo kinh nghiệm của chúng tôi, việc tìm hiểu thông tin về những trình duyệt được hỗ trợ bởi một thư viện nhất định sẽ khá đơn giản và chắc chắn có giá trị.

13. Tương thích thiết bị

Những thiết bị nào được thư viện hỗ trợ? Các chế độ tương tác được hỗ trợ là gì?

Bên cạnh khả năng tương thích trình duyệt chéo, các thư viện mặt trước của bên thứ ba thường cần được đánh giá theo các loại thiết bị được hỗ trợ. Ví dụ, tùy thuộc vào giải pháp cụ thể đang được xây dựng, có thể yêu cầu chọn thư viện tích hợp đầy đủ chức năng cảm ứng cho một hệ điều hành di động cụ thể. Ngay cả khi không được yêu cầu rõ ràng, chúng tôi vẫn cảm thấy nên liệt kê các thiết bị tương thích khi đi qua danh sách ngắn các thư viện, nếu không có gì khác để đánh giá tiềm năng của chúng trong tương lai.

14. Định dạng dữ liệu

Thư viện yêu cầu định dạng dữ liệu là gì? Liệu thư viện phù hợp với một cấu trúc dữ liệu tiêu chuẩn?

Mặc dù tất cả các thư viện của bên thứ ba xử lý dữ liệu của một số loại thông qua đầu vào và đầu ra, một số trong số chúng có thể có các yêu cầu nghiêm ngặt về các định dạng hoặc cấu trúc dự kiến. Đối với chúng tôi, việc liệt kê và đánh giá chúng giúp dễ hiểu hơn liệu một thư viện có thể dễ dàng tích hợp vào cơ sở mã hiện tại từ góc độ dữ liệu hay không.

15. Nhìn và cảm nhận

Liệu thư viện có một cái nhìn và cảm nhận đặc biệt? Làm thế nào tùy biến là nó? Nó có thể được liên kết với ứng dụng hiện có không?

Bất cứ khi nào thư viện của bên thứ ba bao gồm đầu ra trực quan, chúng tôi tin rằng sự xuất hiện của nó không nên nhìn quá xa so với ứng dụng hiện có. Vì lý do này, chúng tôi nghĩ rằng nên nghiên cứu xem thư viện có thể tùy chỉnh như thế nào, thư viện là gì, kiểu dáng dựa trên cũng như đầu tư thời gian cần thiết để thực hiện giao diện mong muốn.

16. Khả năng mở rộng

Có thể mở rộng chức năng thư viện không? Có khuyến khích không? Có bất kỳ plugin hoặc tiện ích mở rộng của bên thứ ba nào đã có sẵn không?

Tùy thuộc vào tính năng được xây dựng và chức năng được thư viện cung cấp ngoài hộp, có thể cần phải mở rộng hoặc tối ưu hóa các thành phần cốt lõi của thư viện. Không phải tất cả các thư viện của bên thứ ba đều cho phép điều đó, vì điều này thực sự thuộc về giấy phép mà chúng được phân phối. Đối với chúng tôi, do các tác động lâu dài của việc áp dụng một thư viện cụ thể, hiểu được các hạn chế về pháp lý và kỹ thuật xung quanh khả năng mở rộng của nó là rất quan trọng.

17. Định hướng tương lai

Tầm nhìn cho thư viện là gì? Là một lộ trình có sẵn? Liệu nó có phù hợp với ứng dụng hiện có không?

Thông tin về thư viện Các kế hoạch tương lai của cộng đồng nên luôn được tính đến khi đánh giá các thư viện của bên thứ ba. Chúng tôi tin rằng điều này không chỉ cung cấp tổng quan về các tính năng, cải tiến và sửa lỗi sắp tới mà còn ngăn chặn việc chấp nhận bất kỳ thư viện nào có thể sớm ngừng nhận hỗ trợ hoặc thậm chí được giảm giá hoàn toàn.

Như chúng tôi đã đề cập, việc xác định và đồng ý về một bộ tiêu chí đánh giá thư viện của bên thứ ba có thể phục vụ nhiều mục đích, từ cung cấp hướng dẫn cho nghiên cứu thông tin đến làm cơ sở chung cho thảo luận và ra quyết định. Đương nhiên, để phục vụ đầy đủ các mục đích này, bản thân danh sách phải phản ánh cả bản chất của các thư viện được đánh giá cũng như các yêu cầu kinh doanh và kỹ thuật đã được đặt ra cho tính năng được đề xuất. Do đó, tiêu chí có thể thay đổi tùy thuộc vào việc đánh giá xoay quanh các thư viện front-end hay back-end, về các hạn chế thời gian hiện tại và, tất nhiên, về các bài học rút ra từ các quy trình đánh giá trước đó.

Mặc dù là một tập hợp các lĩnh vực đơn giản để điều tra, tại Panaseer, việc sử dụng khung như vậy đã được chứng minh là rất có giá trị đối với việc áp dụng các thư viện mặt trước mới. Không chỉ, với tư cách là một nhóm chúng tôi liên tục đánh giá, mở rộng và tối ưu hóa danh sách các tiêu chí của chúng tôi. Rốt cuộc, phần tốt nhất của khung này là nó có thể dễ dàng thích nghi để phù hợp với từng mục đích nghiên cứu và bối cảnh.

Còn bạn thì sao? Bạn có một khung thành lập để đánh giá các thư viện của bên thứ ba không? Bạn có cảm thấy như chúng tôi đang thiếu bất kỳ tiêu chí liên quan? Hãy cho chúng tôi biết!