Chọn một thư viện hoặc khung JavaScript

Bài viết này chia sẻ thông tin chi tiết về cách bạn có thể chọn thư viện hoặc khung để sử dụng trong ứng dụng web của mình. Các cuộc thảo luận ở đây sẽ giúp bạn cân nhắc ưu và nhược điểm trong việc tìm thư viện hoặc khung JavaScript phù hợp với vấn đề kinh doanh mà bạn đang cố gắng giải quyết. Việc nắm được ưu và nhược điểm nào áp dụng trong các trường hợp khác nhau là yếu tố then chốt để rà soát số lượng lớn lựa chọn thư viện JavaScript có sẵn.

Thư viện và khung JavaScript là gì

Thư viện JavaScript là gì? Ở dạng đơn giản nhất, thư viện JavaScript là mã được viết sẵn mà bạn có thể gọi trong mã của dự án để thực hiện một tác vụ cụ thể.

Bài đăng này chủ yếu đề cập đến "thư viện". Tuy nhiên, nhiều nội dung thảo luận cũng có thể áp dụng cho khung nội dung. Về cơ bản, sự khác biệt giữa hai loại có thể được tóm tắt như sau:

  • Đối với thư viện, mã xử lý ứng dụng của bạn sẽ gọi mã thư viện.
  • Đối với một khung, mã xử lý ứng dụng của bạn được khung đó gọi.

Các ví dụ thực tế sau đây giúp minh hoạ sự khác biệt.

Ví dụ về lệnh gọi đến thư viện JavaScript

Thư viện JavaScript thực hiện một tác vụ cụ thể và sau đó trả về quyền kiểm soát cho ứng dụng của bạn. Khi sử dụng thư viện, bạn sẽ kiểm soát luồng ứng dụng và chọn thời điểm gọi thư viện.

Trong ví dụ sau, mã xử lý ứng dụng nhập một phương thức từ thư viện lodash. Sau khi hàm này hoàn tất, quyền kiểm soát sẽ được trả về ứng dụng của bạn.

import capitalize from 'lodash.capitalize';
capitalize('hello'); // Hello

Khi thực thi, phương thức lodash.capitalize sẽ gọi mã JavaScript được viết sẵn, viết hoa ký tự đầu tiên của chuỗi.

Ví dụ về cách sử dụng Khung JavaScript

Khung JavaScript là một mẫu mã được xác định trước mà trong đó bạn xây dựng hành vi của ứng dụng. Tức là khi bạn sử dụng một khung, khung đó sẽ kiểm soát luồng ứng dụng. Để sử dụng khung, bạn sẽ viết mã xử lý ứng dụng tuỳ chỉnh, sau đó khung này sẽ gọi mã xử lý ứng dụng của bạn.

Ví dụ sau đây cho thấy một đoạn mã sử dụng khung JavaScript Preact:

import { createElement } from 'preact';

export default function App() {
  return (
    <p class="big">Hello World!</p>
  )
}

Trong ví dụ này, hãy lưu ý rằng khung này có nhiều quyền kiểm soát hơn đối với mã bạn viết và trong một số trường hợp, khung này thậm chí còn kiểm soát được thời điểm thực thi mã của bạn.

Tại sao bạn nên sử dụng thư viện?

Việc sử dụng thư viện JavaScript có thể giúp bạn tránh được tình trạng lặp lại mã không cần thiết. Thư viện có thể loại bỏ logic phức tạp, chẳng hạn như thao tác với ngày tháng hoặc các phép tính tài chính. Thư viện cũng có thể giúp bạn ra mắt sản phẩm ban đầu, thay vì phải viết tất cả mã từ đầu, việc này có thể mất thời gian.

Một số thư viện JavaScript phía máy khách giúp loại bỏ những điều kỳ lạ của nền tảng web. Thư viện cũng có thể đóng vai trò như một công cụ học tập. Ví dụ: nếu bạn không quen với hàm tốc độ ảnh động, mã nguồn của thư viện có thể hướng dẫn bạn cách hoạt động của các tốc độ đó.

