24 Sep 2018

458

Dev Java đã biết đến 20 thư viện này chưa? (P1)

Post by Admin
Dev Java đã biết đến 20 thư viện này chưa? (P1)

Một trong những đặc điểm của một dev Java giỏi và có kinh nghiệm là kiến thức sâu rộng về API, bao gồm JDK và các thư viện của bên thứ ba (thư viện ngoài).

Đây là bộ sưu tập của tôi về một số thư viện ngoài hữu ích mà các nhà phát triển Java có thể sử dụng trong ứng dụng của họ để thực hiện nhiều nhiệm vụ hữu ích. Để sử dụng các thư viện này, các nhà phát triển Java nên quen với điều đó, và đây là toàn bộ vấn đề tôi sẽ chia sẻ

1. Logging Libraries

Việc đăng nhập các thư viện là điều cần thiết trong mọi dự án. Chúng là thứ quan trọng nhất đối với các ứng dụng phía máy chủ, vì các logs chỉ được đặt ở nơi bạn có thể thấy những gì đang diễn ra trên ứng dụng của bạn. Mặc dù JDK gửi cùng với thư viện ghi nhật ký riêng của mình, nhưng có các lựa chọn thay thế tốt hơn, ví dụ: Log4j, SLF4j và LogBack.

Thư viện ghi nhật ký Java hàng đầu

Top Java logging libraries

Một nhà phát triển Java nên làm quen với những ưu điểm và nhược điểm của thư viện Logging và biết tại sao sử dụng SLF4j thì tốt hơn Log4j đơn giản. Nếu bạn không biết tại sao, tôi khuyên bạn nên đọc bài viết trước của tôi về cùng một chủ đề.

2. JSON Parsing libraries

Trong thế giới dịch vụ web và IoT ngày nay, JSON đã trở thành giao thức truy cập để mang thông tin từ máy khách đến máy chủ. Họ đã thay thế XML và đây là cách được ưu tiên nhất để chuyển thông tin theo cách độc lập với nền tảng.

Thật không may, JDK không có một thư viện JSON. Tuy nhiên, có rất nhiều thư viện ngoài tốt cho phép bạn phân tích cú pháp và tạo các thông điệp JSON, như Jackson và Gson.

3. Unit Testing Libraries

Thử nghiệm đơn vị là điều quan trọng nhất để phân biệt một nhà  phát triển trung bình với một nhà phát triển giỏi. Nhưng lý do phổ biến nhất để tránh kiểm thử đơn vị là thiếu kinh nghiệm và kiến thức về các thư viện phổ biến như JUnit, Mockito và PowerMock.

Các thư viện kiểm tra đơn vị tốt nhất cho các nhà phát triển Java

Tôi có một mục tiêu vào năm 2018 để cải thiện kiến thức của mình về các bài kiểm tra đơn vị và các thư viện kiểm thử tích hợp, như JUnit 5, Cucumber, Robot framework và một số khác. 

4. General Purpose Libraries

Có một số thư viện tốt, có mục đích chung, bên thứ ba có sẵn cho các nhà phát triển Java, như Apache Commons và Google Guava.  Những thư viện này thường xuất hiện trong dự án của mình, bởi vì chúng đơn giản hóa rất nhiều nhiệm vụ.

Như Joshua Bloch đã nói đúng trong Java hiệu quả, không có điểm nào trong việc tái phát minh ra bánh xe. Chúng ta nên sử dụng các thư viện đã thử và thử nghiệm thay vì viết các thói quen riêng của chúng ta mọi lúc và sau đó.

Các thư viện phổ biến nhất cho các nhà phát triển Java

5. HTTP Libraries

Một điều tôi không thích về JDK là chúng thiếu tính hỗ trợ cho HTTP. Mặc dù bạn có thể tạo kết nối HTTP bằng cách sử dụng các lớp trong java.netpackage, nó không dễ dàng hoặc liền mạch để sử dụng các thư viện nguồn mở, bên thứ ba như Apache HttpClient và HttpCore.

Mặc dù JDK 9 đang hỗ trợ HTTP 2.0 và hỗ trợ tốt hơn cho HTTP, tôi đề nghị tất cả các nhà phát triển Java làm quen với các thư viện máy khách HTTP phổ biến, bao gồm HttpClient và HttpCore.

HTTP libraries tốt nhất cho Java Dev

6. XML Parsing Libraries

