10 thư viện lập trình viên Java nên biết

Bạn muốn trở thành một lập trình viên Java giỏi bạn cần có 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ực hiện nhiều nhiệm vụ hữu ích. Dưới đây là 10 thư viện lập trình viên Java nên biết.

10 thư viện lập trình viên Java nên biết  (1)
 

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.

 

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.

10 thư viện lập trình viên Java nên biết  (3)

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ủ đề.

 

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.

10 thư viện lập trình viên Java nên biết  (4)

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.

 

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.

10 thư viện lập trình viên Java nên biết  (1)

 

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 đó.

10 thư viện lập trình viên Java nên biết  (5)

 

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.

10 thư viện lập trình viên Java nên biết  (2)

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.

 

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.

 

Đâ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.

 

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.

10 thư viện lập trình viên Java nên biết  (6)

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.

 

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.

 

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.

10 thư viện lập trình viên Java nên biết  (7)

Trên đây là một số thư viện mà một lập trình viên Java nên biết, chúc các bạn thành công.

Theo techtalk


098.778.2201
Chat Zalo