程式設計師如何說服老闆採用Node.js?

2020-12-13 CSDN技術社區

導讀:近期以來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都能滿足你的需求。

  • Unix工具 Shelling out to unix tools

目前Node.js還很年幼,它正試圖為自己重新發明各類軟體。不過更好的辦法是深入到現有的廣闊的命令行工具世界裡。Node可以把這些成千上萬的子進程以stream的方式輸出,這也使它成為企業的理想選擇。

傳統的Web棧將http請求和響應作為元事件處理。然而,他們是流動的,許多非常棒的Node.js應用程式正是利用這一優點創建的。這裡有一個非常棒的案例,當進行實時解析上傳文件時,還可以在不同的數據層之間創建代理。

利用Node.js你可以輕鬆開發軟體實時系統。比如Twitter、聊天工具,體彩或者即時通訊網絡接口。

但是,值得注意的是,因為JavaScript是一個動態的/垃圾回收特性語言,你的響應次數往往取決於有多頻繁以及多久接觸垃圾回收機制(此時你的程序停止了)。因此,不要試圖在Node中建立很複雜(hard)的實時系統,這需要一致的響應時間。Erlang在這類應用上是個不錯的選擇。

說服老闆

當你確定,該使用案例適用於Node.js時,那麼是時候去說服你的老闆/管理者了。

  • 建立一個原型Building a prototype

最好的方法是,當你踏進房門前,先在大腦裡為某個應用程式的特定部分常見一個簡單的模型思路,這樣通常很容易獲得管理者的許可。當你獲得批准後,你可以向老闆徵詢一項基本制度以及運行機制,這將為你獲得使用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

責任編輯:夏夢竹

