Node.js 开发技能图谱
# Node.js 開發(fā)技能圖譜
## Node.js 語言環(huán)境搭建
- Node.js 安裝(3m大法:nvm、npm、nrm)
- Node.js 命令
- Node.js開發(fā)工具(推薦vscode)
## Node.js 語言編程要點(diǎn)
- 使用Node.js 4.x或5.x里的ES 6特性,如果想玩更高級(jí)的,可以使用[babel](babeljs.com)編譯支持ES 7特性
- 合理使用[standard](https://github.com/feross/standard) 代碼風(fēng)格約定
- ES 6語法
- 需要大家重視OO(面向?qū)ο?#xff09;寫法的學(xué)習(xí)和使用
## 核心模塊
- Buffer
- Child Processes
- Cluster
- Crypto
- DNS
- Domain
- Events
- File System
- HTTP
- HTTPS
- Net (TCP)
- OS
- Path
- Process
- Punycode
- Query Strings
- Readline
- Stream
- String Decoder
- TLS/SSL
- TTY
- UDP
- URL
- VM
- ZLIB
## Koa Web 編程
- koa 1.0 && 2.0 (koa2.0剛發(fā)布不久,喜歡折騰的可以考慮)
- mongoose(mongodb)
- bluebird(Promise/A+實(shí)現(xiàn)、Generator、Async)
- jade(視圖層模板)
- ava(測試)
- vscode(調(diào)試)
### 了解http協(xié)議,尤其是表單和ajax傳值,在req里如何接收
- 絕對(duì)地址和相對(duì)地址
- querystring
- url 和 uri
- http status code
- http verbs
- req取參數(shù)的3種方法
- 3種不同類型的post
- 命令行玩法
- supertest用法
- what is rest?
### 了解db相關(guān)操作,先以mongoose為主
- crud(增刪改查)
- 了解分頁
- 了解關(guān)系(1對(duì)1,1對(duì)多)在mongoose里如何實(shí)現(xiàn)
- 了解statics方法和methods的區(qū)別
- 了解pre和post的差別
- 了解mongoose的插件機(jī)制
- 了解mvc里m的作用,以及什么樣的代碼該放到模型里
- 了解索引優(yōu)化
- 了解mongodb的部署
### 了解Generator、Async和Promise/A+規(guī)范,合理規(guī)避回調(diào)陷阱
- 了解的node的異步、generator和async(ES7)
- 了解異步的惡心
- 了解異步基本場景,比如waterfall這樣的路程使用async如何處理
- 了解q和bluebird用法(如果有angularjs經(jīng)驗(yàn),推薦q,其他只推薦bluebird)
- 了解bluebird的promisifyAll用法
- 了解如何重構(gòu)流程,以及代碼的可讀性
### 使用tdd/bdd測試,最小化問題
- 理解最小問題思想,培養(yǎng)程序員該有的強(qiáng)大的內(nèi)心
- ava的基本用法
- 理解斷言的用法(注內(nèi)置斷言,不需要assert/should/expect等)
- 理解測試生命周期
- 理解箭頭函數(shù)、generator、promise等用法
- 理解如何模擬數(shù)據(jù)
- 理解http下的supertest測試
- 理解測試覆蓋率
- 理解基于gulp自動(dòng)化測試方法
### 你無論如何都要會(huì)的:調(diào)試
- node debug(太挫了,如果不是c,了解gdb、adb之類的人不推薦用)
- node-inspector(推薦4※)
- tdd/bdd(推薦5※)
- vscode編輯器(推薦5※)
## Node.js 應(yīng)用
- 網(wǎng)站(如express/koa等)
- im即使聊天(socket.io)
- api(移動(dòng)端,pc,h5)
- http proxy(淘寶首頁)
- 前端構(gòu)建工具(grunt/gulp/bower/webpack/fis3...)
- 寫操作系統(tǒng)(NodeOS)
- 跨平臺(tái)打包工具(nw.js、electron)
- 命令行工具(比如cordova)
- 編輯器(vscode)
## Node.js 實(shí)戰(zhàn)案例
總結(jié)
以上是生活随笔為你收集整理的Node.js 开发技能图谱的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用CountDownLatch模拟高并
- 下一篇: NBA之建造者模式