EzyPlatform sử dụng rất nhiều các thư viện (khoảng 86 thư viện) trong đó hầu hết là các thư viện thuộc hệ sinh thái ezyfox do Young Monkeys phát triển.

Thư viện lập trình là gì?

thu-vien-lap-trinh.png

Có thể hiểu đơn giản một thư viện lập trình là nơi mà bạn có thể lấy các lớp, các hàm được cung cấp sẵn bởi thư viện đó. Nếu phần mềm là một ngôi nhà thì thư viện lập trình chính là nền móng, việc của bạn là thiết kế và xây dựng dựa trên nền móng đó.

Không có thư viện nào có thể cung cấp được mọi lớp, hàm mà chúng ta cần, vậy nên chúng ta sẽ phải sử dụng nhiều thư viện khác nhau để tạo ra được một sản phẩm.

Kiến trúc thư viện của EzyPlatform

Như đã nói ở phần đầu EzyPlatform sử dụng rất nhiều các thư viện khác nhau, tuy nhiên mình sẽ chủ yếu đến các thư viện do Young Monkeys phát triển thôi nhé.

Kiến trúc thư viện của EzyPlatform.png

Kiến trúc EzyPlatform có 4 vòng thư viện.

Vòng 1

Đây là vòng nằm trong cùng, nó chủ yếu sử dụng các thư viện của ezyfox, ví dụ:

  1. ezyfox-util: Cung cấp các lớp và các hàm cơ bản nhất mà chúng ta cần, ví dụ như Generics, Reflection, Annotation.
  2. ezyfox-security: Cung cấp các lớp và các hàm cho bảo mật.
  3. ezyfox-bean: Cung cấp các lớp, các hàm quản lý các đối tượng phụ thuộc có trong EzyPlatform.
  4. ezyfox-binding: Cung cấp các lớp, các hàm để ánh xạ dữ liệu dạng thô với các lớp java.
  5. ezyfox-concurrent: Cung cấp, các hàm cho xử lý đa luồng.
  6. ...

Bạn có thể khám phá thêm các thư viện của ezyfox tại Github.

Vòng 2

Vòng này chủ yếu sử dụng các thư viện dạng framework, nghĩa là có tính đóng khung và phải tuân theo một số quy tắc thì mới sử dụng được, một số thư viện được sử dụng ở vòng này bao gồm:

  1. EzyFox Server: Cung cấp các lớp, hàm cho lập trình socket.
  2. EzyHTTP: Cung cấp các lớp, hàm cho lập trình HTTP.
  3. EzyData: Cung cấp các lớp, hàm cho để giao tiếp với dữ liệu và cơ sở dữ liệu.
  4. ...

Vòng 3

Vòng này có các thư viện được xây dựng dựa trên các thư viện của vòng 2, một số thư viện có thể kể đến như:

  1. ezyplatform-common-sdk: Cung cấp các lớp, hàm cơ sở cho EzyPlatform.
  2. ezyplatform-admin-sdk: Cung cấp các lớp, hàm cho phần quản trị của EzyPlatform.
  3. ezyplatform-socket-sdk: Cung cấp các lớp, hàm cho phần socket của EzyPlatform.
  4. ezyplatform-web-sdk: Cung cấp các lớp, hàm cho phần web của EzyPlatform.
  5. ...

Bạn có thể tìm thấy một số thư viện được công khai tại Github. Một số thư viện không được công khai nhưng được đóng gói vào EzyPlatform bạn vẫn có thể sử dụng và xem mã nguồn thông qua IDE.

Vòng 4

Vòng này chứa các thư viện lập trình của bạn hoặc bất kỳ thư viện của bên thứ 3 nào mà bạn sử dụng để tạo ra plugin mà không có giới hạn. Ví dụ trong plugin ezymail mình có sử dụng thư viện javax.mail.

Tổng kết lại

EzyPlatform được tạo nên bởi các thư viện lập trình được Young Monkeys phát triển trong nhiều năm, cùng với các thư viện lập trình của bên thứ 3 mà bạn có thể tuỳ ý thêm vào sẽ góp phần mở rộng EzyPlatform không giới hạn.