成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

淺談框架和庫的區(qū)別

reclay / 1812人閱讀

摘要:只是站在初學(xué)者的角度,對框架和庫的區(qū)別有自己的認(rèn)識和見解。庫的使用非常靈活,但沒有框架方便,這就是框架和庫本質(zhì)的區(qū)別。框架和庫的區(qū)別庫是將代碼集合成的一個產(chǎn)品,供程序員調(diào)用。

什么是框架和庫? 初識框架和庫

對于好多初學(xué)者來說(例如我),很容易把框架和庫搞混淆,分不清它們的具體區(qū)別,直到現(xiàn)在我也不是把框架和庫搞得很清晰。只是站在初學(xué)者的角度,對框架和庫的區(qū)別有自己的認(rèn)識和見解。所以今天想在這,給和我一樣的初學(xué)者剖析下它兩者都有哪些區(qū)別,以便于我們能更好的在實際開發(fā)中應(yīng)用框架和庫。

簡單地來分析,我們把框架(Framework)庫(Library,簡寫Lib)可以用我們生活中的例子來闡述。

假如我們要買一臺電腦,框架為我們提供了已經(jīng)裝好的電腦,我們只要買回來就能用,但前提是你必須把整個電腦要買回來。另外,我們還必須根據(jù)框架設(shè)定的使用規(guī)則來使用電腦。雖然這樣用戶可能輕松許多,但會導(dǎo)致很多人用一樣的電腦,或你想自定義某個部件將需要修改這個框架。而庫就如自己組裝的電腦。庫為我們提供了很多部件,我們需要自己組裝,如果某個部件庫未提供,我們也可以自己做。

庫的使用非常靈活,但沒有框架方便,這就是框架和庫本質(zhì)的區(qū)別。

框架和庫的區(qū)別:
1.庫是將代碼集合成的一個產(chǎn)品,供程序員調(diào)用。

面向?qū)ο蟮拇a組織形式而成的庫也叫類庫。面向過程的代碼組織形式而成的庫叫函數(shù)庫。在函數(shù)庫中的可直接使用的函數(shù)叫庫函數(shù)。

我們在實際開發(fā)中,如果需要用到庫,只需要使用庫內(nèi)我們所需的某部分類或函數(shù),然后自己再實現(xiàn)其他部分的功能。直白的說,庫為我們提供了很多封裝好的函數(shù),看起來零零散散,但是我們使用起來比較靈活,就是哪里需要,我們就取它里面我們所需的某部分,用不到它的地方我們自己來實現(xiàn)。

2.框架則是為解決一個(一類)問題而開發(fā)的產(chǎn)品。

框架用戶一般只需要使用框架提供的類或函數(shù),即可實現(xiàn)全部功能。

我們在開發(fā)中使用框架的時候,框架為我們提供了一條龍服務(wù),一整套的服務(wù),我們調(diào)用框架的時候,取的是整個框架,必須使用這個框架的全部代碼,即使有些地方的代碼我們用不到,但是我們不能挑三揀四。而且,我們使用框架的時候,必須按照框架設(shè)定好的使用規(guī)則來使用它,相當(dāng)于你找別人幫忙,你得聽人家的話,按人家的吩咐辦事,雖然別人幫你時你可能會輕松,但是你必須聽人家的,按人家的意思來。這些點可能讓有些人覺得框架不是很靈活。

另外,庫和框架還有個很大的區(qū)別就是: inversion of control. 也就是your code calls a library but a framework calls your code,

賣完關(guān)子了,現(xiàn)在我們來細(xì)說這個區(qū)別。也就是說:當(dāng)你在調(diào)用library的時候,你是按照自己的意愿來control它,比如jQuery(下文還會細(xì)說jQuery)。而,對于framework, 那么control就是倒轉(zhuǎn)過來了,是它在control你,比如bootstrap。

小結(jié):

