自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

應(yīng)該在業(yè)余項目使用 Node.js

移動開發(fā)
Node.js 已經(jīng)成為流行的服務(wù)器端平臺,用作很多現(xiàn)代 web 應(yīng)用程序的 web 服務(wù)器。在開發(fā) Node.js 應(yīng)用程序時,你將使用 JavaScript 編寫所有東西,還能夠在任何一種類型的服務(wù)器(Windows、Mac 或 Linux)上運行你的應(yīng)用程序。

有一種東西,把軟件行業(yè)的人們聯(lián)系在了一起:我們喜歡創(chuàng)造能夠運行的東西。完成一個功能、或剛好符合預期的項目,是最讓人滿意的。對于我的業(yè)余項目(side projects),我熱愛學習新框架、技術(shù)和語言。但是到了***,最有收獲和欣慰的地方,是完成了項目并對外發(fā)布了某些東西。老實講,如果你有全職工作,擔心鍛煉身體、雜事和可能還要睡覺,那么,常常難以找到完成業(yè)余項目的時間,當我談到這個問題時,你會理解的。借助提前規(guī)劃,或許利用一些不錯的項目管理工具,我們就可以幫助自己。但是我們的技術(shù)棧怎么樣?如果完成并發(fā)布項目是我們的目標,那么挑選一種能夠較好適應(yīng)快速開發(fā)的技術(shù)棧就顯得十分重要了。

Node.js 已經(jīng)成為流行的服務(wù)器端平臺,用作很多現(xiàn)代 web 應(yīng)用程序的 web 服務(wù)器。在開發(fā) Node.js 應(yīng)用程序時,你將使用 JavaScript 編寫所有東西,還能夠在任何一種類型的服務(wù)器(Windows、Mac 或 Linux)上運行你的應(yīng)用程序。Node.js 由大量的限定范圍的模塊(module) 和 包(package) 組成,你可以將它們利用起來。盡管如此,你***取你所需,確保你的應(yīng)用程序盡可能地輕量級。在一天結(jié)束時,你應(yīng)該享受業(yè)余項目,Node.js 應(yīng)用程序?qū)懫饋肀容^有樂趣。

1.Node.js 究竟是什么?

Node.js 本身只是一種運行時環(huán)境,適合使用 JavaScript 來編寫服務(wù)器端應(yīng)用程序。Node.js 不是 JavaScript 框架,但是大部分 Node.js 應(yīng)用程序使用了框架。Express.js 是***的 Node.js 框架,有著出色的文檔和海量的優(yōu)秀資源。因此對于 Node.js web 應(yīng)用程序棧而言,你應(yīng)安裝 Node.js 和 Express.js 來運行你的 web 服務(wù)器,這將成為一個快速、輕量級的中間人,它能夠在你的客戶端和數(shù)據(jù)庫之間迅速地傳遞請求和響應(yīng)。

2.你不應(yīng)該使用 Node.js 的場景

在我們深入 Node.js 開發(fā)的精彩部分之前,讓我們首先說清楚你不應(yīng)該使用 Node.js 的情況。

如果你要開發(fā)的應(yīng)用程序涉及到 CPU 密集型的操作,你就不應(yīng)該使用 Node.js。Node.js 是單線程的,在服務(wù)器上運行要耗費太長時間,會拖垮應(yīng)用程序的性能。對于服務(wù)器上任何種類的大數(shù)據(jù)集,你的應(yīng)用程序都不應(yīng)該處理它們。要么把這部分工作轉(zhuǎn)移到數(shù)據(jù)庫,要么粗暴地切換到更適合的平臺上。

如果你不喜歡 JavaScript 開發(fā),你就不應(yīng)該使用 Node.js。你應(yīng)該享受業(yè)余項目,不要因為網(wǎng)上有人告訴你這樣做,就把不愉快的東西強加給自己。但是在你放棄之前,聽我把話說完,我遇到過很多人,他們漠視著 JavaScript,甚至沒有給 JavaScript 一個公平的機會。剛開始時,JavaScript 貌似狂野、難以駕馭,不過當你學會了如何正確地使用,你就能看到它的力量有多大了。JavaScript 是應(yīng)用最廣泛的編程語言之一,隨著 ECMAScript 6 的發(fā)布,它將變得更好。

3.JavaScript ——前端和后端

讓我們深入了解一下,Node.js ***化你的業(yè)余項目生產(chǎn)力的方式。JavaScript 已經(jīng)接管了互聯(lián)網(wǎng),不再單純用于瑣碎功能。對于很多現(xiàn)代 web 應(yīng)用程序,運行在客戶端的核心功能是由 JavaScript 提供的。除了改善用戶體驗,它還從 web 服務(wù)器分擔了大量工作。還記得之前我們討論的輕量級的服務(wù)器嗎?讓客戶端的瀏覽器承擔自己的工作,這樣我們就能夠充分利用 Node.js 的***力量——減輕快捷的 I/O。

