作为后台服务的核心就是能够安全、稳定地提供服务,避免出现服务异常导致无法提供服务的问题
差异点 |
说明 |
前端应用 |
后端服务应用 |
运行环境 |
Node.js运行在何处 |
运行本地 |
运行远程服务器 |
受众用户 |
启用的服务,受用用户 |
服务本地开发 |
服务真实用户 |
问题调试 |
定位问题对比 |
调试简单 |
复杂,需要日志埋点 |
关注点 |
着重解决的问题 |
提升研发效率或质量 |
保证安全与稳定 |
Node.js的应用
- 你主要用 Node.js 做了哪些事情,这些应用中,你觉得哪些场景真正发挥出了 Node.js 的特性?
运行环境
环境的差异导致
- 需要应用工具将服务发布到远程机器上,涉及**
devops
** 工具;
- 需要保证远程服务的安全与稳定,涉及一些进程管理工具,例如我们常见的
PM2
;
- 需要判断远程服务运行是否正常,涉及远程服务的监控和告警机制;
- 遇到运行问题时,需要通过远程日志来定位分析问题,涉及日志打印和跟踪染色。
受众群体
- 前端工程化一般都是服务于开发者,
- 比如我自己在本地应用 Webpack 打包或者将 ES6、ES7 转为 ES5 语法等,都是基于开发者工具,而这部分用户则是我们开发者自己。
- 而后端服务应用则服务于真实的用户群体,为用户提供各种交互体验方面的数据处理等。
两者的差异
- 工程化侧重于为开发者提升研发效率或者研发质量
- 后端服务应用则必须关注服务的稳定与安全。因为都是基于用户发送的内容,用户有时候发送一些非法或者违法的内容。
- 其次需要关注并发性能,因此必须充分考量服务器所能承载的最大用户并发数,在并发即将达到阈值时,
- 又需要考量平行扩容方案。
- 还有就是为了用户体验,需要充分做好服务的性能优化,做到极致的接口响应时间。