亚洲综合伊人,成人欧美一区二区三区视频不卡,欧美日韩在线高清,日韩国产午夜一区二区三区,大胆美女艺术,一级毛片毛片**毛片毛片,你瞅啥图片

您當(dāng)前的位置是:  首頁(yè) > 新聞 > 文章精選 >
 首頁(yè) > 新聞 > 文章精選 >

烽火前端技術(shù)在云計(jì)算領(lǐng)域的思考與實(shí)踐

2018-02-05 12:06:51   作者:   來源:CTI論壇   評(píng)論:0  點(diǎn)擊:


  一、前言
  近幾年來,前端地位發(fā)生翻天覆地的變化,這得益于互聯(lián)網(wǎng)產(chǎn)品的廣泛的應(yīng)用,以及用戶對(duì)于用戶體驗(yàn)提出更加人性化的要求。
  同樣,在云計(jì)算領(lǐng)域,要想我們的產(chǎn)品脫穎而出,在滿足用戶基本功能的前提下,也要確保產(chǎn)品的高可用性與強(qiáng)易用性。
  本文立足于時(shí)下最火熱的前端開發(fā)框架,結(jié)合云計(jì)算技術(shù),深入介紹實(shí)際項(xiàng)目遇到的開發(fā)瓶頸,并預(yù)測(cè)未來產(chǎn)品的發(fā)展趨勢(shì)。
  二、前端發(fā)展趨勢(shì)
  一)主流前端框架設(shè)計(jì)思想
  現(xiàn)如今,前端領(lǐng)域一直在叫響一個(gè)聲音,“No jQuery”。如果你是剛剛接觸前端的開發(fā)人員,可能會(huì)對(duì)這一點(diǎn)產(chǎn)生疑惑。確實(shí),早期前端的世界,jQuery的地位就如同Java在后端的地位。沒有幾個(gè)做前端開發(fā)的沒有聽過jQuery。但如今為啥我們要摒棄jQuery呢?這還得從互聯(lián)網(wǎng)這幾年的發(fā)展趨勢(shì)看這個(gè)問題。
  的確,單從代碼實(shí)現(xiàn)的角度看,只要你的團(tuán)隊(duì)精通這項(xiàng)技術(shù),并且能夠儲(chǔ)備足夠的后備開發(fā)人員,任何技術(shù)、任何框架都是不存在問題的。所以,摒棄jQuery的原因就不是技術(shù)問題了,而是市場(chǎng)需求的變更。
  如今的互聯(lián)網(wǎng)開發(fā)模式也跟早期開發(fā)模式不同,尤其是移動(dòng)互聯(lián)網(wǎng)興起的這幾年。傳統(tǒng)互聯(lián)網(wǎng)開發(fā)通常只有兩種:Web開發(fā)和桌面開發(fā)。當(dāng)時(shí)應(yīng)用的復(fù)雜性與多樣性也不能跟現(xiàn)在應(yīng)用相比。所以往往都是一個(gè)程序員包攬整個(gè)項(xiàng)目的研發(fā)。而現(xiàn)在的應(yīng)用,沒有一個(gè)“漂亮的臉蛋”和“友好的交互”,根本不會(huì)引起用戶的問津。所以開發(fā)人員由此細(xì)分成前端開發(fā)和后端開發(fā)。前端主要負(fù)責(zé)頁(yè)面跳轉(zhuǎn)、交互、數(shù)據(jù)的展示等,而后端負(fù)責(zé)提供微服務(wù)、數(shù)據(jù)庫(kù)讀寫等。
  再往后,各類框架的蓬勃發(fā)展,各種編程思想的不斷提出。前端框架也吸取其思想精華,結(jié)合Web的具體環(huán)境,逐漸產(chǎn)生出Angular、React、Vue等等這些優(yōu)秀的前端開發(fā)框架。
  無論哪種前端開發(fā)框架,一般都擁有類似的幾個(gè)共同點(diǎn):
  • 單頁(yè)面應(yīng)用
  • DOM雙向綁定
  • 支持組件化,并能實(shí)現(xiàn)組建件通信
  • 支持?jǐn)?shù)據(jù)流
  • 支持RESTful
  通過這些共同點(diǎn),我們也不難發(fā)現(xiàn)試下流行前端開發(fā)框架的設(shè)計(jì)思路。那就是把每個(gè)前端應(yīng)用看成是一個(gè)個(gè)分布式結(jié)點(diǎn),既能維護(hù)自身邏輯,有能提供借口供其它應(yīng)用調(diào)用,等應(yīng)用形成一定規(guī)模,就想天上的星星,不僅相對(duì)獨(dú)立,又彼此密不可分。如此,恰恰符合云計(jì)算應(yīng)用的各種特性。
  二)Flux/Redux思想介紹
  前端的特性有很多,其中跟云計(jì)算結(jié)合最為緊密的,要數(shù)Flux/Redux了。
  Flux/Redux最開始是由React提出的,為滿足頁(yè)面結(jié)構(gòu)復(fù)雜的大型應(yīng)用程序所設(shè)計(jì)的。Redux設(shè)計(jì)思想很簡(jiǎn)單:
  • Web應(yīng)用是一個(gè)狀態(tài)機(jī),視圖與狀態(tài)是一一對(duì)應(yīng)的。
  • 所有的狀態(tài)都保存到一個(gè)對(duì)象里。
  圖 1 Redux模型
  這種狀態(tài)機(jī)的思想與云計(jì)算的思想不謀而和。當(dāng)云計(jì)算規(guī)模龐大時(shí),也同樣需要監(jiān)控?cái)?shù)字指標(biāo)進(jìn)行狀態(tài)管理,而前端應(yīng)用程序其實(shí)就可以看成一個(gè)簡(jiǎn)單的云計(jì)算應(yīng)用子集,如此,眾多的應(yīng)用相互聯(lián)系,就能形成龐大的云計(jì)算前端體系。
  三、Web設(shè)計(jì)原則
  一)設(shè)計(jì)師的職責(zé)
  隨著前端的發(fā)展,設(shè)計(jì)師的工作也悄然發(fā)生變化。從前一個(gè)美工就能勝任的工作,如今被劃分成更細(xì)致的崗位:UI設(shè)計(jì)師、交互設(shè)計(jì)師和用戶體驗(yàn)設(shè)計(jì)師。這里不詳細(xì)展開介紹設(shè)計(jì)師的具體工作,僅僅立足于前端開發(fā)的視角,談?wù)勗O(shè)計(jì)師的工作重心。
  前面介紹了主流前端框架的設(shè)計(jì)思想,設(shè)計(jì)師不僅要能設(shè)計(jì)出漂亮的界面,也得酌情考慮編碼的支持。尤其是工作經(jīng)驗(yàn)豐富的設(shè)計(jì)師,其交付給前端開發(fā)人員的設(shè)計(jì)界面,不再是簡(jiǎn)簡(jiǎn)單單的一張圖片,而應(yīng)該是結(jié)構(gòu)劃分清晰,需求描述準(zhǔn)確的多尺寸設(shè)計(jì)圖。前端開發(fā)工程師再根據(jù)其設(shè)計(jì)好的圖片,精準(zhǔn)還原需求設(shè)計(jì)。
  二)如何做好符合云計(jì)算應(yīng)用的前端設(shè)計(jì)

 
  前面簡(jiǎn)單介紹了前端發(fā)展背景下的設(shè)計(jì)師職責(zé),那么云計(jì)算領(lǐng)域的設(shè)計(jì)師又該做何種技能選擇呢?
  首要的一點(diǎn)是,設(shè)計(jì)師得根據(jù)實(shí)際項(xiàng)目的風(fēng)格確定產(chǎn)品的設(shè)計(jì)基調(diào)。是走擬物風(fēng)格,還是走扁平風(fēng)?是暖色調(diào)為主,還是冷色居多?這是設(shè)計(jì)師首要考慮的問題。因?yàn)檫@個(gè)基調(diào)先定好,后面的設(shè)計(jì)工作才能有序展開。
  其次,是要以組件化的思維去設(shè)計(jì)頁(yè)面,這點(diǎn)跟前端組建化開發(fā)思路保持一致。何為“組件化設(shè)計(jì)思維”?就是把一個(gè)個(gè)頁(yè)面元素看成是一個(gè)個(gè)單獨(dú)的組件,設(shè)計(jì)時(shí),不僅僅要追求單個(gè)組件的細(xì)致,更重要的是要追求組件放入頁(yè)面之后整個(gè)頁(yè)面的實(shí)際效果。
  由此,設(shè)計(jì)師最終產(chǎn)出的成果,不僅僅是一張張漂亮的圖片,還得是一整套風(fēng)格統(tǒng)一的組件設(shè)計(jì)元素。往后的設(shè)計(jì)工作,就由重新設(shè)計(jì)一張張圖,變成一個(gè)個(gè)元素的搭配,由此工作效率和可行性將得到大大提高。
  四、前后端分離思想
  一)前后端分離原理
  前面提到主流前端框架的公共特性,不僅僅是為了滿足我們實(shí)際的業(yè)務(wù)需求,還有一個(gè)重要原因就是為了做前后端分離。
  前后端分離這個(gè)概念也不是什么新東西了,主要就是為了解耦開發(fā)團(tuán)隊(duì)的工作。
  前端開發(fā)工程師在NodeJS技術(shù)之下可以不用完全依賴后端的服務(wù),而可以自己寫數(shù)據(jù)服務(wù)。不用再等待后端接口編寫好后才開始自己的開發(fā),完全可以模擬自己的數(shù)據(jù)請(qǐng)求來實(shí)現(xiàn)完整的業(yè)務(wù)流程。由此進(jìn)行開發(fā),不僅能減少前后端聯(lián)調(diào)所需的時(shí)間,更能保證彼此的開發(fā)速度不受太大的干擾,保證項(xiàng)目的開發(fā)速度。
  二)前后端分離實(shí)踐
  國(guó)內(nèi)外互聯(lián)網(wǎng)巨頭早就已經(jīng)開始進(jìn)行前后端分離的實(shí)踐了,比較典型的就是阿里的基于NodeJS的全棧式開發(fā)。簡(jiǎn)單的說,就是在傳統(tǒng)Java層與Browser層中間加一層NodeJS層。
  那么加了這一層效果怎樣呢。淘寶雙十一千萬級(jí)并發(fā)訪問量告訴我們,這樣的解決方案是可行并且是有效的。
  圖 2淘寶基于NodeJS的前后端分離分層
  五、數(shù)據(jù)可視化
  數(shù)據(jù)可視化并不是簡(jiǎn)單的把數(shù)據(jù)變成圖表。而是以數(shù)據(jù)為視角,看待世界。換句話說,數(shù)據(jù)可視化的客體是數(shù)據(jù),但我們想要的其實(shí)是——數(shù)據(jù)視覺,以數(shù)據(jù)為工具,以可視化為手段,目的是描述真實(shí),探索世界。
  當(dāng)下數(shù)據(jù)可視化工具不少,百度的eCharts,一直都很火的D3.js,開源地圖Leaflet等等。運(yùn)用這些控件,能讓應(yīng)用程序直觀地向用戶展示數(shù)據(jù)之間的聯(lián)系和變化情況,讓產(chǎn)品在同類產(chǎn)品中脫穎而出。
  作者簡(jiǎn)介
  董覓,烽火集成軟件工程師,從事軟件前端相關(guān)開發(fā)工作。擅長(zhǎng)html5、css3、canvas等前端技術(shù),尤其在數(shù)據(jù)可視化領(lǐng)域的前端技術(shù)實(shí)現(xiàn)有深入研究,了解市場(chǎng)主流數(shù)據(jù)可視化相關(guān)技術(shù)實(shí)現(xiàn)方案。
【免責(zé)聲明】本文僅代表作者本人觀點(diǎn),與CTI論壇無關(guān)。CTI論壇對(duì)文中陳述、觀點(diǎn)判斷保持中立,不對(duì)所包含內(nèi)容的準(zhǔn)確性、可靠性或完整性提供任何明示或暗示的保證。請(qǐng)讀者僅作參考,并請(qǐng)自行承擔(dān)全部責(zé)任。

專題