Node.js最新Web技術棧(2016年4月)

Node.js最新Web技術棧(2016年4月)前端

上一次的發佈的是精華 Node.js最新Web技術棧(2015年5月),感謝你們喜好,值此koa2.0發佈後,決定再次升級技術棧node

Node.js是比較簡單的,只有你有前端js基礎,那就按照個人辦法來吧!一週足矣,雖然這版上了es語法,但依然是能夠簡單寫,也能夠難寫,參見《全棧工程師之路-Node.js》,裏面講了Node.js和全棧相關的思考,總體對將來Node.js比較看好git

Screen-Shot-2016-04-01-at-1.52.56-PM.jpg

核心變動:es語法支持

相比es語法,其實我本人更喜歡typescript的,不過寫Node.js仍是推薦跟Node SDK玩纔是。程序員

推薦技術棧

  • koa 1.0 && 2.0 (koa2.0剛發佈不久,喜歡折騰的能夠考慮)
  • mongoose(mongodb)
  • bluebird(Promise/A+實現)
  • jade(視圖層模板)
  • ava(測試)
  • vscode(調試)

推薦生成器(稍後會把ava和bluebird加上)angularjs

https://github.com/17koa/koa-generatores6

目前國內第一本koa的書(我寫的)已經和出版社簽定了合同,預計幾個月會與你們見面,github

途徑ajax

瞭解http協議,尤爲是表單和ajax傳值,在req裏如何接收

  • 絕對地址和相對地址
  • querystring
  • url 和 uri
  • http status code
  • http verbs
  • req取參數的3種方法
  • 3種不一樣類型的post
  • 命令行玩法
  • supertest用法
  • what is rest?

http://i5ting.github.io/node-http/mongodb

瞭解db相關操做,先以mongoose爲主

這部分基本無調整,只是注意es寫法就行了typescript

  • crud(增刪改查)
  • 瞭解分頁
  • 瞭解關係(1對1,1對多)在mongoose裏如何實現
  • 瞭解statics方法和methods的區別
  • 瞭解pre和post的差異
  • 瞭解mongoose的插件機制
  • 瞭解mvc裏m的做用,以及什麼樣的代碼該放到模型裏
  • 瞭解索引優化
  • 瞭解mongodb的部署

瞭解Generator、Async和Promise/A+規範,合理規避回調陷阱

此次的變動主要是es6支持的generator和es7支持的async

總體來講generator和async並不具有流程控制功能,因此仍是須要promise支持的,之前對generator支持的promise的只有co,而基於async的基本沒有,因此這裏依然推薦使用bluebird,它對這些支持都很是好

  • 瞭解的node的異步、generator和async
  • 瞭解異步的噁心
  • 瞭解異步基本場景,好比waterfall這樣的路程使用async如何處理
  • 瞭解q和bluebird用法(若是有angularjs經驗,推薦q,其餘只推薦bluebird)
  • 瞭解bluebird的promisifyAll用法
  • 瞭解如何重構流程,以及代碼的可讀性

使用tdd/bdd測試,最小化問題

此次的變動主要是下一代技術棧以es開發爲主,這樣的話,測試用mocha,tap、tape等就沒有ava帥了

推薦ava替代mocha,其餘基本都同樣

Why AVA?

  • Minimal and fast
  • Simple test syntax
  • Runs tests concurrently
  • Enforces writing atomic tests
  • No implicit globals
  • Isolated environment for each test file
  • Write your tests in ES2015
  • Promise support
  • Generator function support
  • Async function support
  • Observable support
  • Enhanced assertion messages
  • Optional TAP output
  • Clean stack traces

測試的好處,這裏就不說了,可是有一點是要說的,node的調試比較難,每每不如寫測試來的快,推薦學習一下

  • 理解最小問題思想,培養程序員該有的強大的心裏
  • ava的基本用法
  • 理解斷言的用法(注內置斷言,不須要assert/should/expect等)
  • 理解測試生命週期
  • 理解箭頭函數、generator、promise等用法
  • 理解如何模擬數據
  • 理解http下的supertest測試
  • 理解測試覆蓋率
  • 理解基於gulp自動化測試方法

若是有興趣,能夠去了解更多bdd/tdd內容,甚至是cucumber.js

你不管如何都要會的:調試

調試有3種方法

  • node debug(太挫了,若是不是c,瞭解adb之類的人不推薦用)
  • node-inspector(推薦4※)
  • tdd/bdd(推薦5※)

做爲基礎技能掌握就好,實際開發推薦vscode

教程見 https://github.com/i5ting/vsc

歡迎關注個人公衆號【node全棧】

node全棧.png

相關文章
相關標籤/搜索