使用AngularJS開(kāi)發(fā)我們下一款Web應(yīng)用的七個(gè)理由
譯文在當(dāng)下這個(gè)電子商務(wù)時(shí)代,每一家企業(yè)都熱衷于通過(guò)網(wǎng)絡(luò)拓展自身業(yè)務(wù)。而這也使Web開(kāi)發(fā)人員市場(chǎng)呈現(xiàn)出***的紅火態(tài)勢(shì)。根據(jù)最近發(fā)布的一份調(diào)查報(bào)告,全球網(wǎng)站總數(shù)已經(jīng)超過(guò)8.76億個(gè),而且這一數(shù)字還在不斷上升當(dāng)中。市場(chǎng)上用于Web開(kāi)發(fā)的平臺(tái)亦多種多樣,對(duì)從業(yè)者而言,最重要的是從其中找到最適合自己的正確選項(xiàng)。AngularJS誕生于2009年,而且自亮相之日起就在市場(chǎng)上掀起了難以忽視的波瀾。AngularJS是一套開(kāi)源Web應(yīng)用程序框架,且主要面向HTML(即超文本標(biāo)記語(yǔ)言)、CSS(即層疊樣式表)以及JS(即JavaScript)。
作為一套開(kāi)源Web開(kāi)發(fā)框架,AngularJS由谷歌公司以及一個(gè)由開(kāi)發(fā)者組成的個(gè)人社區(qū)共同打造。AngularJS的主要優(yōu)勢(shì)在于幫助使用者在Web應(yīng)用程序當(dāng)中實(shí)現(xiàn)必要的動(dòng)態(tài)視圖。它允許大家在運(yùn)行時(shí)中實(shí)現(xiàn)多種功能以擴(kuò)展HTML詞匯,從而使代碼質(zhì)量進(jìn)一步提高并加快整個(gè)開(kāi)發(fā)周期。它同時(shí)也采用大量定制化指令標(biāo)簽、依賴性注入、過(guò)濾器以及RESTFUL API等元素,從而保證我們能夠在Web開(kāi)發(fā)工作中采取更多***實(shí)踐。
AngularJS建立在JavaScript基礎(chǔ)之上,而后者正是目前世界上應(yīng)用范圍最廣、靈活程度***的編程語(yǔ)言之一。AngularJS能夠?yàn)槭褂谜咛峁┮惶淄暾能浖糜诨谇岸说膽?yīng)用程序。對(duì)于Web開(kāi)發(fā)人員來(lái)說(shuō),AngularJS以框架形式將所有復(fù)雜性元素加以打包,從而保證使用者只需要直接接觸那些最易于實(shí)現(xiàn)的功能,這無(wú)疑成為解放生產(chǎn)力、簡(jiǎn)化工作流程的巨大福音。有鑒于此,為了幫助大家明確AngularJS的人氣優(yōu)勢(shì)與豐富功能,我們整理出了開(kāi)發(fā)Web應(yīng)用應(yīng)當(dāng)***AngularJS的七項(xiàng)理由——下面一起來(lái)看。
1) MVC架構(gòu)
AngularJS采用MVC架構(gòu)以進(jìn)行Web應(yīng)用程序開(kāi)發(fā)。要實(shí)現(xiàn)MVC,大家只需要對(duì)自己的應(yīng)用進(jìn)行拆分,其它的所有工作都可以由AngularJS負(fù)責(zé)完成。MVC架構(gòu)所指的是Model View Controller,即模型視圖控制器,其中:
• 模型負(fù)責(zé)維護(hù)數(shù)據(jù)。
• 視圖負(fù)責(zé)顯示數(shù)據(jù)。
• 控制器則作為銜接視圖與模型之間的橋梁。
2) 指令
大家可以利用多種指令變更HTML標(biāo)簽的具體行為。這是一項(xiàng)非常強(qiáng)大的功能,允許使用者創(chuàng)建出各類定制化標(biāo)簽。使用指令標(biāo)簽會(huì)通知編譯器在DOM元素中添加某些功能,甚至能夠?qū)ζ溥M(jìn)行改動(dòng)。AngularJS中還提供大量預(yù)置指令,大家可以根據(jù)實(shí)際需要進(jìn)行選擇。
3) POJO
AngularJS當(dāng)中所使用的每個(gè)對(duì)象都屬于POJO(即簡(jiǎn)單JavaScript對(duì)象),這意味著我們不再需要使用額外的getter以及setter函數(shù)。POJO能夠?yàn)槲覀兲峁┯糜趯?duì)象操作的全部標(biāo)準(zhǔn)JavaScript函數(shù)。它能夠幫助大家從對(duì)象當(dāng)中移除以及添加屬性,并根據(jù)需要跳過(guò)某些對(duì)象。
4) 易用性
AngularJS擁有豐富的功能集,從而通過(guò)降低代碼編寫(xiě)需求的方式讓開(kāi)發(fā)過(guò)程更為輕松。它消除了我們?cè)趯?shí)現(xiàn)MVC架構(gòu)時(shí)所面臨的種種難題。現(xiàn)在要實(shí)現(xiàn)數(shù)據(jù)模型,我們已經(jīng)不必費(fèi)力編寫(xiě)getter與setter。此外,指令并不屬于應(yīng)用代碼本身的組成部分,因此其它并行開(kāi)發(fā)團(tuán)隊(duì)也可以對(duì)其加以管理。這一切都***程度降低了開(kāi)發(fā)工作對(duì)于從業(yè)者的編程要求。
5)利用依賴性注入進(jìn)行測(cè)試
如果不經(jīng)過(guò)嚴(yán)格測(cè)試,我們的應(yīng)用程序絕對(duì)稱不上完整。事實(shí)上,測(cè)試已經(jīng)成為確保所交付項(xiàng)目中不存在錯(cuò)誤的重要手段。AngularJS在構(gòu)建過(guò)程中就已經(jīng)將測(cè)試納入到考量當(dāng)中。利用AngularJS創(chuàng)建的應(yīng)用程序全面與依賴性注入相對(duì)接。大家可以非常輕松地將樣本數(shù)據(jù)注入至控制器,從而檢測(cè)其輸出結(jié)果及行為方式是否符合預(yù)期。
6)客戶端解決方案
AngularJS在客戶端起效,但同時(shí)也能夠與桌面及移動(dòng)瀏覽器相兼容。AngularJS能夠用于創(chuàng)建任意項(xiàng)目類型,且無(wú)需對(duì)后端作出任何修改。因此,我們可以放心大膽地利用它開(kāi)發(fā)任意應(yīng)用程序前端。此外,由于AngulaJS本身屬于客戶端且能夠運(yùn)行在任意支持JavaScript的瀏覽器之上,因此應(yīng)用程序部署工作的實(shí)現(xiàn)難度也就變得更低。
7) 靈活的過(guò)濾器
過(guò)濾器會(huì)在顯示之前對(duì)數(shù)值進(jìn)行重新定義,例如變更數(shù)字的小數(shù)取位、將字符串轉(zhuǎn)換為大寫(xiě)或者將分頁(yè)添加至網(wǎng)頁(yè)等等。這些過(guò)濾器與指令非常相似,而且能夠以獨(dú)立函數(shù)的方式起效,只是專門(mén)面向數(shù)據(jù)轉(zhuǎn)換方面的任務(wù)。大家也可以根據(jù)需要?jiǎng)?chuàng)建自己的定制化過(guò)濾器。
選擇合適的平臺(tái)無(wú)疑是Web開(kāi)發(fā)工作當(dāng)中至關(guān)重要的一環(huán)。因此在閱讀了本篇文章之后,相信大家一定了解到了AngularJS的強(qiáng)大之處。當(dāng)然,這并不代表著AngularJS足以成為每一種Web開(kāi)發(fā)場(chǎng)景之下的***選項(xiàng)。舉例來(lái)說(shuō),在處理高強(qiáng)度數(shù)學(xué)計(jì)算時(shí)就不建議使用AngularJS,但它確實(shí)能夠在大多數(shù)情況下成為理想的開(kāi)發(fā)實(shí)現(xiàn)手段。
大家在工作當(dāng)中肯定也考量過(guò)其它一些用于實(shí)現(xiàn)Web開(kāi)發(fā)的備選方案,或者能夠提出更多足以證明AngularJS強(qiáng)大之處的理由。歡迎各位在評(píng)論欄中分享您的真知灼見(jiàn)。
原文標(biāo)題:7 Reasons to use AngularJS for developing your next web apps