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


      Node.js是比较简单的,只有你有前端js基础,那就按照我的办法来吧!一周足矣,虽然这版上了es语法,但依然是可以简单写,也可以难写,参见《全栈工程师之路-Node.js》,里面讲了Node.js和全栈相关的思考,整体对未来Node.js比较看好。

    核心变更:es语法支持

    相比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

    了解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

    根据Koa 2.x的3种中间件看,现在支持是promise第一,其次是co包装的generator,最后是async函数。等async支持了以后,就是await + Promise的天下

    • 了解的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,了解gdb、adb之类的人不推荐用)
    • node-inspector(推荐4※)
    • tdd/bdd(推荐5※)

    作为基础技能掌握就好,实际开发推荐vscode

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

    文章来源:https://cnodejs.org/topic/56fdf66ec5f5b4a959e91771

  • 相关阅读:
    20155317 2016-2017-2 《Java程序设计》第十学习总结
    20155317 王新玮 2016-2017-2 《Java程序设计》第9周学习总结
    20155317 2016-2017-2 《Java程序设计》第8周学习总结
    20155317 2016-2017-2 《Java程序设计》第7周学习总结
    20155317 王新玮 2016-2017-2 《Java程序设计》第6周学习总结
    20155317 王新玮 2016-2017-2 《Java程序设计》第5周学习总结
    20155317 王新玮 2006-2007-2 《Java程序设计》第4周学习总结
    20155317王新玮 2006-2007-2 《Java程序设计》第3学习总结
    20155313 2016-2017-2 《Java程序设计》第九周学习总结
    20155313 2016-2017-2 《Java程序设计》第八周学习总结
  • 原文地址:https://www.cnblogs.com/flyingeagle/p/9164904.html
Copyright © 2020-2023  润新知