重拾Angular的一些小思考

最近重拾Angular,準確的說是從AngularJs到Angular的遷移,已經(jīng)相當長一段時間沒有觸碰前端,重走前端之路,多了幾分思考和感慨。作為一個“偽前端”,以java為主業(yè),node以輔助,機緣巧合入了前端開發(fā)的門,并搞了一些hybrid的移動開發(fā),與勤懇耕耘前端的“專業(yè)前端”相比,自是羸弱很多,本文以此角度分享,末尾也將給出一些個人的總結。如有偏頗,網(wǎng)諸位指正。

我不是一個狂熱的google粉,使用Angular也是誤打誤撞,進入上一家公司的時候,恰逢一個項目部分重構,前端框架就是Angular(Angular1.X + KendoUI + Customized Directives + Open Source Directives) ,當時AngularJs正是如日中天,我也寫的津津有味,后臺配之RESTful API甚至Happy?。ó斎滑F(xiàn)實并沒有那么美好,其中的坑和歷史原因的workaround也是挺扯的)。后來也參與了使用Ionic 進行mobile開發(fā)的部分工作,也打開了一扇新技術的大門,hybrid概念也風起云涌,大家躍躍欲試,自此 移動、Web、后臺之路勉強打通。如今踏入Angular,不免懷念。

Angular:群雄逐鹿中的高瞻遠矚

如今前端之火熊熊燃燒,前端的工程化之路欣欣向榮,各大廠、各路牛人乃至ES標準都各顯神通:諸如Google的AngularJs、Facebook的React、尤雨溪大神的Vue.js、ES6的推進等無不說明這是一個群雄逐鹿的“大前端時代”。
秦失其鹿,天下共逐之,而贏家并非只有一個。

  • 從AngularJs到Angular :谷歌的高瞻遠矚

    對于一個AngularJs的使用者來講,Angular2的各種消息無疑會有一些打擊:全新框架設計、不兼容1.X版本、推薦使用TypeScript開發(fā)等,天啊,難道手里的東西要丟掉重新開始?看下如今最紅火的幾個框架的目標:
    AngularJS — Superheroic JavaScript MVW Framework
    Angular: One framework
    Vue:The Progressive JavaScript Framework
    React:A JavaScript library for building user interfaces
    注意,Angular是想做One framework,打通移動、web、桌面,提供一站式服務,相比其他輕量級的解決方案,無疑更具前瞻性(為了這個美夢也是付出著努力?。?/p>

    Vue.js的作者尤雨溪在知乎的回答中也提到,這些框架在當下沒有絕對的贏家! 雖說Vue.js如今火爆,但是領域還是以互聯(lián)網(wǎng)應用為主,輕量級、靈活;React作為一個Lib著重于View操作;AngularJs依然火爆企業(yè)級應用(Angular出來之前我也預測過,與諸位看法一致,Angular新版本并不會導致AngularJs的衰敗,AngularJs經(jīng)歷了磨煉之后迎來真正的爆發(fā):越來越多的企業(yè)級應用會選擇AngularJs,github上55032的start足以表明)。
    Angular的決策著實影響了Angular的進一步推進,雖然我也認同Just do one thing and make it best,但是有一個全面且優(yōu)秀的方案也在長遠來看更是美哉?。?/p>

  • 從AngularJs到Angular之掣肘天下,縱橫捭闔
    動態(tài)語言一時爽,代碼重構火葬場!JavaScript由于歷史原因和其設計思想使得寫出好的js代碼、寫出好測的代碼變得困難,記得初識javascript,直覺它簡單方便,等讀了一些js的書籍,踩過js的坑之后方覺靈活伴隨的陷阱(甚至有一本神書曰:the good part of JavaScript,捂臉逃...)。當Google和巨硬在Angular上達成合作的時候我是甚為驚嘆的!兩大廠做后盾,TypeScript加Angular,這是要掣肘天下的節(jié)奏?。。?!

    TypeScript與ES6的爭論我自是不言,但是從一個寫java為生,兼做了前端的業(yè)余選手來講,類型無疑是一個好東西!我想不是每個公司都可以招聘到BAT等大廠高水平的前端工程師、也不是每個項目能夠嚴格推行前端的編碼規(guī)范、做到嚴格的前后端分離也不是如描繪的那樣容易。每個前端的水平不一致、代碼風格不一致、代碼庫越來越龐大、人員更迭等等在JS這個弱類型語言面前被放大。阿里的一前端大牛都抱怨,寫node煩人?。r且一種兼職的偽前端的呢?
    有了類型有了編譯,有了微軟大廠(良心講,微軟好些東西設計挺好,若不是當年太過封閉不至于被黑,尤其被Java陣營的人黑!),寫代碼、重構代碼乃至IDE提示都較js有大幅提升啊,不要紙上約束程序員,直接融到他的工具中是最穩(wěn)妥的方案!

Angular與Typescrip的縱橫之策,給繁復巨大的企業(yè)級應用帶來福音,給非專業(yè)的前端開發(fā)更多的保障,給微軟擁抱開源注入強心針,給谷歌推行思想一條更寬廣的路。

  • 從AngularJs到Angular:潤物有聲,且行且珍惜
    溜一遍Angular的文檔,你會發(fā)現(xiàn),其實AngularJs的思想精髓都還在,或者說更加分明、清晰、優(yōu)秀!Scope隨被移除但思想還在,融入到了Componet中;Controller也順勢變成Componet讓組件化意圖更加明顯;Observe改進性能,并刪除了額外的directive;模塊機制部分使用ES6并支持懶加載····,開發(fā)者呢,其實花費一些時間就能很快上手。Angular并沒有放棄AngularJs的東西,在大創(chuàng)新的前提下還是為AngularJS的老開發(fā)們打開方便之門的!

生態(tài)環(huán)境上,Ionic也緊隨步伐,設計基于material design簡直不要太漂亮!雖說Angular的其他組件目前確實沒有那么紅火,但是我相信,在一段時間后將會大量增加(AngularJs到Angular的組件遷移,不算難事啊)。
Angular在國內似乎沒有那么紅火,普通企業(yè)級應用在享受AngularJs的便利下,Angular確實會變成一個觀望選項,不過我相信當發(fā)覺了One Framework的好處以及明了TypeScript的便捷之后,講很快迎來大的發(fā)展!

總結

ES6是標準,提供了模塊化和類型的概念,我想專業(yè)的前端同學還是以ES6為主;Typescript是js的超集,提供了AOT,編譯是個好東西啊,雖不是正統(tǒng)標準但是包含這些標準,如我這般偽前端可以入手;關于Bable和TC的爭論我暫不論述,畢竟不是一個道路上的玩意兒,再次,大前端時代,沒有唯一的贏家!怎么合適怎么來,每個框架有各自的場景,選擇趁手兵器即可!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容