Re: [問題] api是什麼?

作者: CoNsTaR ((const *))   2017-06-12 18:01:05
看了好幾篇,我覺得還是來發一篇好了
你寫的程式去掉實作,加上行為描述(標準)就叫做 API
也就是說 API 是不在乎實作的,一個 API 可能有無限種實作
但是實作必須符合標準,所以使用者可以很放心的使用符合某 API 的實作
Library 不只有 API,而且還得有實作才能被稱為 Library
Framework 不只有 Library 而且還要限制使用情境才能被稱為 Framework
總結一下
Framework、Library 都不是 API
(因為不能有實作)
API 也不是 Framework 或 Library
Framework 是 Library
Library 不是 Framework
作者: s4300026 (s4300026)   2017-06-12 18:44:00
簡單,清楚,明瞭
作者: a0919610611 (熾)   2017-06-12 20:45:00
作者: noodleT (麵T)   2017-06-12 22:15:00
API 是C#中的介面嗎?
作者: fish830617 (方方)   2017-06-12 22:49:00
限制使用情境指的是什麼? 可以舉個簡單的例子嘛?
作者: AWEN221 (Larry)   2017-06-12 23:20:00
學習了!推高手!
作者: fish830617 (方方)   2017-06-12 23:53:00
所謂的規定是指硬性的嘛? 「不是就不行」這樣?
作者: bibo9901 (function(){})()   2017-06-13 00:17:00
library 彩色鉛筆(+白紙), framework 彩色鉛筆+著色本
作者: EdisonX (卡卡獸)   2017-06-13 00:44:00
疑 這樣的話 mfc 和 qt 都算 framework?之前我誤解的framework是遵守一定的標準工作流程(process)都算,諸如某些code的常數可能必須由實驗取得,再經由計算後塞入code裡。XD
作者: uranusjr (←這人是超級笨蛋)   2017-06-13 01:22:00
Qt 確實自稱 framework, 不過 framework vs library 的de facto 定義其實是「你講了算」, 根本沒有嚴謹分別所有邏輯上的區分都可以找到一大票反例, 只能算經驗法則
作者: fish830617 (方方)   2017-06-13 01:28:00
感謝 CoNsTaR 大大的細心講解
作者: EdisonX (卡卡獸)   2017-06-13 09:35:00
感謝 CoNsTaR 和 uranusjr!
作者: uranusjr (←這人是超級笨蛋)   2017-06-13 10:14:00
你的定義很清楚, 可是實務上他們根本不是這樣自稱啊不管嘴上筆下定義多嚴謹, 實務上就是這麼混亂啊照這定義 MFC 怎麼看都是 framework, 但它自稱 librarySinatra 和 Flask 怎麼看都是 library, 但他們就是自稱web framework 你又能怎麼辦
作者: CodingMan (程式俠)   2017-06-13 12:24:00
給個推
作者: Lordaeron (Terry)   2017-06-13 17:25:00
相當好的定義.
作者: doom8199 (~口卡口卡 修~)   2017-06-13 20:32:00
照這定義 OpenCL 算 framework 嗎?
作者: coolrobin (泳圈)   2017-06-14 00:59:00
超清楚易懂,強!!
作者: chingyue (ChingYue)   2017-06-14 12:57:00
感恩~!
作者: HolyBugTw (HolyBug)   2017-06-16 16:22:00
不精準但是我是這麼看待的API:解決你短期的需求,Framework:針對你長期的需求
作者: jennya (Jennya)   2017-07-03 03:24:00
Flask照這定義是framework沒錯啊!
作者: greg870601 (酸素水雷)   2017-07-14 13:58:00

Links booklink

Contact Us: admin [ a t ] ucptt.com