jQuery 是庫(library)還是框架(framework)?
看到拉鉤上面很多招聘說要會jquery框架的,可我怎麼覺得jQuery是個庫啊,不是框架,我有些迷惑。 在stackoverflow上面有個類似的問題,Is jquery a javascript library or framework? ,統一的答案是『 jQuery is liabrary,not framework 』。 那在中文裡是不是對應 『 jquery是庫,不是框架 』?
jQuery是庫,不是框架。
庫只管引進來使用,除了庫介面,沒有其他約束,隨便怎麼用,free style。
而框架則有著各種各樣的嚴格約束。
例如bootstrap,約束了DOM結構。
例如AnglarJS,也對DOM結構有約束。這些都是框架。框架就像一門語言,有自己的世界。
用了什麼框架,就得按照這個框架世界裡的規則行事編碼。Framework 幫你設計架構,而 library 幫你寫代碼。
jQuery 是庫因為:You call library. Framework calls you.
是庫。
但是,你可以把它當成框架來使用。以jQuery為基礎架構出你自己的框架,比如早幾年出現過的JMVC框架(後來的 CanJS),本質就是圍繞jQuery搭起來的框架。
我寫了七八年的JS,很喜歡這種架構方式,開始的時候起步很小很乾凈,沒有大型框架的累贅感,說實話開發也更有趣 - 框架里開發像填空,樂趣缺缺,靈活性受限,最後往往由開始的時候看不見的成本。
而jQuery的生態,工具本來就很豐富,在npmjs上搜搜就基本能找到,擴展jQuery也很容易,擴展其他的插件也不難。這種架構的套路用熟以後,你能體驗到真正的「敏捷」開發。
用jQuery和簡單類庫架構一個TODO應用jQuery 絕對不能算作是 framework,頂多是 library。但它在我心中一直都是 utils
jquery官網都說自己是庫而不是框架了,去官網看看吧
「jQuery is a fast, small, and feature-rich JavaScript library.」 -- 出自jQuery官網
分不清library和framework的,當我沒說。
更換一個庫,只需要修改所有調用這個庫的地方。比如 jquery 的某個功能切換到其他單一功能的庫(ajax-》superagent)。更換一個框架,往往需要改變代碼組織結構,修改移動大量代碼。比如React 切換到 Vue。
庫和框架區分很簡單,庫讓你的工作更順手。框架限制你的自由度,讓你感到有些彆扭,但讓公司員工之間配合開發更順手。
推薦閱讀:
※android怎樣破解已使用加殼技術的APP?
※如何閱讀程序源代碼?
※如何在中國大陸下載 Android 源代碼?
※《源代碼》結尾時,戈德溫是否處在源代碼世界中?
※如何看待那些燒腦的電影?
TAG:JavaScript | jQuery | 源代碼 | 前端開發框架和庫 |