Framework là gì? Framework và Library có gì khác nhau?

Trong giới lập trình ngày nay, các khái niệm "Framework" và "Library" thường xuyên được nhắc đến, bởi chúng đóng vai trò rất quan trọng trong phát triển ứng dụng hiện đại. Vậy cụ thể Framework là gì? Framework có gì khác với Library? Bài viết sau đây sẽ giải thích cho bạn.

Framework là gì?

Trong ngành công nghệ thông tin, Framework (theo nghĩa đen là bộ khung) chỉ một tập hợp các thư viên phần mềm, API, trình biên dịch và hơn thế nữa để tạo ra một môi trường hỗ trợ việc phát triển ứng dụng vừa được hợp lí hoá, vừa tiết kiệm thời gian.

framework

Để dễ hiểu hơn, hãy so sánh với việc xây một căn nhà. Sau khi dựng xong bộ khung cho ngôi nhà, chúng ta mới có thể xây tiếp những phần còn lại và sắp xếp vị trí nội thất sao cho hợp lí. Điểm khác nhau chỉ là khi xây nhà thì ta vẫn phải đầu tư thời gian và tiền bạc để dựng bộ khung, còn Framework trong công nghệ thông tin thì không cần mất công tạo lại vì nó đã có sẵn để các lập trình viên sử dụng. Đó cũng là một trong những lợi thế chủ yếu của Framework, bởi luôn có những vấn đề, yêu cầu lặp lại nhiều lần, đòi hỏi phải có một cấu trúc có thể tái sử dụng.

Ưu điểm của Framework

Tuỳ vào ngôn ngữ và lĩnh vực lập trình mà có các Framework khác nhau. Nhưng nhìn chung tất cả đều mang lại những lợi ích cơ bản như sau:

  • Nguồn mở và miễn phí: Phần lớn các Framework phổ biến đều là nguồn mở hoặc có sẵn để sử dụng, đồng thời cho phép dùng vào việc phát triển các ứng dụng thương mại mà không bị hạn chế.
  • Hiệu quả cao: Có thể coi đây là lí do chính mà Framework được tạo ra. Khả năng tái sử dụng giúp lập trình viên không cần viết các đoạn mã lặp đi lặp lại, cùng với những tính năng chung và các mẫu được xây dựng sẵn trong Framework giúp tiết kiệm tối đa thời gian và công sức trong suốt quá trình phát triển ứng dụng.
  • Độ bảo mật cao: Những Framework phổ biến thường được phát triển bởi nhiều nhà thiết kế chuyên nghiệp, thậm chí còn được hậu thuẫn phía sau bởi các công ty công nghệ lớn, nên những rủi ro về bảo mật chắc chắn luôn được quan tâm giải quyết.
  • Khả năng mở rộng: Sử dụng Framework, bạn có thể kế thừa những tính năng mà nó cung cấp và mở rộng bằng cách ghi đè lên các lớp hay phương thức một cách có chọn lọc. Framework cho phép lập trình viên viết thêm các chức năng mới trong phạm vi các nguyên tắc, tiêu chuẩn chung của nó.
  • Nguồn tài liệu và hỗ trợ: Phần lớn các Framework đều có sẵn những tài liệu hướng dẫn hoặc được hỗ trợ trực tuyến. Ngoài ra, những Framework phổ biến còn có cộng đồng sử dụng to lớn sẵn sàng giúp đỡ cho bạn.

Dù vậy, Framework cũng tồn tại nhiều nhược điểm khiến bạn nên nhắc sử dụng, chẳng hạn như cần nhiều thời gian để thành thạo, chỉ chuyên dụng cho một lĩnh vực lập trình nhất định, phải viết code tuân thủ theo nguyên tắc và tiêu chuẩn của Framework, không phù hợp với các ứng dụng nhỏ và đơn giản, …

Framework và Library có gì khác nhau?

Trước đây, khi khái niệm Framework còn là thứ gì đó xa lạ, Library (thư viện phần mềm) chính là công cụ hỗ trợ của các lập trình viên. Đó là tập hợp các lớp, chức năng được viết sẵn để giải quyết nhiều vấn đề trong quá trình phát triển phần mềm, ví dụ như yêu cầu tái sử dụng, mở rộng và chia sẻ giữa các ứng dụng.

So sánh giữa Framework và Library:

  • Giống nhau: Đều cung cấp các chức năng được viết sẵn để có thể tái sử dụng nhiều lần.
  • Khác nhau:
    • Mỗi Framework chứa một tập hợp các Library.
    • Framework mang lại bộ khung, cung cấp những hướng dẫn để chúng ta tuân theo nhưng phải trong phạm vi các tiêu chuẩn của nó. Còn Library chỉ đơn thuần là công cụ tiện ích, có thể thoải mái sử dụng và tuỳ biến.
    • Khi dùng Framework, mã code của Framework gọi đến mã code của bạn. Còn với Library, mã code của bạn gọi đến mã code của Library đó.

So sánh giữa Framework và Library

Một số Framework phổ biến

Mỗi một ngôn ngữ lập trình, và mỗi một lĩnh vực lập trình lại có những Framework khác nhau. Phổ biến hơn cả có thể kể đến .NET Framework và các web Framework.

  • .NET Framework: Nền tảng lập trình và cũng là nền tảng thực thi ứng dụng chủ yếu trên hệ điều hành Windows của Microsoft. Nó bao gồm tập các thư viện lập trình lớn, và những thư viện này hỗ trợ việc xây dựng các chương trình phần mềm như lập trình giao diện; truy cập, kết nối cơ sở dữ liệu; ứng dụng web; các giải thuật, cấu trúc dữ liệu; giao tiếp mạng...
  • Web Framework: Mỗi ngôn ngữ có các Framework riêng, ví dụ như:
    • Với CSS: Bootstrap, Pure, Bulma, …
    • Với Javascript: Vue.js, AngularJS, React, …
    • Với PHP: Laravel, Symfony, CodeIgniter, …

Web framwork

Qua bài viết này, bạn đã hiểu Framework là gì, lợi ích của Framework cũng như điểm khác nhau giữa Framework với Library rồi phải không? Chúc bạn lựa chọn được những Framework phù hợp với mình và nhanh chóng thành thạo với chúng!

Viết bình luận