添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
API,SDK,CLI,库,框架,IDE等的区别

API,SDK,CLI,库,框架,IDE等的区别

一.API

API 是一个允许软件与其他软件交互的 接口。 这是其名称的一部分——API,应用程序编程接口——并且是其功能的核心。

API 有多种形式和大小。读者可能会用来细读 网站的浏览器使用各种 API 集,以便将用户命令转换为可用函数、从服务器请求数据、将数据呈现为用户可查看的格式,并验证性能他们的要求。

甚至像在计算机上复制和粘贴这样简单的事情也使用了 API。复制文本将击键转换为命令,使用 API 将数据存储到剪贴板上的 RAM,然后使用相同的 API 将数据从一个应用程序传送到另一个应用程序,最后,在使用另一个 API 粘贴时呈现数据。

在万维网上,API 的功能略有不同。 Web API 允许不同系统之间的交互,通常用于特定用例。例如,当用户在社交媒体上进行交互时,他们正在使用 API 来发表评论、存储他们的数据、关注用户、删除推文等等。归根结底,Web API 只是一组指令,就像个人计算机 API 一样,但基于 Web 空间。

API 允许在稳定的环境中进行 一致的编码 ,允许在每次提交请求时以可靠和可预测的方式交付 可复制的功能。

二.SDK

SDK 代表“软件开发工具包”,这是一种很好的思考方式——一个工具包。考虑将模型汽车或飞机放在一起。构建此模型时,需要一整套物品,包括套件本身、将它们组合在一起所需的工具、组装说明等。

SDK 提供一组工具、库、相关文档、代码示例、流程和/或指南,允许开发人员在特定平台上创建软件应用程序。如果 API 是一组允许创建某些东西的构建块,那么 SDK 就是一个成熟的 工作室 ,它可以促进远远超出 API 允许范围的创建。

SDK 是一个工具包,其中包含允许开发人员创建系统和开发应用程序的说明。另一方面,API 是专门为明确用途而构建的——允许应用程序之间的通信。

毫无疑问,当 SDK 用于创建必须与其他应用程序通信的应用程序时,它包含用于此功能的 API。相反,API 用于通信,但不能单独用于创建全新的应用程序。

理解这一点的另一种方法是从房屋的角度来思考。API 是电话线,允许在室内和室外进行通信。SDK 是房子本身及其所有内容。 [1]


三.CLI

CLI(command-line interface)是NET Core命令行界面( CLI) 跨平台工具,用于创建,还原程序包,构建,运行和发布.NET应用程序。.NET CLI 附带了 .NET SDK。

1、使用命令行CLI(command-line interface)工具用于安装、运行、卸载软件的原因是命令可以详细的显示出哪里出问题了,如果直接点击软件安装,不知道哪里出错了。cli对程序员提供更多信息

2、物联网、服务器是没有GUI界面的,只能通过CLI和机器交换

3、有时候运行效率更高,可以把命令写成.bat文件。 [2]

四、库、框架、插件、组件、控件、扩展

库库Library:
库是为解决某种特定需求的程序功能集合;即library,如jQuery,常用于方便dom操作、解决浏览器兼容等问题。库(Library)是一系列预先定义好的数据结构和函数(对于面向对象语言来说,是类)的集合,程序员通过使用这些数据结构和函数实现功能。例如Moment.js是一个javascript库,提供了处理时间的一些函数。

框架Framework:
框架是一系列预先定义好的数据结构和函数,一般用于作为一个软件的骨架,但程序真正的功能还需要由开发者实现。框架和库的最大区别在于“控制反转”,当你使用一个库,你会调用库中的代码,而当你使用一个框架,框架会调用你的代码。框架和库是一个有交叉的概念,很多框架都是以库的形式发布的,例如Java的Spring MVC框架,其发布的jar包本身就是一个库。而一个库如果也能通过依赖反转的方式进行扩展,那也可以视为一个框架,例如Python的markdonw解析库Python Markdown,可以添加自定义的解析扩展,那么可以被视为一个markdonw解析框架。

插件Plugin:
参与程序内部运行环节的一段或多段代码集合;即Plugin,遵循一定规范写出来方便程序展示效果,拥有特定功能且方便调用。如轮播图和瀑布流插件。

扩展Extension:
使用程序API扩展程序适用面的一段或多段代码集合;即Extension。

