Difference between framework vs Library vs IDE vs API vs SDK vs Toolkits?
我想要一些例子。 我总是很困惑,因此通过一些示例,我也许可以更好地弄清楚。
另外:Eclipse是API还是IDE?
IDE是一个集成的开发环境-替代文本编辑器,具有对开发的附加支持(例如表单设计器,资源编辑器等),编译和调试应用程序。例如Eclipse,Visual Studio。
库是一段代码,您可以从自己的代码中调用该代码,以帮助您更快/更轻松地执行操作。例如,位图处理库将提供用于加载和处理位图图像的工具,从而省去了自己编写所有代码的麻烦。通常,库仅提供一个功能区域(处理图像或对zip文件进行操作)
API(应用程序编程接口)是一个术语,表示库中的函数/方法,您可以调用该函数/方法要求它为您做事-库的接口。
SDK(软件开发套件)是一个库或一组库(通常带有额外的工具应用程序,数据文件和示例代码),可帮助您开发使用特定系统的代码(例如,用于使用操作系统功能的扩展代码( Windows SDK),通过特定系统绘制3D图形(DirectX SDK),编写用于扩展其他应用程序的插件(Office SDK)或编写代码以使Arduino或移动电话之类的设备实现您想要的功能)。 SDK通常仍将具有单一焦点。
一个工具包就像一个SDK –它是一组工具(通常是代码库),您可以使用它们使访问设备或系统更加容易...虽然也许更着重于提供工具和应用程序,而不仅仅是代码库。
框架是提供许多服务的大型库或一组库(而不是像大多数库/ SDK那样仅提供一种集中能力)。例如,.NET提供了一个应用程序框架-它使您可以轻松使用大多数(如果不是全部)您需要的各种服务(例如Windows,图形,打印,通信等)来编写各种应用程序-因此"库"为您几乎需要做的所有事情提供支持。通常,框架会提供一个完整的基础,您可以在此基础上构建自己的代码,而不是构建一个使用库代码来完成其工作的应用程序。
当然,有很多例子与这些描述并不完全匹配。
汽车类比
IDE:MS Office编程。在这里键入代码,再加上一些附加功能,使您成为一个更快乐的程序员。 (例如Eclipse,Netbeans)。车身:这就是您真正触摸,看到和工作的地方。
库:库是功能的集合,通常分为多个程序文件,但打包为一个存档文件。它包含由其他人创建的程序,因此您不必重新发明轮子。 (例如junit.jar,log4j.jar)。库通常起着关键作用,但是它在后台进行所有工作,没有GUI。汽车的引擎。
API:图书馆出版商的文件。这就是您应该使用我的图书馆的方式。 (例如log4j API,junit API)。汽车的用户手册-是的,汽车也附带一个!
套件
什么是套件?它是许多相关项目的集合,这些项目一起提供特定的服务。当有人说出药箱时,您会得到紧急状况所需的一切:膏药,阿司匹林,纱布和防腐剂等。
SDK:麦当劳的快乐餐。您可以整齐地装箱(不需要)所有物品:主菜,饮料,甜点和额外的玩具。 SDK是将一堆不同的软件组件组装到一个程序包中,因此它们即开即用。它通常包含多个库,并且可以但不一定包含插件,API文档,甚至包括IDE本身。 (例如,iOS开发套件)。
工具包:GUI。 GUI。 GUI。当您在编程环境中听到"工具包"时,通常会引用一组用于GUI开发的库。由于工具箱是以UI为中心的,因此它们通常带有提供屏幕绘制实用程序的插件(或独立的IDE)。 (例如GWT)
框架:虽然不是普遍的概念,但可以将框架视为一个工具包。它还具有一个库(或一起工作的库的集合),该库提供特定的编码结构和模式(因此,称为框架)。 (例如,Spring Framework)
考虑Android开发:
IDE:Eclipse等。
库:android.app.Activity库(带有所有代码的类)
API:基本上与我们调用的所有函数接口
SDK:Android SDK为您提供构建,测试和调试Android应用所需的API库和开发人员工具
(----工具-DDMS,仿真器----平台-Android操作系统版本,平台工具-ADB,API文档)
工具包:可以是ADT捆绑包
框架:大型图书馆,但更多面向架构
换一种说法...
集成开发环境
甚至您的记事本都是IDE。您用来编写/编译代码的每个软件都是一个IDE。
图书馆
一堆简化了功能/方法的代码,可快速使用。
API
通常会记录您使用的功能/配置的编程接口,其用法。
开发包
其他和/或用于开发/测试目的。
工具包
用于快速使用的微型应用程序,通常是GUI。
图形用户界面
与API相比,具有图形界面的应用无需编程知识。
构架
打包在命名空间中或从外部范围封装的一堆API /巨大的库/代码段,用于紧凑处理,而不会与其他代码冲突。
MVC
为大型应用程序而在模型,视图和控制器中分开的设计模式。它们彼此不依赖,并且可以在不照顾其他代码的情况下进行更改/改进/替换。
例:
Car (Model) The object that is being
presented.
Example in IT: A HTML form.
Camera (View) Something that is able to see the object(car).
Example in IT: Browser that renders a website with the form.
Driver (Controller) Someone who drives that car.
Example in IT: Functions which handle form data that's being submitted.
片段
仅几行的小代码可能甚至不完整,但值得快速分享。
外挂程式
排他功能仅适用于指定的框架/ API /库。
附加组件
特定GUI的其他模块或服务。
SDK代表软件开发套件,而IDE代表集成开发环境。 IDE是用于编写,编译,运行和调试Xcode之类的软件或程序。 SDK是IDE的基础引擎,包括应用程序需要访问的所有平台库。它比IDE更基本,因为它通常没有图形工具。