Một số thư viện do các công ty lớn đầu tư thời gian và tiền bạc để duy trì tính bảo mật và cập nhật của các thư viện. Nhiều thư viện đi kèm với tài liệu phong phú, giúp bạn và nhóm của bạn có thể nhanh chóng làm quen với việc sử dụng thư viện.

Cuối cùng, việc sử dụng thư viện JavaScript sẽ giúp bạn tiết kiệm thời gian.

Tại sao bạn nên quan tâm đến việc sử dụng thư viện?

Về mặt kỹ thuật, bạn có thể phát triển ứng dụng web của mình từ đầu, nhưng tại sao lại gặp rắc rối khi bạn có thể sử dụng phần mềm miễn phí (nguồn mở) hoặc mua giải pháp mà về lâu dài có thể tiết kiệm thời gian và tiền bạc? Hiện có một số lượng lớn thư viện và khung JavaScript, mỗi thư viện và khung cung cấp một phương pháp giải quyết vấn đề riêng và mỗi khung đều có những đặc điểm riêng. Ví dụ:

  • Một thư viện có thể do một bên thứ ba viết và duy trì trong nội bộ.
  • Thư viện có thể có giấy phép pháp lý cụ thể phù hợp hoặc không phù hợp với ứng dụng web của bạn.
  • Một thư viện có thể đã lỗi thời hoặc không được duy trì.
  • Thư viện có thể đơn giản hoá một loạt tác vụ phức tạp và giúp bạn tiết kiệm rất nhiều thời gian cũng như tiền bạc.
  • Thư viện có thể được sử dụng rộng rãi trong cộng đồng và trở nên nổi tiếng trong số các nhà phát triển.

Như bạn có thể nghi ngờ, các đặc điểm khác nhau có thể ảnh hưởng đến ứng dụng web của bạn theo những cách khác nhau. Đôi khi, quyết định không sâu sát đến mức bạn có thể yên tâm hoán đổi thư viện nếu không muốn. Tuy nhiên, đôi khi thư viện có thể ảnh hưởng đáng kể đến công việc và ứng dụng web của bạn. Điều này cho thấy bạn cần có một phương pháp sáng suốt hơn.

Có một số môi trường JavaScript không phía máy khách, chẳng hạn như trên máy chủ (chạy trong môi trường đám mây) hoặc trên Rspberry Pi, nơi bạn có thể cần phải điều chỉnh tiêu chí dùng để xem xét thư viện và khung.

Hiệu suất

Không nên bỏ qua hiệu suất của thư viện JavaScript trên ứng dụng web phía máy khách. Một thư viện JavaScript lớn có thể làm gián đoạn hiệu suất tải của trang; hãy nhớ rằng tính bằng mili giây cũng tạo ra hàng triệu.

Hãy xem xét trường hợp trong đó bạn sử dụng thư viện JavaScript cho ảnh động. Một số thư viện có thể dễ dàng thêm hàng chục kilobyte và trong một số trường hợp, thậm chí là hàng trăm kilobyte. Các tài nguyên JavaScript như thế này có thể làm chậm quá trình tải trang đáng kể vì trình duyệt cần phải tải xuống, phân tích cú pháp, biên dịch và thực thi mã.

Thư viện JavaScript càng lớn, thì tác động về hiệu suất đối với người dùng càng lớn.