组件Component:
可重复使用并且可以和其他对象进行交互的对象;即Component,能复用的js代码其实跟插件差不多,区别可能就是插件专注于特定功能而组件更专注于复用吧。
组件的本质是封装。一定程度上可以约等于模块化,调用者只需关注输入和输出,总思想就是分而治之、重复利用。低耦合; 组件解决资源整合问题、增强功能促进开发效率。提高可维护性,便于协同开发,每个模块都可以分拆为一个组件,例如异步请求组件,路由组件,各个视图组件。

组件(Component)一般是指软件系统的一部分,承担了特定的职责,可以独立于整个系统进行开发和测试,一个良好设计的组件应该可以在不同的软件系统中被使用(可复用)。
例如V8引擎是Chrome浏览器的一部分,负责运行javascript代码,这里V8引擎就可以视为一个组件。V8引擎同时也是Node.js的javascript解释器,这体现了组件的可复用性。

控件Control:
提供或实现用户界面功能的组件,控件即组件,反之不一定。即Control。
控件(Control)是gui编程的一个概念,一般来说一个最终用户可以看到的、可交互的组件,被称为一个控件。例如.NET编程中的System.Windows.Controls.Button是一个控件。

插件(Plugin)和扩展(extension)是两个很相似的概念,插件(或扩展)是对已有应用程序或者库的功能补充,一个软件的插件(或扩展)是实现了该软件预定义接口的组件,用来向已有的软件添加功能。
插件在目标软件发布时可以不预先包含,而是在运行时被使用者注册,然后再被目标软件调用。

加载项(Add-on)可以认为加载项是插件(或扩展)的子集,是仅针对应用程序来说的功能补充。一个插件的例子是Flash的浏览器插件,为浏览器实现了运行Flash程序的功能。 [3]

五、IDE
IDE是集成开发环境(Integrated Development Environment)缩写。
集成开发环境:包括代码编辑器、代码检测、代码调试器、译器/解释器、以及其他工具。
IDE是一种个编程软件,是集成了程序员语言开发中会需要的一些基本工具、基本环境和其他辅助功能的应用软件。
IDE一般包含三个主要组件:源代码编辑器(Editor)、编译器、解释器(Compiler、Interpreter)和调试器(Debugger)。

开发人员可以通过图形用户界面(GUI)访问这些组件、并且实现整个代码编译、调试和执行的过程。现在的IDE也提供其他帮助程序员提供开发效率的一些高级辅助功能,比如代码高亮,代码补全和提示,语法错误提示,函数追踪,断点调试等。常用的IDE有:

1.微软 Visual Studio(VS)
Visual Studio 支持创建各种类型的程序,包括从桌面应用、Web应用、移动APP、到视频游戏。对于初学者到高级专业开发人员来说都是最棒的开发工具。VS有可定制仪表板和可停靠的窗口。它支持多大36种不同的编程语言,如:ASP.NET、DHTML、JavaScript、Jscript、Visual Basic、Visual C#、Visual C ++、Visual F#,XAML及更多。这个支持列表还在每天实时的增长着。

Windows 下首先推荐大家使用微软开发的 Visual Studio(简称 VS),它是 Windows 下的标准 IDE

2.苹果 Xcode
Xcode是Apple出品的Mac OS X下的集成开发环境。内置一系列的工具集用于为iPad,iPhone和Mac的应用开发。Xcode是一个单窗体界面,在这个界面中控件可以很容易地与实现代码进行连接。

Xcode支持AppleScript、C/C ++、Java、Swift 和Objective-C等.

Xcode 是发布 Mac、iPhone、iPad、Apple TV 和 Apple Watch 应用程序的必备工具包。Xcode 支持 Swift 5.3,代码编辑工具,多种编译器,包括图形化的调试工具,测试工具(如用于构建单元测试的 XC Test API 能力),并支持插件和基于 mac 模拟器的 SDK。

3.Sublime Text
Sublime Text 是一个文本 编辑器 (收费 软件 ,可以无限期试用),同时也是一个先进的 代码 编辑器。Sublime Text是由程序员Jon Skinner于2008年1月份所开发出来,它最初被设计为一个具有丰富扩展功能的 Vim

Sublime Tex

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图, Python 的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。 Sublime Text 是一个跨平台的编辑器,同时支持Windows、 Linux Mac OS X 等操作系统。 [4]

4.Eclipse
Eclipse 主要是为 Java 开发人员打造的,长期以来一直被认为是顶级的免费 IDE。它也可以用一些包( eclipse.org/downloads/p )来定制,这些包适用于 Javascript、Rust、Php、C 和 C++等的测试和开发工具。

