摘要:只是站在初學者的角度,對框架和庫的區別有自己的認識和見解。庫的使用非常靈活,但沒有框架方便,這就是框架和庫本質的區別。框架和庫的區別庫是將代碼集合成的一個產品,供程序員調用。
什么是框架和庫? 初識框架和庫
對于好多初學者來說(例如我),很容易把框架和庫搞混淆,分不清它們的具體區別,直到現在我也不是把框架和庫搞得很清晰。只是站在初學者的角度,對框架和庫的區別有自己的認識和見解。所以今天想在這,給和我一樣的初學者剖析下它兩者都有哪些區別,以便于我們能更好的在實際開發中應用框架和庫。
簡單地來分析,我們把框架(Framework)和庫(Library,簡寫Lib)可以用我們生活中的例子來闡述。
假如我們要買一臺電腦,框架為我們提供了已經裝好的電腦,我們只要買回來就能用,但前提是你必須把整個電腦要買回來。另外,我們還必須根據框架設定的使用規則來使用電腦。雖然這樣用戶可能輕松許多,但會導致很多人用一樣的電腦,或你想自定義某個部件將需要修改這個框架。而庫就如自己組裝的電腦。庫為我們提供了很多部件,我們需要自己組裝,如果某個部件庫未提供,我們也可以自己做。
庫的使用非常靈活,但沒有框架方便,這就是框架和庫本質的區別。
框架和庫的區別:1.庫是將代碼集合成的一個產品,供程序員調用。面向對象的代碼組織形式而成的庫也叫類庫。面向過程的代碼組織形式而成的庫叫函數庫。在函數庫中的可直接使用的函數叫庫函數。
我們在實際開發中,如果需要用到庫,只需要使用庫內我們所需的某部分類或函數,然后自己再實現其他部分的功能。直白的說,庫為我們提供了很多封裝好的函數,看起來零零散散,但是我們使用起來比較靈活,就是哪里需要,我們就取它里面我們所需的某部分,用不到它的地方我們自己來實現。
2.框架則是為解決一個(一類)問題而開發的產品。框架用戶一般只需要使用框架提供的類或函數,即可實現全部功能。
我們在開發中使用框架的時候,框架為我們提供了一條龍服務,一整套的服務,我們調用框架的時候,取的是整個框架,必須使用這個框架的全部代碼,即使有些地方的代碼我們用不到,但是我們不能挑三揀四。而且,我們使用框架的時候,必須按照框架設定好的使用規則來使用它,相當于你找別人幫忙,你得聽人家的話,按人家的吩咐辦事,雖然別人幫你時你可能會輕松,但是你必須聽人家的,按人家的意思來。這些點可能讓有些人覺得框架不是很靈活。
另外,庫和框架還有個很大的區別就是: inversion of control. 也就是your code calls a library but a framework calls your code,
賣完關子了,現在我們來細說這個區別。也就是說:當你在調用library的時候,你是按照自己的意愿來control它,比如jQuery(下文還會細說jQuery)。而,對于framework, 那么control就是倒轉過來了,是它在control你,比如bootstrap。
小結:上面我們都說過了,使用庫的時候我們比較隨意,想用哪取哪,哪塊好用哪,而且把它拿過來可以按照我們的編寫意愿來用。但是框架就不一樣,我們好像被它控制著,要使用它,就得聽它的,按照它的規則來,即使它某些地方我們用不到,或者不喜歡,也不能說什么。
擴展:我們來把上面遺留的jQuery說清楚。jQuery 的定位顯得棱模兩可,可以說是庫,也可以說是框架,為什么這么說呢?
官方的來說,框架也算是庫的一種,但傾向于重量級一些,傾向于提供整套的解決方案,傾向于創造一些需要你來遵守的規則和范例。而JQuery屬于Java家族,它是一種快捷,小巧,功能豐富的JavaScript庫。
所以,你可以把它當成框架來使用。以jQuery為基礎架構出你自己的框架。因此我們沒必要在這個問題上糾結,我就當它是庫,但是可以當框架來用。
還有一點要說的是,JQuery提高的是你的工作效率,并不是代碼的運行效率。它只是減少了你需要敲的代碼量,但是它的執行效率不一定有原生JS的效率高,除非你原生JS寫的特別差。
在實際中,像angular、backbone、vue就屬于框架,而jQuery、react、underscore就是庫,
就單拿React來說吧,官網自己也說了它是庫:
React is a declarative, efficient, and flexible JavaScript library for building user interfaces.
因為框架是有一套解決方案的,React就是純粹寫UI組件的 沒有什么異步處理機制、模塊化、表單驗證這些。React和react-router, react-redux結合起來才叫框架,而React本身只是充當一個前端渲染的庫而已。(暫完)
筆者作為一個新人,翻看和欣賞了大神的筆記后,自己總結加工,發表一下自己淺薄的見解,如果哪里說得不對,希望讀者能提出批評和指正,本人表示誠心的感謝。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/92426.html
摘要:但是在不同的項目中不同的維度權重時不一樣的沒有統一的原則去解決一個問題要自身實踐來測試選擇原則妥適性原則避免過渡實現,暫時用一些,現在還可能用不到,或者用的不多庫來滿足當前需求。 這個兩天看了張克軍(豆瓣前端專家、前端布道師)在FEDAY的主題分享覺得對中大型項目開發很有幫助所以在這里分享給大家后面會有視頻地址。下面介紹重點內容。這里分享的項目是指公司實際產品開發,協同人數比較多,更加...
摘要:也就是說當你在調用的時候,你按照自己的意愿來他比如。框架要求你用某種形式去寫代碼,比如遵照的約定,等等。一個簡單的分辨方式引入一個依賴,如果要對架構進行修改的,那么就算是框架如果無需修改原有架構,那么就算庫。 when you call a library, you are in control. But with a framework, the control is inverte...
摘要:本文簡要回顧相關概念和用法。相比之下已是明日黃花。分別對應的命令是根據關鍵字查找依賴包,例如查找本人發布的包。作為目前包依賴管理的最佳工具,值得每一位開發人員掌握。 轉載請注明文章出處:https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎 web請求 cookie web響應 session 數據庫操作 加解密 Composer是PHP...
閱讀 1731·2023-04-25 23:43
閱讀 908·2021-11-24 09:39
閱讀 713·2021-11-22 15:25
閱讀 1709·2021-11-22 12:08
閱讀 1084·2021-11-18 10:07
閱讀 2066·2021-09-23 11:22
閱讀 3338·2021-09-22 15:23
閱讀 2469·2021-09-13 10:32