设为首页 - 加入收藏 焦点技术网
热搜:java
当前位置:首页 >

Node.js最新Web技术栈(2016年4月)

2016-04-01 14:08:33.0 java  
导读:上一次的发布的是《Node.js最新Web技术栈(2015年5月)》,感谢大家喜爱,值此koa2.0发布后,决定再次升级技术栈。。。
Node.js最新Web技术栈(2016年4月) 上一次的发布的是[精华 Node.js最新Web技术栈(2015年5月)](https://cnodejs.org/topic/55651bf07d4c64752effb4b1),感谢大家喜爱,值此koa2.0发布后,决定再次升级技术栈 Node.js是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣,虽然这版上了es语法,但依然是可以简单写,也可以难写,参见[《全栈工程师之路-Node.js》](https://github.com/i5ting/nodejs-fullstack),里面讲了Node.js和全栈相关的思考,整体对未来Node.js比较看好 ## 核心变更:es语法支持 - 使用Node.js 4.x或5.x里的es6特性,如果想玩更高级的,可以使用[babel](babeljs.com)编译支持es7特性 - 合理使用[standard](https://github.com/feross/standard) 代码风格约定 - es6语法,写的一般,比较啰嗦,凑合看吧 http://es6.ruanyifeng.com/ - 需要大家重视OO(面向对象)写法的学习和使用,这是es的另一个好处,推荐蔡伟小兄弟的[《JavaScript Patterns》 examples in ECMAScript6](https://github.com/DavidCai1993/JsPatterns-ES6) 相比es语法,其实我本人更喜欢typescript的,不过写Node.js还是推荐跟Node SDK玩才是。 ## 推荐技术栈 - koa 1.0 && 2.0 (koa2.0刚发布不久,喜欢折腾的可以考虑) - mongoose(mongodb) - bluebird(Promise/A+实现) - jade(视图层模板) - ava(测试) - vscode(调试) 推荐生成器(稍后会把ava和bluebird加上) https://github.com/17koa/koa-generator 目前国内第一本koa的书(我写的)已经和出版社签订了合同,预计几个月会与大家见面, 途径 - [Node全栈]公众号连载 - [《一起学koa》开源书籍持续维护](https://cnodejs.org/topic/5668e0a55af0e6ab3bf1a1d8),欢迎大家参与 - 代码问答(稍后) - 和[StuQ](http://www.stuq.org/)合作的Node.js Koa在线课程[stuq-koa](https://github.com/i5ting/stuq-koa),四月份开始报名 ## 了解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/ ## 了解db相关操作,先以mongoose为主 **这部分基本无调整,只是注意es写法就好了** - 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](https://github.com/sindresorhus/ava)替代mocha,其他基本都一样 [Why AVA?](https://github.com/sindresorhus/ava#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

(编辑: i5ting)

网友评论