欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

吐槽一下我所了解的Node.js

 更新時間:2014年10月08日 09:29:36   投稿:hebedich  
用了一年多 Node.js, 現在已經是 Node.js 的腦殘粉了,這篇日志比較雜,算是我對 Node.js 方方面面的一個集中吐槽。

首先是性能,用起來感覺 Node.js 的性能并沒有想象中那么好。內存占用差不多和 Ruby 一個等級,比 Python, PHP 要多。計算性能(即 CPU 使用)上,純計算并沒有太大優(yōu)勢,但因為可以很好地控制異步流程,所以總體表現上來看性能要比 PHP 好很多。個人覺得 Node.js 在性能方面是有很大的潛力的,因為有很多大的項目在致力于提高 JavaScript 虛擬機的性能——比如各大瀏覽器;同時 JavaScript 是一個語法簡單的語言,也是一個開放標準,不像 Python 和 PHP 一樣因為顧及兼容性,很難進行大的重構來改善性能。

然后是包管理器和庫,Node.js 內置了 npm, 因為 npm 是個非常好用的包管理器,因為 JavaScript 的編寫門檻低,因為 JavaScript 本來就有很多優(yōu)秀的前端庫被移植到了后端,所以 NPM 上的包現在已經多于 PyPI 和 RubyGems 了,然后遠超 PEAR 和 Composer. Node.js 的開發(fā)中不同于 PHP 的一點就是大家都不怕加依賴,每個小需求都去 NPM 上找已有的庫來實現——而且往往都能找到。所以 Node.js 的開發(fā)基本上就是在組合依賴,然后傾向于把一個即使很小的獨立需求寫成一個庫,這倒是和 UNIX 的思路比較像。再另一方面,Node.js 社區(qū)對開源十分友好,這里的友好是指大多數的庫都是在 Github 上開放開發(fā)的,而且使用的是非常寬松的協議,例如 MIT, 不像 GPL 那么具有「攻擊性」。

社區(qū),Node.js 的應用大部分還是 Web 后端,而 Web 后端相關的庫基本都是那么幾個大牛搞起來的,例如 express, jshttp, jade, mocha 和 koa 就是以 TJ 大神為首的四五個人開發(fā)起來的,這倒是個有趣的現象。——雖然 TJ 大神最后決定淡出 Node.js 社區(qū)。

工具鏈,Node.js 比較年輕,很多好用的工具都是近兩年剛剛出現的,例如預編譯方言, 單元測試和模擬測試,構建工具等;不敢說有多好,但是要比 PHP 好非常多。至于原因,首先很大程度是因為這些庫都是既可用于前端又可用于后端的,因為 Web 前端的硬需求,讓 Node.js 順便得益;然后就是因為 JavaScript 靈活而簡單的語法,讓這些工具可以以一些非常巧妙而優(yōu)雅的方式來實現。至于 IDE, 依然得益于 Web 前端,還是有一些 IDE 可用的——雖然 JavaScript 語言本身不是很利于靜態(tài)分析。

語法,我還要再強調一下 JavaScript 的語法簡單而靈活,其中重要的一點是 JSON, JSON 幾乎是目前 Web 領域最通用的數據格式,而在 JavaScript 對 JSON 具有原生的支持!JavaScript 中所有的數據結構都是圍繞著 JSON 的一個超集——Object 展開的,包括數組,函數,對象和類。當然這樣也帶來一個麻煩,就是因為寫起來限制少,導致不知道該怎么寫,剛開始學習的時候總免不了反復重構,才能摸清各種設計模式在不同情況下的優(yōu)劣,找到適合自己和適合具體項目的寫法,所以可以說 Node.js 入門簡單,但要構建大型項目,還是比較考驗開發(fā)者的功力的。因為歷史遺留問題,JavaScript 的語法算不上優(yōu)美,不過還好我們有各種預編譯方言,比如 Coffee Script, TypeScript, Dart, LiveScript 以及 ClojureScript, 總有一款適合你。

