Sự khác biệt giữa framework vs Library vs IDE vs API vs SDK vs Toolkits? [đóng cửa]


144

Tôi muốn một số ví dụ. Tôi luôn luôn bối rối, vì vậy với một số ví dụ tôi có thể tìm ra nó tốt hơn.

Ngoài ra: Eclipse là API hay IDE?


1
Eclipse là một IDE
Thielicious

Câu trả lời:


294

Một IDE là một môi trường phát triển tích hợp - một trình soạn thảo văn bản suped-up với sự hỗ trợ bổ sung cho phát triển (ví dụ như các nhà thiết kế biểu mẫu, biên tập tài nguyên, vv), soạn thảo và gỡ lỗi các ứng dụng. ví dụ: Eclipse, Visual Studio.

Một thư viện là một đoạn mã mà bạn có thể gọi từ mã của riêng bạn, để giúp bạn làm mọi thứ nhanh chóng hơn / dễ dàng. Ví dụ: thư viện Xử lý Bitmap sẽ cung cấp các phương tiện để tải và thao tác hình ảnh bitmap, giúp bạn tiết kiệm được tất cả mã đó cho chính mình. Thông thường, một thư viện sẽ chỉ cung cấp một khu vực chức năng (xử lý hình ảnh hoặc hoạt động trên các tệp zip)

Một API (giao diện lập trình ứng dụng) là một thuật ngữ có nghĩa là chức năng / phương pháp trong một thư viện mà bạn có thể gọi điện để hỏi nó để làm việc cho bạn - giao diện vào thư viện.

Một SDK (software development kit) là một thư viện hoặc một nhóm các thư viện (thường với các ứng dụng công cụ thêm, các file dữ liệu và mẫu mã) mà viện trợ bạn trong việc phát triển mã mà sử dụng một hệ thống cụ thể (ví dụ như đang mở rộng cho việc sử dụng các tính năng của một hệ điều hành ( Windows SDK), vẽ đồ họa 3D thông qua một hệ thống cụ thể (DirectX SDK), viết bổ trợ để mở rộng các ứng dụng khác (Office SDK) hoặc viết mã để tạo một thiết bị như Arduino hoặc điện thoại di động làm những gì bạn muốn). Một SDK thường sẽ vẫn có một tiêu điểm duy nhất.

Một bộ công cụ giống như một SDK - đó là một nhóm các công cụ (và thường là thư viện mã) mà bạn có thể sử dụng để làm cho nó dễ dàng hơn để truy cập vào một thiết bị hoặc hệ thống ... Mặc dù có lẽ tập trung nhiều hơn vào việc cung cấp các công cụ và ứng dụng hơn trên thư viện mã chỉ .

Một khuôn khổ là một thư viện lớn hoặc một nhóm các thư viện cung cấp nhiều dịch vụ (chứ không phải là có lẽ chỉ có một khả năng tập trung xem như hầu hết các thư viện / SDK làm). Ví dụ, .NET cung cấp một khung ứng dụng - nó giúp sử dụng dễ dàng nhất (nếu không phải tất cả) các dịch vụ khác nhau mà bạn cần (ví dụ: Windows, đồ họa, in ấn, truyền thông, v.v.) để viết một loạt các ứng dụng - vì vậy một "Thư viện" cung cấp hỗ trợ cho hầu hết mọi thứ bạn cần làm. Thường thì một khung cung cấp một cơ sở hoàn chỉnh mà bạn xây dựng mã của riêng mình, thay vì bạn xây dựng một ứng dụng tiêu thụ mã thư viện để thực hiện các phần của công việc.

Tất nhiên có nhiều ví dụ trong tự nhiên không khớp chính xác với những mô tả này.


3
Bạn có thể nói rằng SDK, thư viện hoặc khung chứa API.
Bastien Vandamme

6
SDK là một triển khai cụ thể của khách hàng để dễ dàng tiêu thụ API, ví dụ: SDK javascript cho API Facebook. Thông thường, bạn sẽ thấy nhiều ngôn ngữ được trình bày trong phần SDK của tài liệu API, ví dụ: API twilio có pyk, ruby, C # và Java sdk cho API của họ. Chỉ để gây nhầm lẫn một chút nữa họ gọi đó là Thư viện API và SDK và tôi đã nghe cả hai thuật ngữ này được sử dụng thay thế cho nhau.
Rob

