2019年7月25日 星期四

[Dev] IDE, API, SDK, Library 基本術語解釋



IDE - 整合開發環境

Integrated development environment. IDE 就是 developer 用來寫程式的一個環境/介面,比如說 EclipseIntelliJAndroid StudioVisual Studio,可以想像成是厲害很多的記事本(是跟記事本不同等級的東西),除了可以寫出一行行的程式碼以外,還可以編譯/執行程式。

Library - 函式庫/資源庫

Library 是一堆已經包裝好的 code,可以直接取用,讓 developer 能夠更快速、方便地開發。比如說 Android 的 Support Library,可以想像成是我要組裝一檯車子,有人提供我車輪、引擎的「模組」,讓我不用自己造車輪!

API - 應用程式介面

Application programming interface. API 就是一個讓開法者能夠存取 Library 裡面的 functions/methods (函數/方法) 的介面,而不用了解這些 function 是怎麼運作、被實作的。回到剛剛的造車例子,今天我要把車輪裝上車子,只要事先跟車輪廠商說好,輪子跟車身銜接的地方形狀要長什麼樣,到時候就可以直接把輪子擺上來了,我不用知道車輪是怎麼製造的。 API 本身就是一個介面,你也可以把它想像成是水面,你在水面上對著湖中女神大喊「我掉的是 金斧頭」,湖中女神就會丟出一把金斧頭(如果你沒說謊的話...),你不用知道到底她是怎麼找到你的斧頭的;同時,如果你不知道拿斧頭的規則,亂喊「我要 金斧頭」,湖中女神就不會理你。所以可以說,湖中女神是一個 "Library",有開出 "拿斧頭的 API"。

SDK - 軟體開發工具包

Software development kit. SDK 通常是方便讓你在某一個系統上開發,通常會包含一些工具包、檔案描述還有範例程式碼,一般來說都是在開始寫程式之前就要弄好的環境設定之一。比如說 開發 Android 功能的 Android SDK 開發 windows 功能的Windows SDK, 開發 3D 繪圖功能的 DirectX SDK

Framework - 框架

Framework 就像骨架一樣,通常會是一堆資料夾與預先寫好的程式們的集合,等著你把其他的 code 補齊,造出你自己的車子。就像一間還沒有裝潢的屋子一樣,他只提供你蓋好的房子,讓你自己 implement 其中的功能。

Use google protocol buffers + QT +CMAKE

Protocol Buffers https://developers.google.com/protocol-buffers/ Serialize and ParseFrom https://www.jianshu....