【Angular專題】——(1)Angular,孤傲的變革者

一. 漫談Angular

Angular,來自Google的前端SPA框架,與React,Vue並稱前端框架的三駕馬車,前些日子剛發佈了7.0版本。它是一個十足的革命者,每一次亮相,都會把新的思想和軟件層面的實現提供給開發者,從Angularjs1.0時代推翻jQuery的統治地位,到Angular2.0時代基於Typescript的全面升級,再到如今每半年一個大版本的高速更新迭代,不斷革新着前端代碼的編寫方式,也推進着前端開發工程化和正規化的發展,能夠說Angular一直在用行動詮釋着本身的孤傲和才華。html

Angular很是喜歡引入和傳播思想層面的概念,它把那些被公認爲正確優雅且有助於工程實踐的事物帶給前端,而並不在意這些事物來自前端或者後端,也不在意新的概念起源於哪一個編程語言,它不發明概念,只是概念的搬運工,它彷佛老是在說「這個想法是對的,那咱們在Angular裏實現它吧」,形成的直接結果就是學習曲線異常陡峭,許多初級和中級的開發者淺嘗輒止,直接棄坑投奔ReactVue陣營,全部的創新都會面臨這樣的窘境,但Angular彷佛並不在意,升級迭代的速度反而更快了。事實證實這種精英門檻思惟是正確的,它的確讓不少初中級開發者無所適從,但同時也讓中高級前端開發者和從後端轉到前端開發的工程師受益,工程化的工具面向對象的思想高仿Java的語法強類型的限制,一個個特性都對開發團隊的總體素養提出了更高的要求,同時也讓代碼的質量也有了更多的保障。前端

Angular是有生命的,與其說它是一個框架,倒不如說它是一個老師,不只教授編程,也傳播思想,嚴厲卻有活力。若是說Vue能激發開發者的興趣,讓你快速上手拿出做品,React可以強迫開發者深耕javascript語言自己的特性和組件化思想,那麼Angular帶給前端開發者的,更多的是正統的面向對象開發和軟件工程的思惟方式,它逼迫你改變散漫的編程習慣,強迫你學習新的實現方式,漸漸地你甚至忘記了本身是一個前端,那麼恭喜你,說明你已經脫離了初級水平。java

若是一件事情是軟件工程師應該懂的,那麼你就應該懂。在我眼裏,這纔是Angular帶給前端開發者最有價值的思想,由於心裏深處的自我認知和定位會決定一我的將來所能達到的高度。angularjs

二. 若是你還在使用Angularjs

提到Angular體系,許多開發者因爲入行較晚的緣故,頗有可能還在使用Angularjs1.X版本進行開發或維護,並無必要以爲自卑或者沮喪。Angular的開發者並不見得就比Angularjs1.X的開發者更厲害,不誇張的說,Angularjs1.X中所包含的精華知識對不少開發者來講可能一生都學不完,你須要關注其底層原理,把知識點延伸開去學習,而不僅是天天沒完沒了地寫頁面綁事件發請求而後自我陶醉。編程

Angularjs1.X被認爲是模塊化的開發框架,而Angular,Vue,React被認爲是組件化的框架,從常見語法的角度來看的確是這樣,但這並不表明Angularjs1.X不能進行組件化開發,只是門檻略高,Angularjs1.X中組件化的實現是基於自定義指令的,1-2年經驗卻何嘗試過使用自定義指令的開發者比比皆是,形成的直接結果就是經常一個controller中的代碼好幾千行,代碼裏混合着各類DOM操做,不只性能很難保障,維護難度也是噩夢級別的。後端

若是面對這樣的狀況你尚未解決思路,那我並不建議你開始Angular技術棧的學習,而應該先去搞清楚如何在本身最熟悉的框架中來應用組件化開發的思想。好比面對一個4000行的controller,先考慮一下本身能不能經過拆分子路由和組合視圖將其重構爲3-4個大模塊,這樣每一個大模塊就有約1000行代碼,再考慮一下可否把大模塊拆分紅3-4個小模塊,controller只傳入必要的啓動參數,而後在小模塊中實現業務自治,並經過controller來實現不一樣小模塊之間的通信,這樣每一個模塊的代碼量基本就能夠作到小於500行,接着把DOM操做盡可能整合進指令的link函數中,配合框架自身的生命週期特色來運行。若是上面的描述你不知道如何作,那麼就靜下心好好查查資料,學習實踐一下。若是你已經知道該怎麼實現,那麼就能夠開啓Angular2的學習了,你會在其中看到不少不少本身熟悉的東西。前端框架

三. 我計劃這樣學習Angular技術棧

說實話,我接觸Angular才2個禮拜,可是我很喜歡它,嚴謹,優雅,最重要的是VSCode的主題很漂亮。個人學習計劃大約是這樣,若是感興趣,歡迎一塊兒行動起來:框架

  • 1.慕課網的免費教程裏有一個Angular的課程和一個Angular-Cli的課程,能夠帶你快速入門。(已完成)編程語言

  • 2.閱讀官方文檔:Angular中文網地址:https://www.angular.cn/

    官方文檔特別詳細,至少須要通讀一次,而後在實際開發中遇到相關問題時再來查詢。

  • 3.針對概念和原理進行專題學習

    針對概念關鍵詞展開學習是我一向的作法,在【一統江湖的大前端(7)React.js-從開發者到工程師】中就有說起。「學習一個框架,作一個TodoList,而後就沒有而後了」,這是不少人對於新技術的學習方式,你會發現它其實並無什麼卵用,由於過半個月,你就會不記得本身作過什麼了(別問我怎麼知道的)。若是有實戰項目,那是最好的,實戰中的學習是最快的;若是沒有實戰項目,那麼你應該關注它的核心概念和原理,響應式編程是什麼東西,新的Angular中的DI系統有什麼變化,修飾器是如何工做的等等,框架和實現細節或許會變化,但經典思想通常都是很穩定的,你只須要反覆研究去理解它就能夠了。

  • 4.分享以及撰寫技術博客

    寫博文並非什麼高大上的事情,只是一種習慣,一種輔助本身思考和總結的習慣。最重要的是,它能夠提升你打字的速度,若是你用80%的時間敲完別人100%時間才能敲完的代碼,那不就有20%的時間去學習新東西或者去寫博客了麼,個人時間基本就是這樣擠出來的。

相關文章
相關標籤/搜索