97

Tương tự xe

nhập mô tả hình ảnh ở đây

IDE: Văn phòng lập trình MS. Đó là nơi bạn nhập mã của mình, cộng với một số tính năng được thêm vào để giúp bạn trở thành một lập trình viên hạnh phúc hơn. (ví dụ: Eclipse, Netbeans ). Thân xe: Đó là những gì bạn thực sự chạm vào, nhìn thấy và làm việc.

Thư viện: Thư viện là một tập hợp các hàm, thường được nhóm thành nhiều tệp chương trình, nhưng được đóng gói thành một tệp lưu trữ duy nhất. Chương trình này chứa các chương trình được tạo bởi những người khác, do đó bạn không phải phát minh lại bánh xe. (ví dụ: Junit.jar, log4j.jar ). Một thư viện thường có vai trò chính, nhưng thực hiện tất cả các công việc của nó đằng sau hậu trường, nó không có GUI. Động cơ xe.

API: Tài liệu của nhà xuất bản thư viện. Đây là cách bạn nên sử dụng thư viện của tôi. (ví dụ API log4j , API Junit ). Hướng dẫn sử dụng xe hơi - vâng, xe hơi cũng đi kèm!


Bộ dụng cụ

Một bộ là gì? Đây là một bộ sưu tập của nhiều mặt hàng liên quan phối hợp với nhau để cung cấp một dịch vụ cụ thể. Khi ai đó nói bộ dụng cụ y tế, bạn sẽ có được mọi thứ bạn cần cho trường hợp khẩn cấp: thạch cao, aspirin, gạc và thuốc sát trùng, v.v.

nhập mô tả hình ảnh ở đây

SDK : Bữa ăn vui vẻ của McDonald . Bạn có mọi thứ bạn cần (và không cần) được đóng hộp gọn gàng: món chính, đồ uống, món tráng miệng và đồ chơi thưởng. SDK là một nhóm các thành phần phần mềm khác nhau được tập hợp thành một gói, sao cho chúng "sẵn sàng hành động" ngay lập tức. Nó thường bao gồm nhiều thư viện và có thể , nhưng có thể không nhất thiết phải bao gồm các plugin, tài liệu API, thậm chí là chính IDE. (ví dụ: Bộ phát triển iOS ).

Bộ công cụ : GUI. GUI. GUI. Khi bạn nghe 'bộ công cụ' trong ngữ cảnh lập trình, nó thường sẽ đề cập đến một bộ thư viện dành cho phát triển GUI. Vì các bộ công cụ là trung tâm UI, chúng thường đi kèm với các plugin (hoặc IDE độc lập) cung cấp các tiện ích vẽ màn hình. (ví dụ: GWT )

Khung : Mặc dù không phải là khái niệm phổ biến, một khung có thể được xem như một bộ. Nó cũng có một thư viện (hoặc một tập hợp các thư viện làm việc cùng nhau) cung cấp một cấu trúc & mẫu mã hóa cụ thể (như từ, khung ). (ví dụ: Khung mùa xuân)


41
Một API không chỉ là tài liệu. Trên thực tế nó không phải là tài liệu. Tôi hiểu sự tương tự của bạn nhưng tài liệu hoặc tài liệu API là hướng dẫn sử dụng xe của bạn và API là bảng và nút xe của bạn.
Bastien Vandamme

1
Bạn có thể làm sự khác biệt giữa GUI và API. GUI (Giao diện người dùng đồ họa) là giao diện cho người dùng không chuyên nghiệp cuối cùng. API (Giao diện lập trình ứng dụng) là giao diện cho các chương trình khác. Khi bạn phát triển và ứng dụng, bạn có thể tạo GUI hoặc API hoặc cả hai. Bạn cũng có thể tạo các loại giao diện khác.
Bastien Vandamme

