Thư viện (libraries) khác Framework ở chỗ nào?

Mình hiểu là nó đều là tài nguyên được xây dựng từ chính ngôn ngữ lập trình. Để giúp công việc lập trình nhanh hơn, hiệu quả hơn bằng việc áp dụng nó. Vậy bạn nào cho mình bieetr rõ hơn sự khác biệt của thư viện và framework đc ko ah? Cám ơn

Trích nguyên văn 1 câu trả lời trên Quora:

Library
A library is a reusable piece of code which you use as it comes i.e it does not provide any hooks for you to extend it. A library will usually focus on a single piece of functionality, which you access through an API. You call a library function, it executes some code and then control is returned to your code. An example of a good Java library (or libraries in this case) is Apache Commons: http://commons.apache.org/

Framework
A framework is a piece of code which dictates the architecture your project will follow. Once you choose a framework to work with, you have to follow the framework’s code and design methodologies. The framework will provide you with hooks and callbacks, so that you build on it - it will then call your plugged-in code whenever it wishes, a phenomenon called Inversion of Control.

A framework will usually include a lot of libraries to make your work easier.

4 Likes

Hiểu đơn giản thế này:

  • Thư viện: là một nhóm chức năng được viết sẵn. Việc sử dụng thư viện hay không đều không ảnh hưởng tới dự án đang phát triển, vì thư viện không phải là phần chính. Ở đây project do mình viết là làm chủ.
  • Framework: là một khối kiến trúc được thiết kế đầy đủ hợp nhất để thực thi. Lập trình viên phải tuân thủ theo nguyên tắc của framework và triển khai mã nguồn theo logic của framework. Ở đây framework làm chủ project.

Hay nói một cách khác.

  • Library là tập hợp các class hay function để xử lý một việc cụ thể.
  • Framework là một khung chương trình sẵn, lập trình viên cần bổ sung code để chạy theo ý mình.
7 Likes

Trường hợp của Java Collection Framework thì sao ae? Mình hơi bối rối chỗ này :v

libraries <= framework
nhiều library hợp lại làm nên framework
Nhưng 1 framework lại là 1 framework chứ không phải nhiều library. Vì còn nhiều thứ khác nữa

đúng rồi, mình cũng thắc mắc cái này :((

Điểm giống: hàng dựng sẵn, phù hợp cho những nhu cầu thông dụng chung chung, cần lấy ra xài liền

Điểm khác:

  • Framework = cái khung sườn của cái nhà tiền chế.
  • Library = combo đồ nội thất nhà bếp hay combo đồ nội thất phòng tắm hoặc fullset bộ ghế sofa…

Khi bạn xây 1 cái nhà, nếu quyết định không tự xây mà xài 1 cái khung người ta làm sẵn (framework),thì bạn không thể thay đổi nữa, hay không thể đổi qua framework khác, vì đổi tức bạn xây 1 cái nhà mới (= làm dự án mới)

Còn combo đồ nội thất bạn mua về, bữa sau người ta có combo khác đẹp hơn, sang trọng hơn, giá rẻ hơn, thì bạn có thể dổi bộ mới, hoặc xài song song với bộ cũ.

4 Likes

Trích từ wiki:

Although referred to as a framework, it [The Java collections framework] works in a manner of a library. The collections framework provides both interfaces that define various collections and classes that implement them.

2 Likes

Well explained. I wish that those who work with IT should understand the basic English. Library is collection of different (un)related things and Framework is a frame for different work (hence; frame+work = framework)

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?