上面我們都說過了,使用庫的時候我們比較隨意,想用哪取哪,哪塊好用哪,而且把它拿過來可以按照我們的編寫意愿來用。但是框架就不一樣,我們好像被它控制著,要使用它,就得聽它的,按照它的規(guī)則來,即使它某些地方我們用不到,或者不喜歡,也不能說什么。

擴(kuò)展:

我們來把上面遺留的jQuery說清楚。jQuery 的定位顯得棱模兩可,可以說是庫,也可以說是框架,為什么這么說呢?

官方的來說,框架也算是庫的一種,但傾向于重量級一些,傾向于提供整套的解決方案,傾向于創(chuàng)造一些需要你來遵守的規(guī)則和范例。而JQuery屬于Java家族,它是一種快捷,小巧,功能豐富的JavaScript庫。

所以,你可以把它當(dāng)成框架來使用。以jQuery為基礎(chǔ)架構(gòu)出你自己的框架。因此我們沒必要在這個問題上糾結(jié),我就當(dāng)它是庫,但是可以當(dāng)框架來用。

還有一點要說的是,JQuery提高的是你的工作效率,并不是代碼的運行效率。它只是減少了你需要敲的代碼量,但是它的執(zhí)行效率不一定有原生JS的效率高,除非你原生JS寫的特別差。

在實際中,像angular、backbone、vue就屬于框架,而jQuery、react、underscore就是庫,

就單拿React來說吧,官網(wǎng)自己也說了它是庫:

React is a declarative, efficient, and flexible JavaScript library for building user interfaces.

因為框架是有一套解決方案的,React就是純粹寫UI組件的 沒有什么異步處理機制、模塊化、表單驗證這些。React和react-router, react-redux結(jié)合起來才叫框架,而React本身只是充當(dāng)一個前端渲染的庫而已。(暫完)

筆者作為一個新人,翻看和欣賞了大神的筆記后,自己總結(jié)加工,發(fā)表一下自己淺薄的見解,如果哪里說得不對,希望讀者能提出批評和指正,本人表示誠心的感謝。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/92426.html

相關(guān)文章

  • 談項目中如何選擇框架和庫(FEDAY主題分享總結(jié))

    摘要:但是在不同的項目中不同的維度權(quán)重時不一樣的沒有統(tǒng)一的原則去解決一個問題要自身實踐來測試選擇原則妥適性原則避免過渡實現(xiàn),暫時用一些,現(xiàn)在還可能用不到,或者用的不多庫來滿足當(dāng)前需求。 這個兩天看了張克軍(豆瓣前端專家、前端布道師)在FEDAY的主題分享覺得對中大型項目開發(fā)很有幫助所以在這里分享給大家后面會有視頻地址。下面介紹重點內(nèi)容。這里分享的項目是指公司實際產(chǎn)品開發(fā),協(xié)同人數(shù)比較多,更加...

    go4it 評論0 收藏0
  • 框架(framework)和庫(Library)的區(qū)別

    摘要:也就是說當(dāng)你在調(diào)用的時候,你按照自己的意愿來他比如??蚣芤竽阌媚撤N形式去寫代碼,比如遵照的約定,等等。一個簡單的分辨方式引入一個依賴,如果要對架構(gòu)進(jìn)行修改的,那么就算是框架如果無需修改原有架構(gòu),那么就算庫。 when you call a library, you are in control. But with a framework, the control is inverte...

    DevWiki 評論0 收藏0
  • PHP回顧之Composer

    摘要:本文簡要回顧相關(guān)概念和用法。相比之下已是明日黃花。分別對應(yīng)的命令是根據(jù)關(guān)鍵字查找依賴包,例如查找本人發(fā)布的包。作為目前包依賴管理的最佳工具,值得每一位開發(fā)人員掌握。 轉(zhuǎn)載請注明文章出處:https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請求 cookie web響應(yīng) session 數(shù)據(jù)庫操作 加解密 Composer是PHP...

    Ocean 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<