導讀:近期以來Node.js在業界很火,有關它的的新聞不勝枚舉,種種跡象表明業界更多的公司在關注和考慮採用Node.js。俗話說「巧婦難為無米之炊」,程式設計師該如何成功說服老闆聽取您的建議?針對這一話題,作者Felix發表了一篇博文,文中分享了一些建設性指南,CSDN研發頻道現將此文進行編譯,分享給開發者,也歡迎大家發表自己Node.js實戰心得。
糟糕的使用案例
儘管一直鍾情於Node.js,但這裡有幾個使用案例,結果卻並不令人如意。最明顯的是Apps在CPU上的使用率以及I/O操作是極其高負荷的。因此,如果你打算寫一個視頻編碼軟體,人工智慧或者類似CPU使用率比較高的軟體,那麼請不要使用Node.js,使用C或者C++效果會更好一些。
話雖如此,但Node.js允許你輕鬆的編寫C++插件,因此,你可以將它作為一個超級算法的腳本引擎。
Node.js最終會成為一款不錯的編寫Web應用的工具。但是,你不能指望它能像PHP,Ruby,Python那樣為你提供更多的好處。也許你的應用程式會因此而獲得更多的可擴展性,但並不會因為用Node.js編寫的而為你帶來更多的訪問量。
當我們看到Node.js一些不錯的框架時,或許你會因此而欣喜不已。事實上,至今還沒有比Rails,CakePHP或者Django這些框架更具強大的應用功能。如果你的應用程式只是為了基於一些資料庫給HTML做渲染,那麼使用Node.js不會給你帶來任何利益好處。
假如你的下一個應用程式的系統架構讀起來像NoSQL的配料菜譜,請花點時間閱讀下面的內容。
Redis,CouchDB,MongoDB,Riak,Casandra等這些看起來似乎很誘人,同樣令人難以抗拒。如果你正在使用Node.js,那麼就不應該附加上一些你完全不了解的技術。
當然,也有選擇一個文檔資料庫合理使用的案例。但是如果你想開發一個商業項目,請堅持保守的資料庫技術(比如Postgres 或者 MySQL)或許能滿足你的需求。
出色的使用案例
創建一個輕量級的REST / JSON API這確實是Node.js的一大亮點。如果需要包裝其他的數據源(如資料庫)或者Web伺服器通過JSON接口讓他們暴露出來,那麼將非阻塞I/O模塊與JavaScript結合在一起是個不錯的選擇。
如果你打算寫一個AJAX單一的頁面應用(如Gmail),Node.js非常適合。在極短的響應時間內獲得更多的請求數,在客戶端和伺服器之間共享數據,為現代Web應用程式在客戶端上做大量的處理,Node.js都能滿足你的需求。
目前Node.js還很年幼,它正試圖為自己重新發明各類軟體。不過更好的辦法是深入到現有的廣闊的命令行工具世界裡。Node可以把這些成千上萬的子進程以stream的方式輸出,這也使它成為企業的理想選擇。
傳統的Web棧將http請求和響應作為元事件處理。然而,他們是流動的,許多非常棒的Node.js應用程式正是利用這一優點創建的。這裡有一個非常棒的案例,當進行實時解析上傳文件時,還可以在不同的數據層之間創建代理。
利用Node.js你可以輕鬆開發軟體實時系統。比如Twitter、聊天工具,體彩或者即時通訊網絡接口。
但是,值得注意的是,因為JavaScript是一個動態的/垃圾回收特性語言,你的響應次數往往取決於有多頻繁以及多久接觸垃圾回收機制(此時你的程序停止了)。因此,不要試圖在Node中建立很複雜(hard)的實時系統,這需要一致的響應時間。Erlang在這類應用上是個不錯的選擇。
說服老闆
當你確定,該使用案例適用於Node.js時,那麼是時候去說服你的老闆/管理者了。
最好的方法是,當你踏進房門前,先在大腦裡為某個應用程式的特定部分常見一個簡單的模型思路,這樣通常很容易獲得管理者的許可。當你獲得批准後,你可以向老闆徵詢一項基本制度以及運行機制,這將為你獲得使用Node.js的權限提供更多的硬數據以及證據。
JavaScript是一款非常熱門的計算機程式語言。幾乎每臺電腦都安裝了一個甚至多個JavaScript編譯器,這就意味著,大部分Web開發者在其職業生涯中如果不學習JavaScript,幾乎是不可能的。這就意味著,你可以僱傭大量的開發者,你的公司也會人才濟濟。如果你正在一家蒸蒸日上的公司裡工作,那麼對Node.js技術發展非常有利。
此刻,Node.js社區用戶數正以一個瘋狂的速度增長,該社區吸引了眾多頂尖開發者。也就是說Node生態系統每天都在完善,並且通過不同渠道獲得了各個企業的免費支持。
如果性能是你在應用程式上考慮到的最重要的一面,Node.js能夠為你提供更多性能支持。隨著知名企業(Mozilla,Google,Apple,Microsoft,Opera)在JavaScript實現方面的相互競爭,Node編譯器(Google V8引擎)已成為一塊奇葩,並且會越來越好。與Node無阻塞I/O模型相結合,你必須努力創造出一個呆滯(sluggish)應用。大多數Node應用可輕易的處理成千上萬並發連結。
使用一個年輕的開源項目且缺乏承諾,這是非常危險的。但這或許不適合Node.js。目前,Node的主辦方Joyent,聘請了Ryan Dahl以及其他的一些核心貢獻者,這也為該項目的未來發展奠定了紮實的基礎。除此之外,Yahoo!和惠普(formerly Palm)公司表示有足夠的信心利用Node.js來開發下一代產品。
因此,你的老闆可以放心讓你使用Node.js。
說服客戶
如果你是一個自由職業者或者在一家小公司做合同工作,試圖說服客戶使用Node.js也許會有另一番景象呈現。他們通常會根據你來進行判斷,並且會繼續支持你為他們創建的軟體項目。
以上這些只是我的一些建議,在項目啟動前,你需要認真核實下Node是否適合該項目。如果適合,還需確保將來是否有足夠的資源以及時間來支持該應用。
附:Node.js開發團隊正在發布一個新版本,未來每隔3-6個月會更新一個新版本。
背景:
Node.js——建立在Google V8 JavaScript引擎之上的網絡伺服器框架,它是事件驅動的,採用異步輸入輸出來最小化其成本並最大化其可擴展性。Node.js讓開發者能夠用客戶端使用的語言JavaScript在伺服器端編碼。
本文為CSDN編譯整理,未經允許不得轉載。如需轉載請聯繫market@csdn.net。
英文出自:nodeguide
責任編輯:夏夢竹