2016該如何學習nodejs?

題主是個前端小白啊,趁最近工作不忙。想把nodejs學了。看網上的中文教程都很老了,也可能是我沒找到。聽說nodejs可以用es6了,但是這類的介紹文章少之又少。希望大牛能給個指點,給個方向。另外JavaScript基礎就刷過高程和權威指南。


資料的話,還是原版doc賽高,也絕對不會過時。技術人員不能害怕英語,而且講道理的話看看文檔也並不需要多高的英文水平。

除了看文檔,造輪子也是有效的學習方法。

首先要明確,學習nodejs最重要的不是僅僅學些框架和工具,而是學習nodejs本身,學習它和os交互的api、學習它的開發理念。學這些東西的重要途徑就是造輪子,然後想造輪子當然也得看文檔不然啥都寫不出來。

那麼造些什麼輪子好呢?

對於新手可以先從模仿開始,用著框架、工具什麼的然後自己寫出一樣的或者簡化版出來。

不要對那些框架望而生畏,比如現在nodejs開發的半壁江山express,其實就是封裝了一下常用的http api,然後提供了一個中間件風格的腳手架讓人可以很方便的寫插件。

對於新手,不能強求一開始就寫出個express,但是完全可以首先以「能用」為目標封裝一下原生api,然後自己用自己封裝的東西寫出個類似個人博客的東西。在自己寫自己用的過程中(這個過程學名叫「狗食」)發現自己寫的東西的不足從而改進。比如我的個人博客(https://hcyue.me/)就是自己寫的web框架(https://github.com/nameoverflow/eliter)

這個過程中,你不僅可以學到node的api,還可以熟悉http協議,了解session、緩存之類的知識,了解常見設計模式,走向人生巔峰…


多實踐,造些輪子:

1、實現自己的命令行小工具,比如維護一些靜態工程模板、自動構建自動同步項目什麼的;

2、寫自己的Web Server,服務端模板什麼的;

3、寫些爬蟲,抓到的數據往MongoDB或者MySQL裡面塞;

4、寫一個容器程序,託管你的眾多服務,有時候一個服務的全面性不如多個服務可分離,解決一些業務不能老是重啟的問題,解決你懶得做新服務的惰性;

5、用如nw.js等GUI技術寫一個項目資源管理器,集成你的命令行工具;

再補充一個,做一個微信公眾號網站開發,時下很實用的技術;


官網的doc是我最常逛的,現在也是。

es6的文檔還是去moz上看。

es6大概的文檔可以看 @阮一峰 的。

最最最重要的錦囊級的點:到github上看nodejs的代碼,不難看,可讀性很高,當你疑惑一些實現的時候,上面肯定可以回答你。而且可以學到一些很強大的nodejs技巧。


絕對的良心課程:node | 天碼營

這個課程基於NodeJS和Express框架,通過實例的項目案例,你可以學到開發一個成熟Web應用所需的所有關鍵知識和經驗:

  • 開發環境的建立與項目管理:Git, npm, Grunt
  • JavaScript編程基礎:基本語法、面向對象特性
  • 前端開發技術:HTML、CSS、Bootstrap和JavaScript基礎
  • Express框架:URL路由、模板、表單、Session、攔截器等
  • 數據訪問:MongoDB

  • 應用的測試和生產環境的部署

包含以下內容:

第1課 HTTP 協議

第2課 HTML

第3課 CSS

第4課 Bootstrap

第5課 Javascript

第6課 客戶端腳本

第7課 Node.js依賴管理: npm

第8課 Express.js

第9課 表單的提交

第10課 表單的驗證

第11課 資料庫

第12課 Session

第13課 郵件服務

第14課 郵箱身份綁定

第15課 深入web表單

第16課 使用前端工具

第17課 Handlebars

第18課 模板片段

第19課 模型關聯

第20課 配置管理

第21課 Grunt 入門

第22課 自動構建

第23課 還能做什麼?


官網

https://nodejs.org/en/docs/es6/


http://nodeschool.io/zh-cn/


為什麼沒人提node school呢 NodeSchool

感覺對初學者真對蠻不錯的。

順便做下軟廣,我的node school解決方案

GitHub - xiaoppp/nodeschool: my node school solutions

完全符合airbnb的es6標準

GitHub - airbnb/javascript: JavaScript Style Guide


推薦一本書,深入淺出nodejs 。

對一個新手來說,有一本書系統的帶你了解nodejs 能起到事半功倍的效果。

書中的內容也許網上都能找得到,但是不看書的話,你不知道去哪裡找,甚至不知道在google 上搜什麼字才能找到自己想要的答案


針對Node.js的應用場景來學:

項目管理:npm,grunt, bower, yeoman

Web開發:express,ejs,hexo, socket.io, restify, cleaver, stylus, browserify,cheerio

工具包: underscore,moment,connet,later,log4js,passport,passport(oAuth),domain,require,reap,commander,retry

資料庫:mysql,mongoose,reids

非同步:async,wind

部署:forever,pm2

測試:jasmine,karma

跨平台:rio,tty

內核:cluster,http,request

演算法:ape-algorithm(快速排序),ape-algorithm(桶排序


深入淺出nodejs+APUE


了解某個領域的最佳實踐,相信這些實踐能引發你的很多學習,如果你是個主動學習型的人:https://zhuanlan.zhihu.com/p/25506654


很簡單

http://github.com

多上上,多看看

自然就會了

這裡強烈安利一下這個項目

GitHub - bodyno/react-starter-kit: 完美使用 React, Redux, and React-Router!

用了之後 你就會發現 你什麼都懂了


IO模型,進程/線程模型,軟體架構模型


帶著問題學,帶著任務學。


不要盲目的學,要帶著目標或者問題去學。node我覺得主要看一下模塊部分就可以了,載入模塊和導出模塊。另外與之相關的npm模塊化管理學一些就夠用咯


babeljs。上cnodejs論壇


可以等等《深入淺出nodejs》第二版


推薦閱讀:

請問學習前端最有效的辦法是什麼?
前端工程師都有用哪些比較靠譜的小工具?
為什麼 TypeScript 成功了,更先進的 ActionScript 卻失敗了?
為什麼inferno.js這麼快?
bootstrap過時了嗎?

TAG:前端開發 | JavaScript | Nodejs |