Có nhiều thư viện Parsing XML bao gồm Xerces, JAXB, JAXP, Dom4j và Xstream. Xerces2 là thế hệ tiếp theo của các trình phân tích cú pháp XML tuân thủ đầy đủ, hiệu năng cao trong “gia đình” Apache Xerces. Phiên bản mới này của Xerces được giới thiệu là Xerces Native Interface (XNI), một framework hoàn chỉnh để xây dựng các thành phần và cấu hình phân tích cú pháp cực kỳ mô-đun và dễ lập trình.

Các thư viện phân tích cú pháp XML tốt nhất cho các nhà phát triển Java

Trình phân tích cú pháp Xerces2 của Apache là việc triển khai tham chiếu của XNI, nhưng các thành phần, cấu hình và trình phân tích cú pháp khác có thể được viết bằng giao diện Native Xerces. Dom4j là một khung công tác XML linh hoạt cho các ứng dụng Java.

7. Excel Reading Libraries

Tin hay không – tất cả các ứng dụng trong thế giới thực phải tương tác với Microsoft Office dưới dạng này hay dạng khác. Nhiều ứng dụng cần cung cấp chức năng để xuất dữ liệu trong Excel và nếu bạn phải làm như vậy từ ứng dụng Java của mình, bạn cần API Apache POI.

Thư viện Microsoft tốt nhất cho các nhà phát triển Java

Đây là một thư viện rất phong phú cho phép bạn đọc và viết các tệp XLS từ một chương trình Java. Bạn có thể thấy nó liên kết đến một ví dụ làm việc về việc đọc một tệp Excel trong một ứng dụng core Java.

8. Thư viện Bytecode

Nếu bạn đang viết một framework hoặc thư viện tạo mã hoặc tương tác với bytecode, thì bạn phải cần một thư viện bytecode.

Chúng cho phép bạn đọc và sửa đổi bytecode được tạo ra bởi một ứng dụng. Một số thư viện bytecode phổ biến trong thế giới Java là javassist và Cglib Nodep.

Các thư viện thao tác Bytecode tốt nhất cho các nhà phát triển Java

Javassist (JAVA programming ASSISTant) làm cho thao tác Java bytecode  trở nên đơn giản hơn. Nó là lass library để chỉnh sửa bytecode trong Java. ASM là một thư viện chỉnh sửa bytecode hữu ích khác.

9. Database Connection Pool Libraries

Nếu bạn đang tương tác với database từ một ứng dụng Java nhưng không sử dụng pool libraries để kết nối cơ sở dữ liệu thì bạn đã bỏ lỡ điều gì đó.

Vì việc tạo các kết nối cơ sở dữ liệu trong thời gian thực hiện mất thời gian và yêu cầu xử lý chậm hơn, nên luôn sử dụng các thư viện kết nối DB. Một số loại phổ biến là Commons Pool và DBCP.

Trong một ứng dụng web, máy chủ web thường cung cấp các chức năng này, nhưng trong các ứng dụng core Java, bạn cần phải bao gồm các thư viện kết nối này vào đường dẫn lớp của bạn để sử dụng pool kết nối cơ sở dữ liệu.

Nếu bạn muốn tìm hiểu thêm về JDBC và nhóm kết nối trong một ứng dụng web, tôi khuyên bạn hãy xem qua khóa học JSP, Servlet và JDBC cho người mới bắt đầu ở Udemy.

10. Messaging Libraries

Tương tự như đăng nhập và kết nối CSDL, nhắn tin cũng là một tính năng phổ biến của nhiều ứng dụng Java trong thế giới thực.

Java cung cấp JMS (Java Messaging Service) đó không phải là một phần của JDK. Đối với thành phần này, bạn cần phải có một jms.jar riêng biệt.

Tương tự, nếu bạn đang sử dụng các giao thức nhắn tin của bên thứ ba, như Tibco RV, thì bạn cần sử dụng một JAR của bên thứ ba – tibrv.jar – trong ứng dụng classpath của bạn.

Trên đây là một nửa số thư viện mình dự định sẽ chia sẻ với các bạn, số thư viện còn lại mình xin phép sẽ chia sẻ trong bài tiếp theo. Tuy nhiên, trong thời gian chờ đợi phần tiếp theo, các Java Dev hãy dành thời gian tham gia một sự kiện hoàn toàn miễn phí của LINE Vietnam để được update những cập nhật mới nhất về Java cũng như các vấn đề xoay quanh Java 9 nhé.

Đóng góp ý kiến

0774964469