• 表象之学(语言、 API 、生态、机制)
• 异步之旅
• 深入学习
node3大块
-
js语言: emcaScript标准
-
写es6, 但最终babel转es5,往下兼容
-
es6特性,支持async/await,但也有坑,let有可能比var慢,所以node源码将const替var,比较少let,不过新版v8开了TurboFan,let的效率也不一定低。
-
emcaScript标准, 大且庞杂,学会如何查看即可,得学牢原型和原型链
-
-
node API
- 用v8作为运行时,libuv作为事件循环,上层再来胶水层API, 就是node
- 入门就去官网看API,30几个API,不用背,懂用就行,版本变太快
-
生态圈,即第三方库
- 库参差不齐,懂检索+看文档,懂过滤,得有前置原理知识,有能力自己造
- google 和 npm 检索
-
模块机制
- 借鉴commandJS的模块和包机制
异步之旅
- 异步根本:cb, 且得解决回调地狱
- cb虽然慢,但一堆框架的引用更慢,async/await其实很慢,所以能用cb就用
- promise对开发者更容易, 且配合菊花函数(取自生成器函数 的 * ),且koa大部分使用yield,又回归es标准
- eggJS用async/await
深入学习
- 深入开发企业级应用
- 忘记语言,语言只是工具,所以说php是最好的语言
- 还是得懂原理 后端前置知识:数据库的设计还是基础 , SQL索引,数据量一定程度时分表,分库,读写分离(DBA)
- 用ORM即可,懂原理设计, 用noSQL还是得懂SQL
- 后端的抽象思维,抽象比较玄乎,不局限安全、网络编程、数据结构算法、数据库、服务化
- 在做接口方案,先考虑安全,再性能,服务器压力
- 前端抽象MVVM, 后端MVC
- 算法,数据结构,设计模式,死月的文章《我为什么使用哈希》: 哈希妙用,1.减冗余,2.提高检索,3.封装保护自身的值…
路线
- FE 学node: emcaScript标准一样
- 后端学node: 后端开发的一套体系,API出入不大
- 语言只是工具,换哪门都一样,熟哪门用哪门,关键原理和设计,考虑开发成本,开发效率。除非性能遇到瓶颈,但除了淘宝这些重量级才考虑
- 后端思想太杂,可以贯穿整个生涯
- 看源码,从入口,看主干,别深入分支。或从胶水层一层层深入
总结
- 舒适路线:es是根基,适当深入=》再开始看node api文档,开始开发,并了解生态圈=》cb是js精髓所在
- 入门后,视线离开语言, 开始关注后端开发体系, 适合node的特色理论后端开发体系
- 数据库设计,DBA的重要性