Node.js 可以用来做什么事?
Node.js 是一项服务器技术。我们都知道客户端提出服务请求,而服务器端负责处理请求并提供服务。而对于互联网来说,在 Node.js 之前 JavaScript 是一项完全的客户端技术,被用于浏览器中实现各种动画,对 DOM 的操作等等。而后端,即服务端则是由 PHP、Python、Ruby、Java 等等语言来实现。Node.js 的出现,使得前后端使用同一种语言,统一模型的梦想得以实现。
一直以来看到过很多人解释 node.js 是什么东东,看过非常多种解释,看了其他人解释半天还是云里雾里的,直到我听到这么一句话:“node.js 就是一个前端觉得写个功能还要等后端捣鼓半天,然后干脆就自己用 javascript 把后端搞定的一个东西。” 突然感觉简单粗暴,一针见血,哈哈哈哈 有没有这种感觉!
初识 TypeScript
从入职新公司开始算,使用 typescript 已经有半年多了,这是一个创业公司使用 nodejs 开发的后台业务管理系统,已经做的很大了,支撑着公司每月千万人民币的业务处理。很多怀疑 nodejs 是否可以开发后台管理的人的大可以放心使用,美中不足的是 nodejs 对报表这类数据处理量较大的功能有点力不从心,经常拖垮系统,所以后来使用 JAVA 代替了这部分功能。
使用感受
其实起初对于 typescript 开发 nodejs 我是拒绝的,原因是建立起这个项目的人都走了,而这个项目结构实在是复杂,在 windows 下环境搭建费了好大精力,尤其是为了使用一个 bcrypt 加密包,需要安装 Python,C++来编译,还不能使用 nodejs0.12 以上版本,最烦人的是每次修改文件后编译速度非常慢,这让我重新体验了开发 JAVA 时期的痛苦。而且服务启动方法也是前人自己编写 shell 脚本来同时编译前端文件和后端文件。并没有使用 nodemon,supervisor 这种监控工具。后来折腾发现可以直接使用 vscode 单独编译 ts 文件,一般 12 秒就编译完成,这与我之前的项目 1 秒修改重启相比还是慢了很多,不过也免强只能接受。所以基于这些不好的体验我很不喜欢 typescript,如此麻烦和 JAVA 开发有什么区别。
重新认识
有很多人说 Node.js 的语法太灵活,不易维护,缺少类型化,难以重构,但是这些问题早已被 Typescript 解决掉了。纯 nodejs 写起来确实不如 typescript 爽,主要是纯 nodejs 在 webstorm 和 vscode 上语法提示和错误提示较弱,而 typescript 则可以很好的提示并且在开发过程中就能发现一些很低级错误,不用等到运行时才发现。尤其是对 ES6 的支持比较完整,甚至可以使用 async,await 这些 ES7 提案中的特性。有一段时间也是很想练习一下,摸索了半天总算把 demo 项目跑起来了。
评论