Khái niệm Framework và Sự khác biệt giữa Framework và Thư viện

Nội dung này đã có sự cho phép của tác giả Kien Dang Chung

Trong lĩnh vực lập trình ứng dụng và đặc biệt là lập trình web, khái niệm Framework được đề cập rất nhiều bởi nó đang trở thành một xu hướng phổ biến trong việc phát triển ứng dụng hiện nay. Framework là gì? Nếu bạn có câu trả lời chính xác, tức là bạn đã hiểu cách thức xây dựng những ứng dụng tiên tiến nhất.

Khái niệm Framework là gì?

Khái niệm Framework và Sự khác biệt giữa Framework và Thư viện

Framework (bo khung) là một từ tiếng Anh chỉ kết cấu hỗ trợ của một cấu trúc thường được làm bằng bê tông, thép hoặc gỗ. Trong lĩnh vực công nghệ thông tin, thuật ngữ Framework cũng được sử dụng rộng rãi. Nó là một tập hợp các thư viện phần mềm, các trình biên dịch, dịch ngược hoặc các API (Xem API là gì?) nhằm cung cấp một môi trường giúp lập trình ứng dụng trở nên nhanh chóng. Trong lĩnh vực lập trình ứng dụng, đặc biệt là lập trình web, có rất nhiều vấn đề định kỳ mà chúng ta gặp phải. Thậm chí, ở các công ty khác nhau, mọi người cũng phải đối mặt với các vấn đề tương tự. Vậy có cách nào giúp tiết kiệm thời gian và công sức khi giải quyết các vấn đề này không? Rất may mắn, Framework giúp giải quyết những vấn đề phức tạp trở nên đơn giản hơn và chúng ta chỉ cần tập trung vào công việc chính để hoàn thành dự án.

Lợi ích của việc sử dụng Framework

Khái niệm Framework và Sự khác biệt giữa Framework và Thư viện

Trong mỗi ngôn ngữ lập trình và lĩnh vực, có nhiều Framework được tạo ra bởi các nhóm lập trình hoặc được hỗ trợ bởi các công ty lớn. Do đó, việc sử dụng lại các Framework này mang lại rất nhiều lợi ích:

  • Framework cung cấp sẵn các tính năng chung, ví dụ: tất cả các dự án web đều cần có tính năng quản lý người dùng như đăng ký, đăng nhập, tích hợp mạng xã hội, kết nối cơ sở dữ liệu…
  • Sử dụng Framework giảm thiểu thời gian và công sức phát triển ứng dụng.
  • Cho phép ứng dụng kế thừa một cấu trúc được chuẩn hóa, dễ dàng vận hành và bảo trì sau này.

Ngoài ra, việc sử dụng Framework cũng có một số nhược điểm như sau:

  • Bạn phải dành thời gian để học và nắm vững một Framework.
  • Kích thước ứng dụng tăng lên khi sử dụng Framework. Một trang web có thể có hàng vài trăm MB mã nguồn khi chưa có nội dung nào.
  • Bạn phải viết code tuân thủ các tiêu chuẩn chung mà Framework đặt ra.
  • Không phù hợp với các ứng dụng quá nhỏ. Ví dụ, nếu bạn tạo một ứng dụng nhỏ chỉ hiển thị kết quả World Cup 2018 chẳng hạn, việc áp dụng một Framework vào là không cần thiết, thay vào đó bạn có thể tự viết code nhanh hơn.

Sự khác biệt giữa Framework và Thư viện

Thư viện – một khái niệm mà bạn có thể đã biết trước đây, khi Framework vẫn còn là một khái niệm mới lạ, hoặc phải trả phí để sử dụng các Framework do các công ty uy tín phát triển, thì các Thư viện lập trình nhỏ vẫn được chia sẻ miễn phí trên mạng. Mỗi lập trình viên đều có một thư mục cá nhân trên máy tính chứa hàng trăm Thư viện nhỏ khác nhau để phục vụ cho các dự án. Từ khoảng năm 2010 trở đi, phong trào phát triển Framework đã rất mạnh mẽ, đặc biệt là trong lĩnh vực web. Các Framework là tập hợp Thư viện lập trình, kết hợp với nhiều công cụ hữu ích khác như trình biên dịch, trình diễn, các công cụ dòng lệnh… tạo thành một bộ khung cho tất cả các ứng dụng web.

