it-swarm-vi.com

Thư viện so với khung so với API?

Sự khác biệt giữa thư viện, khung và API là gì? Tất cả đều giống nhau đối với tôi. Tôi muốn nghe mọi người nghĩ về điều này.

33
Bob Dole

Thư viện là một tập hợp các hàm/đối tượng phục vụ cho một mục đích cụ thể. bạn có thể sử dụng một thư viện trong một loạt các dự án.

Khung là một tập hợp các mẫu và thư viện để giúp xây dựng một ứng dụng.

API là giao diện cho các chương trình khác tương tác với chương trình của bạn mà không cần truy cập trực tiếp.

Nói cách khác, hãy nghĩ về một thư viện như một phần bổ sung/phần của ứng dụng, khung là khung xương của ứng dụng và API như một phần hướng ra ngoài của ứng dụng nói trên.

35
GSto

Câu trả lời tốt cho đến nay nhưng họ bỏ lỡ một điểm chính - một khung sử dụng IoC . Mã của bạn được bao quanh bởi một khung. Nó sống bên trong nó. Ngược lại, mã của bạn chỉ sử dụng thư viện hoặc API. Nó sống bên ngoài nó. IoC là sự khác biệt.

14
Scant Roger

Một thư viện là một tập hợp các mã được xây dựng để thực hiện các tác vụ phổ biến. Mã thư viện có xu hướng tương đối ổn định và không có lỗi. Sử dụng các thư viện thích hợp có thể làm giảm số lượng mã cần viết. Nó sẽ có xu hướng giảm dòng mã cho một ứng dụng sẽ tăng tốc độ phân phối chức năng. Trong hầu hết các trường hợp, tốt hơn là sử dụng một thói quen thư viện hơn là viết mã của riêng bạn.

API (Giao diện lập trình ứng dụng) là giao diện cho một số chức năng cho phép ứng dụng truy cập chức năng có sẵn. Một API có thể được gọi là Giao diện. API tồn tại ở nhiều cấp độ bao gồm hệ thống, thư viện, khung, chương trình và ứng dụng. API nên được xác định trước khi mã triển khai chúng được triển khai.

API phải ổn định, mặc dù các phần của API có thể không được chấp nhận vì nhiều lý do. API càng được sử dụng rộng rãi thì càng khó thay đổi nó. Hầu hết nếu không phải tất cả các API Java 1.0 vẫn có sẵn, mặc dù nhiều phương thức đã không được chấp nhận.

Framework là một tập hợp các API được thiết kế để làm cho việc xây dựng các ứng dụng trở nên đơn giản hơn. Các khung cung cấp việc triển khai cho các thành phần có thể tái sử dụng. Khung tốt có xu hướng được chuyên môn hóa trong ứng dụng của họ.

Java Bộ sưu tập Khung là tập hợp các API cho nhiều loại đối tượng khác nhau có thể được sử dụng để xử lý các bộ sưu tập. Nó cung cấp một hệ thống phân cấp API cho các bộ sưu tập khác nhau. Trong Java Khung bộ sưu tập Giao diện Sắp xếp mở rộng Giao diện cài đặt mở rộng giao diện Bộ sưu tập. Các API này là các giao diện trừu tượng và các triển khai thực tế có các tên khác nhau. Khung sưu tập giúp triển khai các bộ sưu tập đơn giản và đơn giản hóa việc triển khai thay đổi trong quá trình phát triển.

Các khung có thể được xây dựng từ các khung nhỏ hơn như được thấy trong Java Spring Framework nhắm vào phát triển J2EE. Spring bao gồm hơn một chục khung, nhiều khung có thể được sử dụng riêng hoặc thay thế bằng các khung khác khuôn khổ.

Việc sử dụng các thư viện, API và khung thích hợp có thể đơn giản hóa việc phát triển. Các thành phần này quan tâm đến các vấn đề chung và cho phép nhóm phát triển tập trung vào các vấn đề cụ thể của ứng dụng.

3
BillThor

Một khung là một bước lên từ thư viện. Nếu hộp công cụ của bạn là một thư viện thì hội thảo của bạn sẽ là một khung.

Wikipedia nói

API là một bản tóm tắt mô tả giao diện cho sự tương tác với một bộ các chức năng được sử dụng bởi các thành phần của hệ thống phần mềm

Điểm khác biệt quan trọng giữa API và giao diện người dùng là API cho phép các phần mềm/dịch vụ khác tương tác với giải pháp của bạn theo chương trình.

API có thể được xây dựng cho cả ứng dụng (thông qua dll hoặc plugin) hoặc trang web và dịch vụ (thông qua REST và dịch vụ web)

2
Homde

