最近,在持續關注一個Twitter話題,就是 Why do people decide to use frameworks? ,這個話題是由Nicole Sullivan提出的。前端
剛開始,我對這個問題也沒有太在乎,也就是隨意的看了看,正如提問者Nicole Sullivan說的那樣,我剛開始也以爲這是一個愚蠢的問題。可是這個問題就像蒲公英的種子同樣,就這麼在個人腦海裏紮了根,截至到我這寫這篇文章以前,我都有一直關注這個問題,而且在思考這個問題。vue
雖然這個問題看似簡單,你或多或少都能回答出那麼一兩點,可是我想你可能本身也對本身的回答不太滿意吧?無論你怎麼想的,但我漸漸收起了我從一開始的輕視態度,開始正視這個問題。vue-router
在這裏,我還要感謝Nicole Sullivan,是她的這個話題,讓我對爲何使用框架有了全方位的瞭解。vuex
不用的其中一個緣由,就是用框架的成本過高。誇張一點說,可能就這一點就就蓋過了它全部的優勢,但要用一個框架必定要考慮它的成本。後端
對於一個團隊來講,首先須要專門招聘一些精通這個框架的開發人員(前端/後端)和維護人員,再加之沒有一個框架是萬能的,若是下一個項目使用另外一個框架是否意味着另招一批開發人員,這樣的代價不是全部的企業都能承受;框架
對我的來講,學習一個框架須要花費大量的時間和精力,你不只要學習框架自己,你還要了解它的生態系統,關注它的各方面諮詢,尤爲是版本更新,它每每帶有對過去框架存在問題的改進,若是升級版就能夠移除本身解決原框架存在問題而寫的補丁(這些補丁有大有小,也可能引入了其餘依賴),這樣就帶來另外一個問題,項目的遷移問題,像angular同樣它如今的版本已經到了9.x,但如今有至關一部分還在用着1.x,angualr雖好,可是它也給開發人員帶來了巨大麻煩,學習曲線太陡是一方面,要了解的東西太多(知識面的廣度)是另外一個重要方面。固然一直使用一個框架,並進行深度挖掘的技術團隊,受益良多,但這樣的團隊又有多少。ide
除了成本,就要考慮項目的規模和複雜度問題。工具
不能一個就五六個簡單頁面的項目,你就引入一個框架吧。此外使用一個框加,每每會使用它配套的部件,如:引入vue,一些用慣了vue-router,vuex,在項目中天然而然的引入這些東西,這些在簡單的仙姑中每每沒有必要。這也是開發這些框架的核心團隊爲何儘可能的縮減核心框架功能的緣由,而把一些次要功能或三級功能獨立出來。這些由主框架、功能庫、主題庫、工具庫、以及輔助開發的工具庫等組成的集合,就是該框架的生態系統。學習
國內的一些基層開發人員廣泛存在不理智的現象,跟風現象比較嚴重。應該注意這些:設計
大神
神話,它們也是從 小白
成長起來的。其實,無論你是否使用框架,抑或你對框架持有什麼樣的態度,你都要明白你選擇的出發點兒是什麼或者說動機是什麼。