今天的這個題目出現有兩件遇到的事情
今天第一次自己接觸到有 App 需求的客戶,想做遠端遙控機器的應用程式,我只有簡單初步了解預期的合作模式跟時程而已,完全沒想到要問有沒有文件或是 SDK..。就衍伸出標題的對話,如果沒有 SDK 會很麻煩...尤其是與硬體要做串接的案子.....
後端工程師今天協助把資料庫做了調整,跑來說
工程師 : 「要請前端全部重接 API 喔。」
我說 : 「哪幾塊要重接?」
工程師說 : 「你說要調整的地方就都要接。」
會寫這篇文章也是覺得不管是身為軟體業 PM 需要的知識之外,如果是有需求要找廠商做專案的朋友也都可以知道的基本名詞。
大家好,我是 Jade Chang
先前任職於科技外商,主要負責對於 Developers 的開發經驗體驗,過去 5-6 年出沒於技術社群以及大專院校。嘗試過直播節目、技術黑客松、帶狀節目系列以及線上短期活動等行銷策略,半年前轉職到台灣在地的軟體開發商,從事行銷與專案經理,也合夥新創了一間數位公司,超展開職涯要開始囉!!!
A 故事 : 大張工程師寫了一個小功能是將聽到的語音轉成文字做紀錄,並且將這個小功能分享給另一個小王工程師知道。然而某天,小王被交付要做一個即時語音轉文字且具有翻譯功能的應用程式,他力馬想到大張有寫好語音轉文字這段的小功能,因此跟大張說 : 你可以開個 API 給我好嗎? 這樣我就只要處理取得文字再翻譯的部分就好了 !
沒錯,中間提到的 API 就是小王想要直接使用大張寫好的功能,請大張定義好規則,讓小王可以基於這個規則來串接,進而再長大成最後具有翻譯能力的應用程式,然而小王直接使用大張寫好的功能,他完全不用知道語音轉文字這段是怎麼寫出來的,他直接透過串接就享用這項功能。
Application programming interface - API
直接翻譯來說 API 就是一個介面,一個接口,一個要銜接這個背後功能的入口。
常見的使用在前端與後端交流的一個通道,通過這個通道就可以取得到後端的數據到前端來做反應,但是又無需碰到相關的程式碼。
再來分享另一個形容 API 的故事 :
B 故事 : API 我覺得的形容就像是吉他的和弦指法,今天歌曲用到 F7M/Em/Dm7/C 編排再加上自己的創作,就譜出朗朗上口的好歌,F7M/Em/Dm7/C 這些和弦指法就像是一支一支 API,有些人不用知道這些指法背後的原理是甚麼,而這些和弦指法都早就被定義好了,創作者就是根據這些被定義好的規範來自由組合使用!
Software development kit - SDK,通常會用工具包、工具箱或是套件組合來做形容,SDK 裡面會包含工具組、說明文件、程式碼等等,通常 SDK 裡面會包含多支 API,是專業服務的集成包。
舉例說明 : 計算機的功能就可以形容為一個 SDK,裡面的文件會說明這台計算機能提供的服務,是只有加減乘除呢? 還是具有開根號或是積分微分功能的工程計算機。
假設是只有加減乘除功能的計算機,那加法就會是一支 API,減法就會是另一支 API,因為要達到加或減的單獨功能都是要透過不同的函數來達成,一個功能就是一支,組成具有加減乘除的計算機,就是將四個功能的 API 放在一起變成計算機功能的 SDK,需要計算機服務的使用者只要拿到這個 SDK 就可以享有加減乘除的四個服務。
當然,SDK 的組成不單單只是 API 的綜合體,還有許多開發上除了 API 之外需要的工具與文件,像是開發 Android App 除了基本 Android Studio 之外,根據要開發的裝置也會有不同的 SDK Tools 可以下載,像是開發當中會需要模擬器來看目前開發的樣子或是效能計算等等其他加速開發的好用小工具。
(圖片來源 : What is Android Studio and Android SDK Platform-tools?
歡迎訂閱我 Medium 或是透過 Facebook 一起來交流