Khi đánh giá hoặc sử dụng thư viện hay khung JavaScript, hãy xem xét các đề xuất sau để cải thiện hiệu suất:

  • Với thư viện JavaScript lớn, hãy cân nhắc sử dụng một thư viện JavaScript nhỏ hơn. Ví dụ: date-fns cung cấp nhiều chức năng với kích thước hợp lý hơn so với một số tùy chọn khác.
  • Theo ví dụ về dữ liệu ngày tháng trước, hãy chỉ nhập các hàm mà bạn cần, chẳng hạn như: import { format } from 'date-fns'. Hãy nhớ kết hợp phương pháp này với tính năng lắc cây để giảm tải trọng JavaScript tối thiểu được xây dựng và gửi đến người dùng của bạn.
  • Hãy sử dụng các công cụ kiểm tra hiệu suất như Lighthouse, để quan sát hiệu quả về hiệu suất của việc sử dụng một thư viện JavaScript nhất định. Nếu thư viện thêm thời gian tải trang trễ một giây (đừng quên điều tiết mạng và CPU trong quá trình thử nghiệm), thì có thể bạn cần đánh giá lại thư viện mà mình lựa chọn. Ngoài việc kiểm tra tải trang, hãy đảm bảo lập hồ sơ mọi hành vi của trang web gọi mã từ thư viện được đề cập—hiệu suất tải trang không cho biết toàn bộ sự việc.
  • Nếu tác giả thư viện hoan nghênh nhận xét thì hãy gửi quan sát hiệu suất, đề xuất và thậm chí là đóng góp của bạn cho dự án. Đây chính là điểm mà cộng đồng nguồn mở toả sáng! Nếu quyết định đóng góp thì trước tiên, bạn có thể phải liên hệ với chủ lao động của mình.
  • Sử dụng công cụ theo dõi gói tự động, chẳng hạn như bundlesize để theo dõi các bản cập nhật lớn bất ngờ cho thư viện. Thông thường, một thư viện JavaScript sẽ phát triển theo thời gian. Các tính năng bổ sung, bản sửa lỗi, trường hợp đặc biệt và các tính năng khác đều có thể làm tăng kích thước tệp của thư viện. Sau khi bạn/nhóm của mình đồng ý sử dụng thư viện, việc cập nhật thư viện có thể không gây ra vấn đề gì và có thể đặt ra các câu hỏi ít có khả năng. Đây là lúc bạn nên sử dụng công nghệ tự động hoá.
  • Xem xét các yêu cầu của bạn đối với thư viện và đánh giá xem liệu nền tảng web có cung cấp chức năng tương tự về bản chất hay không. Ví dụ: nền tảng web đã cung cấp một công cụ chọn màu, giúp bạn không cần phải sử dụng thư viện JavaScript của bên thứ ba để triển khai chức năng tương tự.

Bảo mật

Việc sử dụng mô-đun của bên thứ ba tiềm ẩn một số rủi ro về bảo mật. Gói độc hại trong cơ sở mã ứng dụng web có thể xâm phạm tính bảo mật của cả nhóm phát triển và người dùng của bạn.

Hãy xem xét một thư viện được xuất bản lên hệ sinh thái nay. Gói như vậy có thể là hợp pháp. Tuy nhiên, theo thời gian, gói này có thể bị xâm phạm.

Dưới đây là một số mẹo bảo mật cần cân nhắc khi sử dụng hoặc đánh giá mã của bên thứ ba:

  • Nếu bạn sử dụng GitHub, hãy cân nhắc các sản phẩm bảo mật của mã, chẳng hạn như Dependabot. Hoặc, cân nhắc các dịch vụ thay thế có chức năng quét tìm lỗ hổng trong mã của bạn, chẳng hạn như snyk.io.
  • Hãy cân nhắc sử dụng dịch vụ kiểm tra mã, một nhóm kỹ sư có thể kiểm tra thủ công đoạn mã của bên thứ ba mà bạn đang sử dụng.
  • Đánh giá xem bạn nên khoá các phần phụ thuộc với một phiên bản cụ thể hay cam kết mã của bên thứ ba trong phạm vi quản lý phiên bản của bạn. Thao tác này có thể giúp khoá phần phụ thuộc vào một phiên bản cụ thể mà có thể được coi là an toàn. Trớ trêu thay, điều này có thể có tác dụng phản đối trong bảo mật vì bạn có thể bỏ lỡ các bản cập nhật quan trọng trong thư viện.
  • Quét trang chủ của dự án hoặc trang GitHub, nếu có. Hãy tìm hiểu xem có vấn đề bảo mật còn tồn đọng nào hay không và liệu các vấn đề bảo mật trước đó có được giải quyết trong một khung thời gian hợp lý hay không.
  • Mã của bên thứ ba sử dụng mã của bên thứ ba khác có thể gây ra nhiều rủi ro hơn so với một thư viện không có phần phụ thuộc. Hãy chú ý đến rủi ro này.

