<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SDK 和 API 的區(qū)別是什么?

          共 2046字,需瀏覽 5分鐘

           ·

          2022-03-18 16:58

          上一篇:最近一些想法

          作者:簡(jiǎn)道云

          鏈接:https://www.zhihu.com/question/21691705/answer/770586138


          不知道區(qū)別的人,大概率是你還沒搞懂API、SDK是什么。


          講個(gè)小故事:


          研發(fā)人員A開發(fā)了軟件A,研發(fā)人員B正在研發(fā)軟件B。??


          有一天,研發(fā)人員B想要調(diào)用軟件A的部分功能來用,但是他又不想從頭看一遍軟件A的源碼和功能實(shí)現(xiàn)過程,怎么辦呢???


          研發(fā)人員A想了一個(gè)好主意:我把軟件A里你需要的功能打包好,寫成一個(gè)函數(shù)。你按照我說的流程,把這個(gè)函數(shù)放在軟件B里,就能直接用我的功能了!


          其中,API就是研發(fā)人員A說的那個(gè)函數(shù)。



          這就是API的誕生。


          日常生活中,我們有很多類似API的場(chǎng)景,比如:


          電腦需要調(diào)用手機(jī)里面的信息,這時(shí)候你會(huì)拿一根數(shù)據(jù)線將電腦手機(jī)連接起來,電腦和手機(jī)上連接數(shù)據(jù)線的接口就相當(dāng)于“API接口”。如圖所示:


          那SDK又是什么?


          SDK 就是 Software Development Kit 的縮寫,翻譯過來——軟件開發(fā)工具包。這是一個(gè)覆蓋面相當(dāng)廣泛的名詞,可以這么說:輔助開發(fā)某一類軟件的相關(guān)文檔、范例和工具的集合都可以叫做SDK。

          SDK被開發(fā)出來是為了減少程序員工作量的。


          比如——

          有公司開發(fā)出某種軟件的某一功能,把它封裝成SDK(比如數(shù)據(jù)分析SDK就是能夠?qū)崿F(xiàn)數(shù)據(jù)分析功能的SDK),出售給其他公司做開發(fā)用,其他公司如果想要給軟件開發(fā)出某種功能,但又不想從頭開始搞開發(fā),直接付錢省事。


          現(xiàn)在可以談?wù)凙PI和SDK的區(qū)別了。


          總的來說,兩者沒有值得比較的區(qū)別,因?yàn)槭蔷哂嘘P(guān)聯(lián)性的兩種東西。

          你可以把SDK想象成一個(gè)虛擬的程序包,在這個(gè)程序包中有一份做好的軟件功能,這份程序包幾乎是全封閉的,只有一個(gè)小小接口可以聯(lián)通外界,這個(gè)接口就是API。

          比如——


          我們現(xiàn)在要在企業(yè)ERP系統(tǒng)中增加某個(gè)功能(比如自動(dòng)備份、數(shù)據(jù)分析、云存儲(chǔ)等),但又不想耗費(fèi)大量時(shí)間、也沒那么多研發(fā)親自去做這個(gè)功能。另外搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師后臺(tái)回復(fù)“2T”,獲取一份驚喜禮包。這時(shí)我們可以選擇使用這個(gè)“SDK”軟件包,把ERP系統(tǒng)連接上API接口,就可以使用SDK軟件包里的功能。


          舉個(gè)實(shí)例輔助理解:


          【中鐵大橋科研院】有一個(gè)自研的信息平臺(tái),用于管理業(yè)務(wù)數(shù)據(jù)。

          但他們?cè)媾R一個(gè)問題——盡管有信息平臺(tái),卻因?yàn)橄到y(tǒng)的獨(dú)立性,數(shù)據(jù)的上傳和備份,需要依靠人工在excel里來回操作,效率很低。

          由于系統(tǒng)的開發(fā)周期長(zhǎng)、成本高,橋科院將目光聚焦到現(xiàn)成的功能軟件上。后來通過API將簡(jiǎn)道云直接插入公司數(shù)據(jù)庫,數(shù)據(jù)可自動(dòng)上傳至信息平臺(tái)上并統(tǒng)一展示;再通過webhook把數(shù)據(jù)推送到服務(wù)器,實(shí)現(xiàn)自動(dòng)備份。


          API將信息平臺(tái)與簡(jiǎn)道云相連


          在這一過程中,簡(jiǎn)道云扮演的角色就是SDK,而簡(jiǎn)道云配備API接口,可以對(duì)接外部系統(tǒng),讓橋科院不用開發(fā)直接實(shí)現(xiàn)了數(shù)據(jù)自動(dòng)上傳、備份的功能。

          最后,貼近生活講講兩者的關(guān)系:

          有一杯密封飲料,它的名字叫做“SDK”。

          飲料上插著吸管,吸管的名字叫“API”。

          把你叫做“XX系統(tǒng)”。

          如果你想喝到SDK里的飲料(讓系統(tǒng)擁有SDK中的功能),你必須通過API這根吸管來實(shí)現(xiàn)(通過API連接你的系統(tǒng)和SDK工具包),否則你就喝不到飲料。


          所以:

          不知道你這次真的懂了沒?


          相關(guān)閱讀:2T架構(gòu)師學(xué)習(xí)資料干貨分享


          全棧架構(gòu)社區(qū)交流群

          ?「全棧架構(gòu)社區(qū)」建立了讀者架構(gòu)師交流群,大家可以添加小編微信進(jìn)行加群。歡迎有想法、樂于分享的朋友們一起交流學(xué)習(xí)。

          掃描添加好友邀你進(jìn)架構(gòu)師群,加我時(shí)注明姓名+公司+職位】

          看完本文有收獲?請(qǐng)轉(zhuǎn)發(fā)分享給更多人


          往期資源:


          Flutter 移動(dòng)應(yīng)用開發(fā)實(shí)戰(zhàn) 視頻(開發(fā)你自己的抖音APP)
          Java面試進(jìn)階訓(xùn)練營(yíng) 第2季(分布式篇)
          Java高級(jí) - 分布式系統(tǒng)開發(fā)技術(shù)視頻
          瀏覽 49
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  军人妓女院BD高清片在线播放 | 亚洲天堂在线观看视频 | 小泽玛利亚无码视频 | 蜜芽成人在线视频 | 日韩精品一区二区在线观看 |