国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

[轉]Node.js給前端帶來了什么

BearyChat / 759人閱讀

摘要:兩個獨立的層即使這種技術風靡全球之后,前端工程師的主要工作也都是局限于瀏覽器窗口之內的。這是目前最主流的一種前后端分工方式帶來的改變一發布,立刻在前端工程師中引起了軒然大波,前端工程師們幾乎立刻對這一項技術表露出了相當大的熱情和期待。

轉載自:http://www.w3ctech.com/topic/37

原 文: https://www.nczonline.net/blog/2013/10/07/node-js-and-the-new-web-front-end/

在軟件開發領域,前端工程師曾經是一個比較糾結的職業。在Web技術真正發展起來之前的相當長一段時間里,由于技術門檻很低,前端工程師行業一直是魚龍混雜的狀態。其中很多號稱是Web開發者的人實際上并沒有什么專業的前端技能,有些工作就是被當做簡單的力氣活由美術設計師順便做做而已。當時很多人甚至并不認為有朝一日會有這么一群人用HTML、CSS和JavaScript這三門技術謀生 --- 他們想,這怎么可能呢 --- 這些技術看起來都是如此簡單,隨隨便便混在一起用就哦了,把做這些活看成一種正兒八經的職業簡直是笑話。

隨著技術發展,JavaScript這門語言在悄然改變人們對前端工作的看法,讓一些人從美工頁面仔轉變為真正的前端工程師。JavaScript,這門很多工程師曾經把它當做玩具而不屑一顧的腳本語言竟然演變成了推動互聯網發展的核心驅動力。伴隨著越來越多的瀏覽器的出現使得用HTML和CSS兼容各種瀏覽器變得越來越難,于是能實現兼容各種瀏覽器的頁面成為了前端工程師的金字招牌,前端職業開始變得炙手可熱。

兩個獨立的UI層

即使Ajax這種技術風靡全球之后,前端工程師的主要工作也都是局限于瀏覽器窗口之內的。HTML、CSS和JavaScript是前端工程師必須要掌握的三種核心技術,前端同后端的唯一交集僅僅是前端需要確保后端的數據能夠以正確合適的格式輸出到瀏覽器上。在某種意義上來說,Web開發有兩個UI層,一個是在瀏覽器里面我們最終看到的,另一個在server端,負責生成和拼接頁面。因為傳統前端基本上沒有辦法自主決定server端如何處理數據拼接生成頁面,因為數據如何組織,往往是會受到后端工程師所選擇的技術框架的影響的,而后端不理解前端的一些需求所以他們選擇的時候也就很少會從前端方便的角度進行考慮。

在上面這張圖的結構里,瀏覽器里的UI層是完全歸前端工程師管的。服務器端的UI層則是前后端都關心的部分,剩下的部分則是服務端的底層,諸如數據處理、緩存、權限控制和其他核心模塊,這些是歸后端管的。我們還是回過頭來看我們所關心的server端UI層吧,這一層所做的事情通常是拼頁面模板以及處理具體的業務交互邏輯。

所以,傳統的前后端分工是由前端負責瀏覽器,而其他瀏覽器之外的東東統統歸由后端負責。前后端的交集server的UI層也是由后端來主導的。這是目前最主流的一種前后端分工方式

Node.js帶來的改變

Node.js一發布,立刻在前端工程師中引起了軒然大波,前端工程師們幾乎立刻對這一項技術表露出了相當大的熱情和期待。上一次一種技術能被整個前端界如此關注那還是在幾年之前,那時候Ajax這個概念剛剛被提出來。讓JavaScript跑在server端,這個想法簡直太棒了。這下我們不用再去學那些什么PHP啦、Ruby啦、Java啦、Scala啦或者其他什么對前端來說奇怪的語言,也可以輕松地將我們的領域擴展到server端,多么美好的前景!

我從來不是一個PHP的愛好者,但是我在Yahoo工作的時候,我不得不使用PHP。為了這份工作,我得忍受花費許多額外的時間去修復由于PHP的傻逼特性導致的坑。對于一直使用Java作為服務端語言的我來說,對PHP實在是很難適應。我相信,也一直堅持認為一種靜態類型的語言更加適合用來構建你的業務邏輯的核心部分。因此,雖然我很喜歡JavaScript,但我也不會用它來做所有的事情,比如我絕對不會只用JavaScript來實現一個完整的購物車系統。

對于我來說,Node.js不是一個解決一切問題的銀彈,我不會用它來取代server端所有別的語言模塊。事實上,Node.js可以做到其他后端語言所能做到的幾乎所有的事情,但是我不會這么做。我所認為的比較合適的做法是用Node.js來解決server端UI層的問題,這樣我就可以將這一層從后端的其他部分剝離開來。

現在越來越多的公司傾向于采用面向服務(service-oriented)的架構,由后端提供給前端RESTful的接口,這么做是為了更好的做前后端的依賴分離。如果所有的關鍵業務邏輯都封裝成REST調用,就意味著在上層只需要考慮如何用這些REST接口構建具體的應用。那些后端程序員們根本不操心具體數據是如何從一個頁面傳遞到另一個頁面的,他們也不用管用戶數據更新是通過Ajax異步獲取的還是通過刷新頁面,當然他們更不關心的是你究竟在用jQuery還是YUI --- 這與他們根本毫無關系嘛。后端程序員真正應該關心的難道不應該是數據如何存儲、如何容錯以及如何保證安全性嗎?

