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
應用的測試和生產環境的部署
第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, yeomanWeb開發: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 |