Đi đến thư viện và bắt đầu đọc sách. Nếu bạn là ứng dụng thì bộ sưu tập sách là thư viện. Các kệ, tủ và các hợp chất chứa tất cả những thứ này tạo thành khung. Mọi thứ bạn tiếp xúc trong khi thực hiện nhiệm vụ đọc sách là API.

1
explorest

API xác định cách sử dụng một cái gì đó khác về các đối tượng và phương thức có thể được sử dụng từ một nguồn. Ví dụ: tích hợp Twitter hoặc Facebook vào một trang web sử dụng API từ Twitter hoặc Facebook để đảm bảo dữ liệu phù hợp được cập nhật.

Các khung có xu hướng lớn hơn một chút theo nghĩa vì điều này gần như có thể hình thành ngôn ngữ của chính nó đôi khi. jQuery là một ví dụ về một khung công tác có cú pháp riêng và có trọng lượng hơn một chút về mặt nhận thức theo mã của tôi. Các khung cũng có thể là các nền tảng làm cho chúng giống với API theo một nghĩa nào đó, ví dụ: Mỗi khung Win32API hoặc .Net có nhiều phương thức để xây dựng một ứng dụng để có thể có các Khung có API trong đó và API cũng được xem là Khung.

Các thư viện có xu hướng là các tệp nhị phân triển khai API hoặc Framework và vì vậy chúng là các bit mà bạn phải sử dụng API hoặc Framework trong một số trường hợp. Ít nhất đó là cách tôi nhìn thấy những điều khoản này và sự khác biệt giữa chúng.

1
JB King

Ứng dụng được phát triển bằng các thư viện dựa trên khung và giao tiếp thông qua API.

Nếu bạn xây dựng một ứng dụng nói ứng dụng xử lý ảnh trực tuyến,

  • Bạn có thể sử dụng một số thư viện xử lý hình ảnh viết sẵn.
  • trên bất kỳ khung nào bạn biết sẽ hướng dẫn bạn xây dựng ứng dụng.
  • Bạn sẽ cung cấp cho ứng dụng một số cách để tương tác với thế giới bên ngoài .. đó sẽ là API ứng dụng của bạn với phần còn lại của thế giới.

Khi có cuộc gọi đến ứng dụng của bạn

  • nó sẽ được xử lý theo cách bạn thiết kế với hướng dẫn của khung
  • xử lý cuộc gọi được thực hiện bởi thư viện
  • các chức năng này sẽ được truy cập thông qua API của bạn từ thế giới bên ngoài

cho người gọi

lý do tại sao những điều này tồn tại:

  • thư viện: cứu bạn khỏi phát minh lại bánh xe
  • framework: giúp bạn tránh khỏi các bẫy bất ngờ của thiết kế và xử lý hệ thống trừ khi chính khung đó có lỗi
  • API: đảm bảo tính bảo mật của ứng dụng bằng cách can thiệp vào lõi từ truy cập trong thế giới thực
0
ganesh

Thư viện là một tập hợp các mã được sử dụng để đơn giản hóa các tác vụ phổ biến - nó có thể là các lớp, hàm hoặc bất cứ thứ gì cụ thể cho ngôn ngữ hoặc nền tảng của bạn. Một ví dụ điển hình có thể là một thư viện thao tác chuỗi cung cấp trợ giúp cho các tác vụ thông thường (xây dựng, chia tách, tìm kiếm hoặc sắp xếp chuỗi, v.v.).

API (giao diện lập trình ứng dụng) là một định nghĩa ('giao diện') về cách làm việc với ứng dụng, hệ thống hoặc công nghệ khác. Nó chủ yếu xác định các hoạt động có sẵn để tương tác với hệ thống khác đó. API có thể là thư viện (có nghĩa là API được bọc trong thư viện hoặc tập hợp các lớp), nhưng điểm khác biệt là API luôn tham chiếu một hệ thống bên ngoài - cho dù đó là cơ sở dữ liệu, dịch vụ web, ứng dụng khác hay chính hệ điều hành.

Khung là một khái niệm lớn hơn - thông thường sẽ chứa một số thư viện và API để thực hiện các tác vụ phổ biến. Nó tồn tại ở cấp độ khái niệm cao hơn - nó không chỉ là một bộ công cụ, mà còn là một bộ sưu tập các mẫu thiết kế, thực tiễn tốt nhất và phương pháp luận. Khung phần mềm là phần mở rộng của một khung - ý nghĩa của nó bao gồm là một nền tảng mà từ đó mọi thứ được xây dựng, cung cấp hỗ trợ và cấu trúc, và đưa ra hướng dẫn và định nghĩa cho các yêu cầu.

0
Kirk Broadhurst