現在我們看看Node.js帶來的好處吧,當后端程序員提供了REST服務之后,現在我們前端程序員可以使用Node.js來處理server端的UI層啦,我們可以將通過REST調用拿到的數據隨心所欲地進行處理,不管是渲染模板還是直接提供給Ajax,現在我們僅僅用JavaScript一種語言就可以輕松實現這些。至于后端程序員,他們只需要保證數據的正確性,無論他們使用任何一種語言來封裝REST調用,都不會對前端造成影響,這樣前后端的職責不就被更好地劃分了嗎?這樣分工之后前端的領域就從瀏覽器小框框里面擴展到了server的UI層,而這一層本來對于后端來說是一件他們做起來不輕松的零碎活兒。

不!這太聳人聽聞了!

前端工程師接手之前一直由后端負責的這部分工作不那么容易被后端工程師們理解和接受。尤其是現在還有很多后端工程師認為JavaScript是一種極簡單的“玩具語言”,他們將會想如此重要的服務端工作怎么能交給這群看起來不靠譜的人用如此“不嚴肅”的語言來玩?在我的經驗里,這種觀念上的沖突是前后端工程師們在是否引入Node.js這一問題上的最大分歧。Server端UI層是前后端的中間地帶,而之前通常后端程序員對于這個地帶比較有主導權,所以一旦你進入這個本來屬于后端主導的領域,爭議自然是不可避免的。

實際上放棄傳統的角色立場,將server的UI層分給前端,在大型Web架構下是很有意義的。不這么做的話,有時候前端想要從后端要到正確的數據,還不得不關心后端究竟是用什么語言實現的。過去的分工中,那些原本屬于核心業務底層考慮的東西會被暴露給server的UI層,而這些問題往往會不小心影響到前端。前端本來不需要關注這些問題,因為前后端所關心的方面根本完全不一樣嘛。如果你理解單一職能、責任分離和模塊化,你就會理解我所說的,甚至會覺得以前不把server的UI層分給前端實在是很笨。

只可惜,之前Node.js這樣的東東不存在,所以當時沒有前端合適的技術讓前端工程師們自己搞定server的UI層。所以后端的同學們用PHP的人就順手把UI用PHP的模板實現了,同樣的用Java的后端同學也自然而然地用JSP搞定這個問題。這不是前端的同學不愿意去做server的UI,而是因為在之前,沒有一種我們熟悉的技術讓我們能夠搞定這些事情,但是現在不一樣了,我們有Node.js了。

結論

我喜歡Node.js,我喜歡由這項技術給前端界帶來的更大的發展潛力。我并不認為整個后端完全用Node.js來實現會是一個很好的方案,盡管Node.js完全可以做到這一切。我認為目前Node.js最大的價值是能讓前端完全把控整個UI層,不論是瀏覽器的還是Server端的,做到這一點,我們工作的效率能得到很大的提升。我們前端更擅長于決定數據以何種方式呈現能帶給用戶更好的體驗,而后端則更加了解如何處理數據。在這種新的分工方式下,后端只需要提供合適的數據操作接口,前端自己就能構建漂亮的、有效率的、可用性高的接口,從而實現用戶所喜歡的交互。

使用Node.js來搞定server的UI層也將后端工程師從他們不擅長的領域解放了出來。于是我們得到了一個Web開發的靈丹妙藥:前后端之間只需要通過數據來交互,這種模型使得兩方相互獨立,各自都能夠快速迭代開發,而只要保證數據接口不變,前后端彼此之間就不會造成任何影響。

果斷嘗試一下吧,這個方案也許正適合你的團隊。

博客地址:http://wangyh.net

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/78786.html

相關文章

  • 從 JavaScript 到 TypeScript - 模塊化和構建

    摘要:不過,相對于靜態類型檢查帶來的好處,這些代價是值得的。當然少不了的模塊化標準,雖然到目前為止和大部分瀏覽器都還不支持它。本身支持兩種模塊化方式,一種是對的模塊的微小擴展,另一種是在發布之前本身模仿的命名空間。有一種情況例外。 TypeScript 帶來的最大好處就是靜態類型檢查,所以在從 JavaScript 轉向 TypeScript 之前,一定要認識到添加類型定義會帶來額外的工作量...

    Jonathan Shieber 評論0 收藏0
  • 實踐中的電商前端優化

    摘要:前端優化已經是一個被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優化的一個重點,特別是針對的優化。如果你對前端性能優化有自己的想法,歡迎騷擾我。 前端優化已經是一個被寫爛的題材了。 雖千萬人吾往矣,這里我僅分享我的一些實踐經驗。 歡迎一起交流 歡迎關注我的個人公眾號,不定期更新自己的工作心得。 showImg(https://segmentfault.com/img/remote...

    Michael_Ding 評論0 收藏0
  • 實踐中的電商前端優化

    摘要:前端優化已經是一個被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優化的一個重點,特別是針對的優化。如果你對前端性能優化有自己的想法,歡迎騷擾我。 前端優化已經是一個被寫爛的題材了。 雖千萬人吾往矣,這里我僅分享我的一些實踐經驗。 歡迎一起交流 歡迎關注我的個人公眾號,不定期更新自己的工作心得。 showImg(https://segmentfault.com/img/remote...

    Dongjie_Liu 評論0 收藏0
  • 實踐中的電商前端優化

    摘要:前端優化已經是一個被寫爛的題材了。前端模板方案有很多。重繪是瀏覽器性能優化的一個重點,特別是針對的優化。如果你對前端性能優化有自己的想法,歡迎騷擾我。 前端優化已經是一個被寫爛的題材了。 雖千萬人吾往矣,這里我僅分享我的一些實踐經驗。 歡迎一起交流 歡迎關注我的個人公眾號,不定期更新自己的工作心得。 showImg(https://segmentfault.com/img/remote...

    lakeside 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<