Hỗ trợ tiếp cận

Bạn có thể đang thắc mắc về mối liên hệ giữa các thư viện phần mềm với khả năng hỗ trợ tiếp cận trên web. Mặc dù thư viện phần mềm có thể được sử dụng trong nhiều môi trường, nhưng trong bối cảnh thư viện dựa trên JavaScript phía máy khách, khả năng truy cập web là một phần quan trọng.

Thư viện dựa trên JavaScript phía máy khách (hoặc khung, đối với vấn đề đó) có thể tăng hoặc giảm khả năng truy cập của trang web của bạn. Hãy cân nhắc sử dụng thư viện JavaScript của bên thứ ba có khả năng thêm thanh trượt hình ảnh vào trang. Nếu thanh trượt hình ảnh không tính đến khả năng hỗ trợ tiếp cận trên web, thì bạn, với tư cách là nhà phát triển web, có thể bỏ qua một tính năng quan trọng mà đưa ra sản phẩm bỏ lỡ các tính năng quan trọng, chẳng hạn như thanh trượt có thể điều hướng bằng bàn phím!

  • Trình bổ trợ kiểu chữ thích ứng có hỗ trợ người dùng phóng to hoặc thu nhỏ trang không?
  • Trình bổ trợ trình tải tệp lên có hỗ trợ tính năng tải tệp lên từ các thiết bị hỗ trợ không?
  • Thư viện ảnh động có hỗ trợ những người dùng thích giảm chuyển động không?
  • Trình bổ trợ bản đồ tương tác có hỗ trợ chỉ sử dụng bàn phím không?
  • Thư viện trình phát âm thanh có mang lại trải nghiệm phù hợp cho trình đọc màn hình không?

Chúng tôi hiểu rằng bạn, với vai trò nhà phát triển web, cần tham gia ở mức độ nào đó để đáp ứng các yêu cầu về khả năng hỗ trợ tiếp cận như vậy. Ví dụ:

  • Đối với bất kỳ tính năng nào bị thiếu, bạn có thể triển khai các tính năng đó trong cơ sở mã của mình, ngay cả khi tiếp tục sử dụng thư viện được đề cập.
  • Với sự hỗ trợ của chủ lao động, bạn có thể đóng góp một tính năng còn thiếu cho thư viện nếu tác giả thư viện cho phép đóng góp như vậy.
  • Bạn có thể mở một cuộc trò chuyện với tác giả thư viện. Ví dụ: các tính năng hỗ trợ tiếp cận cụ thể này có được triển khai trong lộ trình của bạn không? Bạn có đồng ý rằng các cuốn sách đó đã có trong thư viện không?
  • Đối với các trường hợp sử dụng phổ biến, bạn có thể khám phá các tuỳ chọn thư viện thay thế dễ tiếp cận hơn. Các tuỳ chọn đó có thể tồn tại nhưng khó tìm hơn.
  • Trong trường hợp nghiêm trọng, bạn có thể cần phải từ bỏ hoàn toàn thư viện và triển khai các tính năng của bạn từ đầu. Điều này có thể xảy ra khi thư viện hoặc khung có trải nghiệm kém hỗ trợ tiếp cận trong lần sử dụng đầu tiên và bạn cần phải huỷ bỏ rất nhiều nội dung mà thư viện hoặc khung vốn cho rằng sẽ cung cấp miễn phí cho bạn.

Hội nghị