相關焦點

  • Node.js 學習資料和教程(值得收藏)
    >被誤解的 Node.jsNode.js C++ addon編寫實戰系列熱門node.js模塊排行榜,方便找出你想要的模塊nodejs多線程,真正的非阻塞淺析nodejs  業界新聞看eBay如何評價他們的Node.js首次嘗鮮程式設計師如何說服老闆採用Node.js?
  • 我開始討厭node.js了
    擁抱JavaScript2014年,我從一個半吊子c#程式設計師轉速前端,突然就愛上了JavaScript,感覺好像一顆被c#束縛已久的心終於解放了,js那种放蕩不羈愛自由的操作領悟神魂顛倒,我感覺自己擺脫了那些過度封裝的程序,所有的代碼都盡在掌握之中,那種感覺說不出的爽。
  • 百萬級並發 Node.js也能行
    Node.js是建立在Google V8 JavaScript引擎之上的網絡伺服器框架,允許開發者能夠用客戶端使用的語言JavaScript在伺服器端編碼。此前,研發頻道發過一篇《程式設計師如何說服老闆採用Node.js?》,無一不說明Node.js正逐漸受到開發者的追捧。想知道Node.js是如何處理高並發請求的嗎?
  • Node.JS快速入門
    -v會顯示當前node的版本號2.快速入門2.1 控制臺輸出我們現在做個最簡單的小例子,演示如何在控制臺輸出,在e盤創建文件夾nodedemo ,創建文本文件demo1.js,代碼內容我們在命令提示符下輸入命令node demo1.js ,結果如下:2.2 使用函數我們剛才的例子非常簡單,咱們這裡再看一下函數的使用:我們在命令提示符下輸入命令node demo2.js ,結果如下:
  • 在 Node.js 7 中甩掉 Callback Hell
    在幾個月之前,V8 引擎就實現了對 async/await 關鍵字的支持,Node.js 7中的 V8 經過幾次更新,終於在上一個 night build 版本中加入對為了解決 callback hell(回調地獄),程式設計師們一直在努力,從最早的回調函數,到 Promise 對象,再到 Generator 函數,每次都有所改進,但又讓人覺得不徹底 —— 因為使用它們之前都需要理解抽象的底層運行機制。
  • 如何利用Node.js 構建分布式集群
    本文為UCloud 公司高級工程師文天樂在深JS大會上發表的演講內容,主要介紹了UCloud內部如何利用Node.js 構建分布式集群,並分享了實踐過程中走過的坑,希望對正在使用Node.js或是即將使用Node.js的朋友有一些幫助。
  • Node.js為何在後端開發中不受重視?
    其他幾種語言我覺得沒有根本性的區別,論生態完善度,都是半斤八兩,論高並發,golang當之無愧,論語言友好度,Node.js可以排到首位。今天我們要講的主角是Node.js。平時我們在工作中,Java、golang、node.js都用來開發過後端服務,Java就不必講了,講多了容易惹事,golang寫起來確實麻煩,node.js無疑是開發最舒服的那一個。
  • node.js、MongoDB下一代的LAMP
    node.js、MongoDB下一代的LAMP 我們大部分人在做網站時,都用的是LAMP,殊不知LAMP已成過去式,新一代的小生:nix、node.js、MongoDB誕生了,讓我們走進他們,知道他們的故事!
  • Node.js模塊化你所需要知道的事
    Node.js允許我們用多種方式來引用模塊,比如相對路徑、絕對路徑、預置路徑(馬上會解釋),假設我們需要引用一個叫做find-me的模塊,require如何幫助我們找到這個模塊呢?了解了Node.js是如何尋找模塊之後,來看看Node.js是如何加載模塊的。模塊間的父子依賴關係我們把模塊間引用關係,表示為父子依賴關係。簡單創建一個lib/util.js文件,添加一行console.log語句,標識這是一個被引用的子模塊。
  • 在macOS Catalina 上如何安裝 NodeJS
    運行剛剛下載的 node-v****.pkg 文件。遵循安裝步驟(接受許可協議),直到安裝完成。創建一個新的JavaScript文件(helloWorld.js)並添加以下行:console.log("Hello from macOS Catalina");保存 helloWorld.js 文件後,打開終端然後切換到存儲JS文件的目錄:
  • 專門針對初學者的Node.js教程
    Node.js的教程並不缺乏,但有大部分教程針對已有Node.js基礎的開發者。「我已下載了Node.js,可我如何開始呢?」以下教程是專門針對Node.js初學者,文中將通過實例分享,一步步教你如何開始Node.js之旅。  什麼是Node.js?
  • nodejs 中文分詞模塊 node-segment
    github:https://github.com/leizongmin/node-segment 在線演示地址:http://segment.ucdok.com/ 本分詞模塊具有以下特點: 1、使用方法 安裝:$ npm install segment --save 使用:
  • 如何在Windows系統安裝最新版本的Node.js
    工具windows作業系統Node.js技術JavaScript在使用vue框架、react框架和angularjs框架時,隨著框架版本不斷更新,對應的Node.js版本也在不斷更新;如果版本不對應,搭建框架的項目就啟動不了。
  • 如何使用Node.js上傳文件
    npm install filestack-js,將npm包拉入您的項目。npm install -g filestack-js,將npm包拉入您的全局系統。yarn install filestack-js,拉同樣的npm包(但使用紗線代替npm)。yarn global add filestack-js,將npm包添加到yarn的全局安裝中。
  • 【 Node.js 進階】你應該知道的 NPM 知識都在這!
    但是 npm 本身對兩個腳本提供了默認值,這兩個腳本不用在 script 屬性中定義,可以直接使用"start": "node server.js""install": "node-gyp rebuild"npm run start 的默認值是 node server.js ,前提是根目錄下有 server.js
  • centos7編程實踐:安裝nodejs
    2、node.js的優勢2.1、Nodejs語法完全是js語法,只要你懂js基礎就可以學會Nodejs後端開發Node打破了過去JavaScript只能在瀏覽器中運行的局面。當有用戶連接了,就觸發一個內部事件,通過非阻塞I/O、事件驅動機制,讓Node.js程序宏觀上也是並行的。使用Node.js,一個8GB內存的伺服器,可以同時處理超過4萬用戶的連接。2.3、實現高性能伺服器 嚴格地說,Node.js是一個用於開發各種web伺服器的開發工具。
  • 使用Chrome DevTools有效調試Node.js
    本文介紹如何使用最新的Google Chrome DevTools高效地調試Node.js程序。請繼續閱讀,並閱讀關於Chrome DevTools的節點調試是識別和消除軟體應用程式中的錯誤的任務,它不僅僅是在代碼中列印出值。本文介紹如何使用最新的Google Chrome DevTools高效地調試Node.js程序。
  • 全程指導:Node JS實戰之製作塗鴉遊戲
    curl http://npmjs.org/install.sh | sh  在安裝完畢node.js後,我們需要安裝node.js中的模塊包,因為在程序中我們要用到網絡相關的一系列功能,而幸運的是,node.js都幫我們封裝了大量而豐富的相關的各種函數和方法
  • 10+ 最佳的 Node.js 教程結合實例
    對於完全的Node.js初學者,  在深入挖掘本文章後續提到的學習項目之前,一步步按照airpair.com上面入門指南的要點 或 Node.js入門指南 之類的文章學習是不錯的選擇。Nodeschool.io是另一個比較好的網站,上面有著非常多的資料,可以學習基本的node.js及相關的技術。
  • nodejs windows環境下搭建
    目前,Node.js是在前端開發中十分受歡迎,它是一套用來編寫高性能網絡伺服器的JavaScript工具包,官網中介紹:Node.js 是一個基於Chrome JavaScript 運行時建立的一個平臺, 用來方便地搭建快速的 易於擴展的網絡應用; Node.js 藉助事件驅動, 非阻塞I