Khái niệm cơ sở

Khái niệm về framework

  1. Framework là gì?

    Framework là một bộ khung phần mềm được thiết kế sẵn, cung cấp cấu trúc, thư viện, công cụ và quy ước nhằm hỗ trợ lập trình viên phát triển ứng dụng một cách nhất quán, nhanh chóng và dễ dàng.

    Framework định nghĩa sẵn kiến trúc của ứng dụng, luồng xử lý và thường kèm theo các tính năng như quản lý routing, kết nối cơ sở dữ liệu, xử lý dữ liệu, bảo mật, v.v. Lập trình viên sẽ viết mã nguồn bổ sung vào các vị trí được định sẵn thay vì phải xây dựng toàn bộ từ đầu.

  2. Các thành phần tiêu biểu của một framework

    • Cấu trúc thư mục chuẩn: Thư viện, mã nguồn, tài nguyên, v.v. được tổ chức theo cấu trúc chuẩn, giúp thao tác thuận tiện, mở rộng dễ dàng.
    • Thư viện tích hợp: Phục vụ các xử lý phổ biến như xác thực người dùng, quản lý session, xử lý form, truy vấn cơ sở dữ liệu.
    • Công cụ dòng lệnh (CLI): Tạo dự án, khởi tạo các thành phần, biên dịch, đóng gói, v.v.
    • Routing: Ánh xạ URL tới controller hoặc chức năng.
    • Template/view: Hỗ trợ xây dựng giao diện (nếu là fullstack framework).
    • Kiểm thử và gỡ lỗi: Tích hợp kiểm thử đơn vị, kiểm thử chức năng và gỡ lỗi.
  3. Chú ý khi sử dụng framework

    • Framework quyết định cách tổ chức mã nguồn, luồng xử lý và công nghệ được sử dụng.
    • Khi chuyển đổi ứng dụng từ một framework này sang một framework khác, ứng dụng có thể phải viết lại gần như toàn bộ mã nguồn.
    • Lập trình viên cần hiểu rõ triết lý và kiến trúc của framework để sử dụng sao cho hiệu quả.
  4. Một số framework phổ biến

    • Spring Boot: Framework mạnh mẽ để phát triển nhiều loại ứng dụng từ web tới microservices, hỗ trợ tốt RESTful API, bảo mật cao, xử lý dữ liệu dễ dàng.
    • Laravel: Dễ học, cú pháp đẹp, tích hợp nhiều tính năng mạnh mẽ như ORM (Eloquent), Auth, Routing, Queue, v.v.
    • Django: “Batteries included” – Đầy đủ tính năng từ Auth đến Admin, tính bảo mật cao.
    • Express.js: Một framework tối giản, dễ mở rộng, thường dùng để xây dựng RESTful API.
    • React: Thư viện UI được phát triển bởi Meta, giúp xây dựng giao diện động bằng JavaScript.
    • Vue.js: Dễ tiếp cận, học nhanh, phù hợp với dự án có quy mô từ nhỏ tới lớn.