Khái niệm Framework và Sự khác biệt giữa Framework và Thư viện

Một khác biệt khác giữa việc sử dụng Framework và Thư viện là cách gọi các khối mã (phương thức, hàm). Trong Framework, mã trong Framework sẽ gọi đến mã nguồn của bạn, trong khi đó với Thư viện lập trình, mã của bạn gọi đến mã nguồn trong Thư viện lập trình. Với Thư viện, nó tương tự như mô hình client/server, client gửi yêu cầu và server trả về kết quả. Ví dụ khi sử dụng Thư viện cURL, khi bạn sử dụng một hàm trong Thư viện cURL, mã PHP của bạn gọi đến hàm này trong Thư viện cURL, điều này đồng nghĩa với việc mã của bạn là người gọi, trong khi Thư viện lập trình là bị gọi. Khi sử dụng các Framework PHP như Laravel, mối quan hệ này bị đảo ngược, mã trong Framework gọi đến mã ứng dụng của bạn, với mẫu thiết kế được biết đến như Inversion of Control. Nếu bạn đã làm quen với Laravel, bạn sẽ thấy mã Framework được đưa vào index.php để quản lý luồng điều khiển, trong khi mã của chúng ta làm việc trong các điều khiển để tạo ra các “hành vi” cho ứng dụng.

Khái niệm Framework và Sự khác biệt giữa Framework và Thư viện

Từ đó, Framework tập trung vào quản lý luồng điều khiển trong khi Thư viện tập trung vào tạo ra hành vi.

Các dạng Framework phổ biến

Có rất nhiều Framework trong các ngôn ngữ lập trình khác nhau, với các đặc điểm khác nhau. Framework phổ biến nhất có lẽ là các Framework .Net và các Framework web. .NET Framework của Microsoft là một nền tảng lập trình ứng dụng chủ yếu chạy trên hệ điều hành Windows hoặc các hệ điều hành hỗ trợ .NET Framework. Các chương trình viết trên nền .NET Framework sẽ được triển khai trong môi trường phần mềm được biết đến với tên gọi Common Language Runtime (CLR). Môi trường này là một máy ảo cung cấp các dịch vụ bảo mật, quản lý bộ nhớ và xử lý các lỗi ngoại lệ. .NET Framework có ý tưởng tương tự như máy ảo Java. Trong .NET Framework, còn có một khái niệm được sử dụng rộng rãi khác liên quan đến Framework là Entity Framework. Đây là nền tảng được sử dụng để làm việc với cơ sở dữ liệu thông qua cơ chế ánh xạ đối tượng-quan hệ (ORM), cho phép truy vấn và thao tác với cơ sở dữ liệu thông qua các đối tượng lập trình. Trong lĩnh vực web, chúng ta cũng có nhiều Framework khác nhau. Trong bài viết này, chúng ta chỉ liệt kê một số Framework được xem là số 1 hiện nay. Chúng ta đã biết rằng để lập trình một trang web, chúng ta sử dụng 3 ngôn ngữ chính là HTML, CSS và JavaScript, sau đó kết hợp với một ngôn ngữ máy chủ như PHP, ASP.NET, JSP… Với mỗi ngôn ngữ này, chúng ta có các Framework khác nhau.

  • CSS Framework: Bootstrap, Bulma…
  • JavaScript Framework: Vue.js, React, Angular…
  • PHP Framework: Laravel, Symfony, CodeIgniter…

Tổng kết

Từ bài viết này, bạn đã hiểu rõ về khái niệm Framework là gì? và tại sao cần sử dụng Framework? Nếu bạn có ý định học một Framework để lập trình web, Laravel là một lựa chọn tốt, nó dễ học, dễ áp dụng để tạo ra các trang web lớn, hoạt động nhanh và hiệu năng cao. Hãy tham khảo khóa học Laravel miễn phí với các bài giảng lý thuyết đơn giản và thực hành nhanh chóng.

Bài viết gốc được đăng tại allaravel.com

Bạn có thể quan tâm:

  • Modern C++ binary RPC framework nhẹ nhàng, không cần tạo mã
  • Cách Google xây dựng các Framework cho Web
  • Khám phá về các Framework

Xem thêm các việc làm hấp dẫn cho Developer tại TopDev

Related Posts