應(yīng)用程序邏輯在前后端之間傳播;對于我們這些 Node.js 開發(fā)人員,我們能夠幸運地在前后端使用完全相同的編程語言。大部分開發(fā)人員對于上下文切換的成本,已經(jīng)有了更多的認識。不得不把你的思維重新聚焦和調(diào)整在新任務(wù)、新語言、以及新問題上,常常會讓開發(fā)人員耗費一些寶貴的有效率的時間。減少上下文之間切換的距離,使我們在各種任務(wù)的處理上游刃有余,相應(yīng)的恢復時間也更加迅速。

4.JSON——數(shù)據(jù)叢林之王

對于服務(wù)器端和客戶端之間的數(shù)據(jù)傳輸,JSON(JavaScript Object Notation)【注1】已經(jīng)成為事實上的數(shù)據(jù)格式。根據(jù)我在其它平臺上開發(fā) web 應(yīng)用程序的經(jīng)歷,把你的數(shù)據(jù)轉(zhuǎn)換成各種格式和模型,所花費的時間是相當驚人的。對于 Node.js 應(yīng)用程序,JSON 可以用在應(yīng)用程序的所有三個領(lǐng)域——客戶端、服務(wù)器端和數(shù)據(jù)庫。MongoDB 和 CouchDB 是流行的 NoSQL 數(shù)據(jù)庫,使用 JSON 存儲數(shù)據(jù)。PostgreSQL,一個流行的開源關(guān)系型數(shù)據(jù)庫系統(tǒng),也支持存儲 JSON 對象。微軟甚至宣布 SQL Server 2016 將支持 JSON。有如此豐富的可選項,就可輕松地給你的 Node.js 應(yīng)用程序挑選一種可靠數(shù)據(jù)庫,以擠出每一點生產(chǎn)力,而不必擔心數(shù)據(jù)格式的轉(zhuǎn)換。

5.模塊——取你所需

業(yè)余項目的一個經(jīng)驗法則就是保持小而專注。該法則有助于確保真正地完成你的項目。同樣的概念可在 Node.js 項目中找到——你只使用那些真正需要的模塊。這使得你的應(yīng)用程序足夠輕量級。和其它那些以企業(yè)為中心的平臺不同,你不會有大量根本用不到的額外東東。你的開發(fā)和部署將更迅速,你的項目將占用更少空間,項目里的每樣東西恰恰都是你需要的,你明白這些,內(nèi)心感到平靜。NPM(Node Package Manager)【注2】是 Node.js 應(yīng)用程序的一大賣點。它讓你簡單快捷地訪問所有公共 Node 模塊,選擇范圍超過了 150,000 個包。減少開發(fā)時間、利用已有開源軟件和工具,從未如此簡單過。

6.總結(jié)

Node.js 給我們提供了一個了不起的應(yīng)用程序平臺,因其高 I/O 需求而真正勝出的 web 應(yīng)用程序。如果你打算在下一個業(yè)余項目使用 Node.js,就盡量開發(fā)一個輕量的 web 服務(wù)器 API,以最小化服務(wù)器端的真正負載。Node.js 極易理解,開發(fā)人員學習和掌握起來,相對容易些,為什么不嘗試一下呢?

7.我的下一步規(guī)劃

我想包含一些優(yōu)秀資源的簡單清單,幫助我掌握 Node.js。

https://thinkster.io/mean-stack-tutorial/ :它是對我?guī)椭?**的教程。該教程結(jié)構(gòu)精妙,覆蓋了極有價值的海量內(nèi)容。該教程免費,但是你還能付費,以訪問到源代碼和視頻(當時我為源代碼支付了 25 美元,不過他們好像變成了每月 20 美元的訂閱,就可看到他們的所有教程)。

http://www.toptal.com/nodejs/why-the-hell-would-i-use-node-js :一篇寫得不錯的文章,幫助我理解了 Node.js 的優(yōu)點和缺點。

注1:JSON(JavaScript Object Notation)是一種由道格拉斯·克羅克福特構(gòu)想設(shè)計、輕量級的數(shù)據(jù)交換語言,以文字為基礎(chǔ),且易于讓人閱讀。盡管JSON是Javascript的一個子集,但JSON是獨立于語言的文本格式,并且采用了類似于C語言家族的一些習慣。https://zh.wikipedia.org/wiki/JSON

注2:Node包管理器(Node Package Manager)。它是一個javascript的軟件包管理系統(tǒng),默認環(huán)境為Node.js,從Node.js0.6.3版本開始,npm被自動附帶在安裝包中。https://zh.wikipedia.org/wiki/Node%E5%8C%85%E7%AE%A1%E7%90%86%E5%99%A8

責任編輯:chenqingxiang 來源: 臘八粥
點贊
收藏

51CTO技術(shù)棧公眾號