总分不清API, SDK和IDE?一篇文章讲清楚
B站影片链接
https://www.bilibili.com/video/BV1nwdKYwEST
我会避免使用晦涩术语,新手友好。
我们先来讲一个情景故事:
小明大学刚毕业,打算自主创业,去夜市街开一个摊位卖凉拌菜。首先他想研发一道美味凉菜,需要用到糖,盐,味精,料酒等调料。这些调料就像 API,每个都实现一个小功能。味精可以提鲜,料酒可以去腥。小明可以根据菜品的需要,调用这些API来实现特定的提味功能。API在实际生产中,由企业开发方便自己或第三方使用,就像盐厂生产出的盐可以供内部食堂使用,也可以出售盈利。我们开发一款AI软件,每次调用ChatGPT的API需支付费用,就和小明做凉拌菜买一袋盐是一样的道理。
小明开发这道菜时,由于缺乏经验,做的菜不好吃。这时候他打算节约时间成本,直接买现成的混合凉拌料来拌菜。这个凉拌料就是SDK,也就是软件开发套装。这个套装中不仅包括有了各种调料API,而且还有说明文档,教会你多少量的菜要加多少克的料,说明上甚至还有示例,教你如何凉拌黄瓜。所以,单一的调料就是API,而包含了多个 API,使用文档,代码示例等这一套装就是SDK。我们可以直接使用API开发软件,但是没有直接使用SDK开发时效率高。
最后,小明去摆摊做菜需要一套研发环境,他决定投资一辆小餐车,餐车上有各种厨具餐具,一应俱全。这个餐车就是IDE,也就是集成开发环境,比如我们常用的Visual studio。在这个环境下,我们可以轻而易举的搭配SDK或API来产出 App。现有的IDE 已经相当成熟,不仅配套了可视化调试工具,还有AI插件一键生成代码,效率极高。
好了,我们来借助刚刚的情境类比来梳理一下。API是一个函数或数据接口,用来实现某一种功能,比如调用Windows系统的API,在桌面弹出一个对话框。除了这种本地调用的API,近年来,远程调用的API如REST API (RESTful API)热度一直很高。如今,各个厂商都在提供远程 API进行盈利,比如各种大语言模型的AI接口。而SDK是一个开发套装,内涵了多个 API,编译器,说明文档,调试工具等。我们可以基于SDK来进行快速开发,所以SDK比API的封装层级要高一些。常见的SDK包括 Java SDK,简称 JDK 或者Android SDK,iOS SDK 等,这些开发套装都可以帮助我们快速写代码,避免重复造车轮。最后,IDE是一个可视化的开发环境,帮助我们更快更好地写代码、纠错和调试。
一句话总结,API是单一调料,SDK是混合料包,IDE是餐车。