使用場景,JavaScript 是一個通用的編程語言,Web 前后端自然不必說,來看看其他方面。個人以為 Node.js 還是很適合用來編寫服務器工具的,或稱運維工具,因為運維中很多情況是可以異步工作的,JavaScript 又有比較不錯的正則支持,替代 bash 和 Python 也問題不大;Node.js 只需裝好解釋器,就可以隨便用,不用畏手畏腳地避免引入依賴。而桌面和移動設備編程,Node.js 有 node-webkit 以及其他各種外殼,雖然目前使用體驗不是很好,但是可以非常顯著地降低開發(fā)成本,輕松跨平臺,想必前途也是光明的。

最后說學習 Node.js, 在我看來,學習 Node.js 分兩點,一是要理清 Node.js 的「基于事件回調的異步 IO」,這是 Node.js 與其他主流編程語言最不同的一點。然后第二步就是把 NPM 上 Top 100 的庫都看一下,不用細看,只要混個臉熟,知道每個庫是干嘛的就行了。完成這兩步,那么恭喜你,已經是一個 Node.js 開發(fā)者了。

相關文章

  • nodejs中實現sleep功能實例

    nodejs中實現sleep功能實例

    這篇文章主要介紹了nodejs中實現sleep功能實例,本文講解了sleep功能的開發(fā)過程和使用效果及性能測試,需要的朋友可以參考下
    2015-03-03
  • 通過node-mysql搭建Windows+Node.js+MySQL環(huán)境的教程

    通過node-mysql搭建Windows+Node.js+MySQL環(huán)境的教程

    這篇文章主要介紹了通過node-mysql搭建Windows+Node.js+MySQL環(huán)境的教程,node-mysql是JavaScript編寫的一個Node的MySQL驅動,需要的朋友可以參考下
    2016-03-03
  • 詳解前端任務構建利器Gulp.js使用指南

    詳解前端任務構建利器Gulp.js使用指南

    這篇文章主要介紹了前端任務構建利器Gulp.js使用指南,對Gulp.js感興趣的同學,可以參考下
    2021-04-04
  • Node常見的三種安全防范手段詳解

    Node常見的三種安全防范手段詳解

    這篇文章主要為大家介紹了Node常見的三種安全防范手段詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 三分鐘教會你用nodejs操作mysql數據庫

    三分鐘教會你用nodejs操作mysql數據庫

    MySQL數據庫作為最流行的開源數據庫,基本上是每個web開發(fā)者必須要掌握的數據庫程序之一了,基本使用?node.js上,最受歡迎的mysql包就是mysql模塊,下面這篇文章主要給大家介紹了關于如何通過三分鐘教會你用nodejs操作mysql數據庫,需要的朋友可以參考下
    2023-05-05
  • 解決node修改后需頻繁手動重啟的問題

    解決node修改后需頻繁手動重啟的問題

    今天小編就為大家分享一篇解決node修改后需頻繁手動重啟的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • ndm:NPM的桌面GUI應用程序

    ndm:NPM的桌面GUI應用程序

    今天小編就為大家分享一篇關于ndm:NPM的桌面GUI應用程序,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Nodejs實現的操作MongoDB數據庫功能完整示例

    Nodejs實現的操作MongoDB數據庫功能完整示例

    這篇文章主要介紹了Nodejs實現的操作MongoDB數據庫功能,結合完整實例形式分析了nodejs針對MongoDB數據庫的連接及增刪改查基本操作技巧,需要的朋友可以參考下
    2019-02-02
  • Node中對非阻塞I/O、事件循環(huán)的知識點總結

    Node中對非阻塞I/O、事件循環(huán)的知識點總結

    在本篇文章里小編給大家整理的是一篇關于Node中對非阻塞I/O、事件循環(huán)的知識點分享內容,需要的朋友們可以參考下。
    2020-01-01
  • nodejs進階(6)—連接MySQL數據庫示例

    nodejs進階(6)—連接MySQL數據庫示例

    本篇文章主要介紹了nodejs進階(6)—連接MySQL數據庫示例,詳細的介紹了NodeJS操作MySQL數據庫,作為應用最為廣泛的開源數據庫則成為我們的首選,有興趣的可以了解一下。
    2017-01-01

最新評論