Dễ sử dụng hơn với thư viện phần mềm sử dụng các quy ước lập trình đã thiết lập. Nếu một thư viện sử dụng một quy ước lập trình mà bạn chưa từng biết đến, thì bạn và nhóm của bạn có thể gặp khó khăn khi sử dụng một thư viện như vậy.

Nếu một thư viện không tuân theo các quy ước lập trình phổ biến (ví dụ: hướng dẫn quy tắc phổ biến), thì bạn không thể làm gì để khắc phục ngay. Tuy nhiên, vẫn có một số lựa chọn:

  • Hãy nhớ phân biệt giữa mã nguồn thư viện và API được hiển thị cho người dùng thư viện như bạn. Mặc dù mã nguồn nội bộ có thể sử dụng các quy ước không quen thuộc, nhưng nếu API (phần của thư viện mà bạn tương tác) sử dụng các quy ước quen thuộc, thì có thể bạn không cần phải lo lắng.
  • Nếu API thư viện không tuân theo các quy ước lập trình phổ biến, bạn có thể sử dụng mẫu thiết kế JavaScript, như mẫu proxy để gói và chứa tất cả các tương tác với thư viện vào một tệp duy nhất trong cơ sở mã. Sau đó, proxy của bạn có thể cung cấp API trực quan hơn cho các phần mã khác trong cơ sở mã của bạn.

Các quy ước đóng vai trò quan trọng và dễ sử dụng. Một thư viện bao gồm API trực quan có thể tiết kiệm hàng giờ hoặc thậm chí là hàng ngày của mọi người khi so sánh với một API trực quan cần nhiều thử nghiệm để tìm ra kết quả.

Các bản cập nhật

Ví dụ: đối với một thư viện hoạt động đầy đủ và thực hiện một vài phép tính toán học, một thư viện như vậy có thể hiếm khi cần cập nhật. Trên thực tế, thư viện có đầy đủ tính năng là điều hiếm thấy trong thế giới không ngừng thay đổi của lĩnh vực phát triển web! Tuy nhiên, đôi khi bạn muốn tác giả thư viện phản hồi và sẵn sàng cập nhật. Các nghiên cứu và phát hiện mới có thể giúp bạn tìm ra những cách thức hoạt động hiệu quả hơn, vì vậy, những kỹ thuật dùng trong thư viện và khung thiết kế luôn có thể thay đổi.

Khi bạn chọn một thư viện hoặc khung, hãy chú ý đến cách xử lý các bản cập nhật và lưu ý rằng những quyết định như vậy có thể ảnh hưởng đến bạn:

  • Thư viện có lịch phát hành hợp lý không? Ví dụ: việc cập nhật cho kho lưu trữ mã nguồn có thể diễn ra thường xuyên, nhưng nếu những bản cập nhật đó không được "phát hành" hoặc "phát hành" theo đó, bạn sẽ thấy khó tải các bản cập nhật đó xuống.
  • Thư viện có phát hành các bản cập nhật theo lược đồ tạo phiên bản phần mềm hợp lý không? Thư viện sẽ giúp bạn tiết kiệm thời gian. Nếu bạn phải thay đổi mã nguồn đột ngột mỗi khi cập nhật phiên bản thư viện, thì điều này có thể ảnh hưởng xấu đến mục đích sử dụng thư viện đó ngay từ đầu. Thay đổi có thể gây lỗi đôi khi là không thể tránh khỏi, nhưng trong một thế giới lý tưởng, các thay đổi không thường xuyên và không bị buộc phải áp dụng cho người dùng thư viện.
  • Thư viện có đầu tư nỗ lực vào khả năng tương thích ngược không? Đôi khi, bản cập nhật phần mềm có thể đi kèm với những thay đổi có thể gây lỗi nhưng cũng cung cấp một lớp khả năng tương thích ngược. Điều này cho phép người dùng thư viện sử dụng phiên bản thư viện mới nhất mà không phải thay đổi mã quá nhiều.

Giấy cấp phép

