Hỏi 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.

3 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.
6 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

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