它提供了一个庞大的插件( marketplace.eclipse.org )生态系统,这使得它极其万能,适合范围非常广泛的开发项目。它还拥有一个活跃的、深度参与的开发者社区( eclipse.org/eclipseide/? )。

Eclipse Foundation 在持续更新( wiki.eclipse.org/Simult )Eclipse IDE,免费软件并不都是这样的。2020-09 版包括了嵌入式 Node.js,改进的 UI 和暗亮模式,自带一个 JRE,并支持 Java 15。它的 2020-12 版刚刚发布( eclipse.org/eclipse/new ),所有包都支持 Linux aarch64。

缺点:
不可靠的插件,乏味的用户界面,不太适合过大的项目,因为 Eclipse 没有其他 IDE 所能获得的资金支持,所以插件没有经过严格的审查,因此可能会产生兼容性问题。一些用户称 Eclipse 的 UI 看起来比较陈旧,有时很难使用。因为 UI 是用户体验中不可或缺的一部分,并且会影响程序员的工作效率,所以拥有一个良好的界面是很有必要的。

优点:
Eclipse提供了许多用户在其他地方必须得购买的免费功能。此外,它与其他 IDE 相比,比较轻量级,并且没有官方的最低系统要求,比许多其他顶级 IDE 的系统需求更低,这使它成为新程序员或机器功能不太强大的程序员的理想选择。它的多功能性还使新程序员能够启动各种不同的项目。需要多功能编程工具的大型商业或企业项目会发现 Eclipse 是一款优秀的 IDE。

Eclipse 和 IntelliJ IDEA 是目前最流行的两个 Java IDE。无论你是专家还是初学者,Eclipse 都将是一款优秀的 IDE。 [5]

5.NetBeans

NetBeans 是一个免费开源的Java集成的开发环境软件,主要用于Java开发。适合从零开始或者对已有工程进行开发。NetBeans支持多种编译器,如CLang/LLVM、Cygwin(GNU)、MinGW和Oracle Solaris Studio。

NetBeans是一款跨平台的IDE,支持Windows,Linux,OS X和Solaris等多种平台。

NetBeans支持的编程语言有PHP、Ruby、JavaScript、Groovy、Grails和C/C++等开发语言。 [6]

6.Atom
Atom 是github专门为程序员推出的一个跨平台文本编辑器。Atom支持用Node.js编写插件和嵌入Git Contral,在Mac OS X、GNU/ Linux和Windows等平台上均可使用。Atom的特点在于git 原生支持,内置包管理器,智能自动补全,自带文件系统浏览器,同时支持自定义界面(更改展示、背景、UI等。ATOM还配备了标签式界面、多窗格布局、简单的文件浏览器、易于学习的曲线图表,新人上手更加容易。

区块链开发IDE:

1.Remix IDE
以太坊有很多用于编写和部署智能合约的工具,其中一款基于浏览器的IDE,称为Remix。Remix可用于使用名为Solidity的编程语言编写,调试,测试和部署智能合约。
下载地址: github.com/ethereum/rem



2.ChainIDE(国产)


ChainIDE 是由纯白矩阵开发的云端区块链集成开发环境(IDE)。实际开发中,源代码编译器是必备工具,此外还需要编辑器、提示器、解释器和调试器等辅助工具,IDE就是将这些开发工具打包在一起组合套装。目前,ChainIDE支持开放联盟链、Ethereum、Libra、Fisco等10多个可编程区块链的开发环境,并帮助100多个国家的开发者,辅助设计、编译、部署50多万份智能合约。


安装 编译器 或者IDE(集成开发环境),也叫搭建开发环境。

千里之行,始于足下。程序员一定要选择一款合适的、得心应手的编译器,它是程序员每天要使用的最重要的工具之一,是您完成梦想翱翔蓝天的翅膀。

参考

  1. ^ What is the Difference Between an API and an SDK? https://nordicapis.com/what-is-the-difference-between-an-api-and-an-sdk/
  2. ^ IDE 、SDK 、API区别、库、框架、组件、CLI https://www.cnblogs.com/cdaniu/p/15168197.html
  3. ^ 前端框架、组件与库的区别 https://blog.csdn.net/a519781181/article/details/78975689
  4. ^ Sublime Text https://baike.baidu.com/item/Sublime%20Text/6284835
  5. ^ 2021 年要考虑的 10 种最佳 IDE https://www.infoq.cn/article/pwajbi4wzsvxdlk0tfav
  6. ^ 编程界十大顶级IDE http://www.culmart.com/play/programming/489.html
编辑于 2022-03-01 00:58

文章被以下专栏收录