Cấp phép phần mềm là một khía cạnh quan trọng trong việc sử dụng thư viện phần mềm bên thứ ba. Tác giả thư viện có thể chỉ định giấy phép cho thư viện của họ. Nếu bạn đang cân nhắc sử dụng thư viện thì lựa chọn giấy phép của họ có thể ảnh hưởng đến bạn.

Ví dụ: thư viện JavaScript có thể có giấy phép phần mềm cho phép bạn sử dụng trong môi trường phi thương mại. Đối với dự án theo sở thích cá nhân thì đây có thể là một lựa chọn tuyệt vời. Nếu dự án của bạn có yếu tố thương mại, thì bạn có thể cần phải xem xét giấy phép doanh nghiệp.

Khi nghi ngờ, bạn nên tham khảo ý kiến tư vấn pháp lý chuyên nghiệp hoặc làm theo yêu cầu của nhóm pháp lý trong công ty.

Cộng đồng

Một thư viện hoặc khung có cộng đồng người dùng/cộng tác viên lớn có thể mang lại lợi ích, nhưng điều này không đảm bảo. Nhìn chung, thư viện hoặc khung càng có nhiều người dùng thì càng có nhiều khả năng được hưởng lợi. Hãy cân nhắc các ưu và nhược điểm sau đây khi tham gia vào cộng đồng phát triển:

Ưu điểm:

  • Lượng người dùng lớn đồng nghĩa với việc xác suất lỗi sẽ bị phát hiện sớm và thường xuyên cao hơn.
  • Một cộng đồng lớn mạnh hoạt động thường xuyên có thể đồng nghĩa với việc có nhiều hướng dẫn, chỉ dẫn, video và thậm chí là các khoá học trên thư viện hoặc khung làm việc liên quan.
  • Một cộng đồng lớn mạnh hoạt động tích cực đồng nghĩa với việc được hỗ trợ nhiều hơn trên các diễn đàn và các trang web hỏi đáp, làm tăng khả năng các câu hỏi hỗ trợ được trả lời.
  • Một cộng đồng gắn bó có thể đồng nghĩa với việc có nhiều cộng tác viên bên ngoài đóng góp hơn cho thư viện hoặc khung nội dung. Chúng có thể giúp cung cấp các tính năng không có trong lộ trình của tác giả.
  • Khi một thư viện hoặc khung phổ biến trong một cộng đồng, sẽ có nhiều khả năng những người trong cộng đồng và đồng nghiệp của bạn biết đến hay thậm chí là quen thuộc với một thư viện hoặc khung công cụ như vậy.

Nhược điểm:

  • Một dự án có số lượng người dùng lớn và đa dạng có thể trở nên cồng kềnh khi liên tục bổ sung các tính năng. Thư viện bị quá tải có thể gây hại cho hiệu suất của web.
  • Một dự án có một cộng đồng năng động và gắn kết có thể gây ra áp lực cho tác giả và người duy trì, đồng thời có thể cần phải kiểm duyệt rất nhiều cộng đồng.
  • Một dự án phát triển nhanh chóng nhưng không được hỗ trợ thích hợp có thể bắt đầu cho thấy dấu hiệu có một cộng đồng độc hại. Ví dụ: những nhà phát triển web mới bắt đầu hoặc chưa có kinh nghiệm có thể cảm thấy khó chịu trong một cộng đồng nhất định do họ bị can thiệp vào hệ thống.

Tài liệu

Cho dù thư viện hoặc khung JavaScript đơn giản hay phức tạp đến mức nào, tài liệu phần mềm luôn có thể trợ giúp bạn. Ngay cả những nhà phát triển dày dạn kinh nghiệm cũng sử dụng tài liệu thay vì tự tìm hiểu mã. Tài liệu giải thích API bạn nên sử dụng và cách bạn nên sử dụng API đó.