Luôn có một API đằng sau GUI. GUI chỉ đơn giản hóa trường hợp sử dụng. Trong CNTT, nhiều hơn vì những lý do không chuyên nghiệp như giao diện đồ họa thay vì mã. Tuy nhiên về logic xe hơi của bạn: Bạn có thể không thể tự lái xe, bạn phải học và biết lái xe (xem xét các bài học lái xe như một hướng dẫn hoặc tài liệu hướng dẫn). Nếu bạn không muốn đạt được nó, bạn có thể muốn bước lên xe buýt hoặc taxi vì không có kỹ năng lái xe (trong trường hợp này không có kỹ năng lập trình) - do đó tôi sẽ coi phương tiện giao thông công cộng là GUI. Nghe buồn cười nhưng chết tiệt thật.
Thielicy

Tôi không đồng ý với "[thư viện] không có GUI". Trong thế giới JavaScript, rất phổ biến đối với các thư viện có chứa GUI.
user1505520

5

Xem xét phát triển Android:

IDE: Eclipse, v.v.

Thư viện: android.app.Activity library (Lớp có tất cả mã)

API: Giao diện về cơ bản tất cả các chức năng mà chúng ta gọi

SDK: SDK Android cung cấp cho bạn các thư viện API và các công cụ dành cho nhà phát triển cần thiết để xây dựng, kiểm tra và gỡ lỗi ứng dụng cho Android (---- công cụ - DDMS, Trình giả lập ---- nền tảng - phiên bản HĐH Android, ---- platform- công cụ - Tài liệu ADB, ---- API)

ToolKit: Có thể là Gói ADT

Khung: Thư viện lớn nhưng thiên về kiến ​​trúc


3

Nói cách khác...

IDE Ngay cả notepad của bạn là một IDE. Mỗi phần mềm bạn viết / biên dịch mã với là một IDE.

Thư viện Một bó mã giúp đơn giản hóa các chức năng / phương thức để sử dụng nhanh chóng.

API Một giao diện lập trình cho các chức năng / cấu hình mà bạn làm việc cùng, việc sử dụng nó thường được ghi lại.

SDK Extras và / hoặc cho mục đích phát triển / thử nghiệm.

ToolKit Ứng dụng Tiny để sử dụng nhanh, thường là GUI.

Ứng dụng GUI có giao diện đồ họa, không yêu cầu kiến ​​thức về lập trình không giống như API.

Khung Bunch của API / Thư viện / Đoạn mã lớn được bọc trong một không gian tên / hoặc được gói gọn từ phạm vi bên ngoài để xử lý nhỏ gọn mà không xung đột với mã khác.

MVC Một mẫu thiết kế được phân tách trong Mô hình, Khung nhìn và Bộ điều khiển cho các ứng dụng lớn. Chúng không phụ thuộc vào nhau và có thể được thay đổi / cải thiện / thay thế mà không cần quan tâm đến mã khác.

Thí dụ:

Xe hơi (Model)
Đối tượng đang được trình bày.
Ví dụ trong CNTT: Một dạng HTML.


Camera (Chế độ xem)
Một cái gì đó có thể nhìn thấy đối tượng (xe hơi).
Ví dụ trong CNTT: Trình duyệt hiển thị trang web có biểu mẫu.


Người lái xe (Người điều khiển)
Người lái chiếc xe đó.
Ví dụ trong CNTT: Các hàm xử lý dữ liệu biểu mẫu đang được gửi.

Đoạn mã Các mã nhỏ chỉ có một vài dòng, thậm chí có thể không đầy đủ nhưng có giá trị để chia sẻ nhanh.

Các hàm độc quyền bổ trợ chỉ dành cho các khung / API / thư viện được chỉ định.

Bổ trợ Các mô-đun hoặc dịch vụ bổ sung cho GUI cụ thể.


2

SDK đại diện cho bộ phát triển phần mềm và IDE đại diện cho môi trường phát triển tích hợp. IDE là phần mềm hoặc chương trình được sử dụng để viết, biên dịch, chạy và gỡ lỗi, chẳng hạn như Xcode. SDK là công cụ cơ bản của IDE, bao gồm tất cả các thư viện của nền tảng mà ứng dụng cần truy cập. Nó cơ bản hơn IDE vì nó thường không có các công cụ đồ họa.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.