您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關為何我們要從Node.JS遷移到Ruby on Rails,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
聲明:這篇文章絕不是一篇討論Node.JS和Ruby on Rails孰優孰略的檄文。它描述的只是我們做決策過程中的一些思考、決策背后的原因。兩種框架都非常優秀,都出色的完成了它們的設計初衷,這也是為什么我們部分的模塊仍然運行在Node.JS上的原因。
我是Node.JS的大粉絲,認為這是一項讓人非常興奮的技術,相信它會變的越來越流行。我對這項技術非常的欣賞——盡管我們最近把Targeter App從Node.JS遷移到了Ruby on Rails。
我們當時使用Node.JS開發它的原因很簡單。我有一個程序包,能很快的將我們的應用弄上線(我們花了54小時做這個事情),相比起Ruby,我更常使用的是JavaScript。因為我們的技術架構牽涉到MongoDB,我的這些特長只有在Node.JS環境里才會有意義。然而,隨著應用規模的增長,我認識到,選擇Node.JS來實現這個應用是個錯誤的選擇。下面讓我來概述一下其中的原因。
Node.JS很適合做那些有大量短生命期請求的應用。對于傳統的CRUD應用,它也很好,但不是非常的理想。在PHP,Ruby,Python語言里都有很成熟、優化的很好的框架來處理這種應用。Node.JS里的所有東西都異步執行的理念對于CRUD應用來說沒有任何效果。其它語言里的流行的框架能提供非常好的緩存技術,你所有的需求都能滿足,包括異步執行。
Node.JS是一種非常年輕的技術框架,它的周邊程序庫都不是很成熟。我說這些并沒有任何對那些代碼捐贈者冒犯的意思,他們很優秀,開發出來很多優秀的程序庫。然而,大部分程序庫需要改進,而Node.JS的這種快速成長的環境意味著每一版升級中都帶有大量的變化;當你使用一種前沿技術時,你十分有必要盡快的緊跟***的版本。這給創業型的企業帶來了很多的麻煩。
另外一個原因是關于測試。Node.JS里的測試框架還不錯,但跟Django或RoR平臺上的相比還是差一些。對于一個每天都有大量的代碼提交、并且在一兩天內就要發布的應用來說,程序不能出問題是至關重要的,否則你為此辛苦的努力變得得不償失。沒有人愿意花一天的時間改一些***的bug。
***一點,我們需要的是一種能緩存一切的東西,并且要盡快的實現。盡管我們的應用在增長,每秒鐘有上萬次的hits,但絕不會出現很大量的訪問請求;這不是一個聊天程序!主程序最多時也就達到1000RPS,這樣的負載對于Ruby on Rails和Nginx來說算不了什么。
如果你現在還在讀這篇文章,那你已經看到了我所有要說的了,你也許非常堅持的想知道我們的應用什么地方還在使用Node.JS。是這樣的,我們的應用由兩部分組成。一是界面,用戶看到的這部分,二是負責報表管理的部分,以及做日志的功能。后者是Node.JS的一個***使用場景,存在有大量的短周期的請求。這部分的動作需要盡快的執行完成,甚至要在我們的數據推送還沒有完成之前。這很重要,當請求執行還未結束,瀏覽器繼續等待響應結束,這會影響用戶使用體驗。Node.JS的異步特性救了我們。數據要么被存入數據庫,要么被處理掉,當請求一旦執行完成,瀏覽器就可以開始做其它重要的事情了。
上述就是小編為大家分享的為何我們要從Node.JS遷移到Ruby on Rails了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。