Tài liệu thậm chí còn có thể cung cấp mã mẫu, giúp bạn dễ dàng bắt đầu nhanh chóng. Khi đánh giá một thư viện hoặc khung tiêu chí, bạn có thể đặt một số câu hỏi sau:

  • Thư viện có bao gồm tài liệu không? Nếu không, bạn sẽ cần phải thoải mái với việc tự tìm hiểu mọi thứ.
  • Tài liệu có rõ ràng, dễ hiểu và không mơ hồ không? Nhiều nhà phát triển dành nhiều thời gian cho việc tài liệu. Điều này trông có vẻ nhỏ, nhưng sự rõ ràng trong tài liệu dạng văn bản có thể ảnh hưởng lớn đến năng suất của bạn.
  • Tài liệu có được tạo hoàn toàn tự động không? Những tài liệu như vậy có thể khó tiếp thu hơn và không phải lúc nào cũng cung cấp hướng dẫn rõ ràng về cách sử dụng API.
  • Giấy tờ có mới nhất không? Đôi khi, việc bảo trì tài liệu được xem là việc xem xét lại. Nếu thư viện được cập nhật nhưng tài liệu chưa được cập nhật, điều này có thể dẫn đến lãng phí thời gian phát triển.
  • Tài liệu có toàn diện và có sẵn ở nhiều định dạng không? Hướng dẫn sử dụng, mã mẫu, tài liệu tham khảo, bản minh hoạ trực tiếp và hướng dẫn đều là các định dạng tài liệu có giá trị có thể giúp bạn thành công trong việc sử dụng thư viện hoặc khung.

Giấy tờ không phải lúc nào cũng đầy đủ. Bạn sẽ cần đánh giá nhu cầu của tổ chức, các yêu cầu của dự án và mức độ phức tạp của phần mềm, đồng thời sử dụng những thông tin đó để xác định cấp độ tài liệu mà bạn cần.

Kết luận

Cảm thấy người dùng bị choáng ngợp khi chọn thư viện hoặc khung lần đầu tiên là điều bình thường. Giống như mọi thứ khác, bạn càng học hỏi và thực hành nhiều càng tốt một nhiệm vụ, bạn càng trở nên thành thạo. Bạn nên tham khảo bài đăng này khi chọn thư viện hoặc khung để sử dụng vào lần tới. Bạn có thể sử dụng tiêu đề trong bài đăng này làm danh sách kiểm tra. Ví dụ: Thư viện này có hiệu quả hoạt động không? Thư viện này có đáp ứng các tiêu chuẩn doanh nghiệp của tôi về khả năng truy cập web không?

Có những khía cạnh khác của thư viện và khung mà bạn có thể cân nhắc nhưng chưa được thảo luận nhiều trong bài đăng này:

  • Khả năng mở rộng: mức độ dễ dàng trong việc mở rộng thư viện bằng logic và/hoặc hành vi tuỳ chỉnh?
  • Công cụ: (nếu có) thư viện có công cụ như trình bổ trợ trình soạn thảo mã, công cụ gỡ lỗi và trình bổ trợ hệ thống xây dựng không?
  • Cấu trúc: mã sạch rất quan trọng, nhưng cấu trúc tổng thể của thư viện có hợp lý không?
  • Tests: dự án có bộ kiểm thử không? Trang web của dự án có sử dụng huy hiệu hoặc chỉ báo mà bộ kiểm thử đang vượt qua theo cam kết mới nhất không?
  • Khả năng tương thích: thư viện có hoạt động tốt với các thư viện và/hoặc khung khác mà bạn đang dùng không?
  • Chi phí: chi phí cho một khung là bao nhiêu? Đây có phải là mã nguồn mở hay có thể mua được không?
  • Chỉ số về sự đa dạng: chỉ số này sẽ nằm ở vị trí thấp trong danh sách tiêu chí của bạn hoặc thậm chí bị bỏ qua hoàn toàn. Tuy nhiên, bạn nên xem xét "lượt bình chọn" dự án, tài khoản mạng xã hội đại diện cho dự án và/hoặc số lượng lỗi/vấn đề chưa được xử lý trên trang dự án.