精华 Node开发这块目前比较理想的装配建议
发布于 4 年前 作者 okoala 6178 次浏览 最后一次编辑是 2 年前 来自 分享

####编辑器/IDE Sublime Text 3 或 WebStorm 目前只用sb3,因为它够快,够Cool,够顺手。以目前项目的复杂度,它足够用了。通过使用editorconfig以及它的插件来规范代码。HTML-CSS-JS Prettify, Bracker Highlighter, BufferScroll, DocBlocker, Emmet, Side Bar等插件都很好用。

####环境 Docker + Jenkins 快速搭建持续集成环境。docker则保证你的代码环境在开发,测试,线上保持高度的一致。windows和mac上需要使用boot2docker。

####调试 Node-dev + Node-inspector + Livereload 可以在保存代码的时候快速重启服务器或自动刷新页面。而node-insepctor可以让像调试前端代码一样调试Node.js。

####后端框架 Yog + Yogurt 这套系统是百度FEX团队的作品,非常好用。相当于Kraken-js + Fis的加强版。 虽然有些地方不够完美,但已经足够解决项目上线后的资源管理问题了。再加上集成了Bigpipe,足以应付之后某些模块的性能要求。要解决callback hell,选用Q或者bluebird这样的Promise方式。对于有多并发,顺序要结果的需求可以使用eventproxy,要限制并发就使用bagpipe。models操作这块选用orm。后台数据缓存,session缓存用redis。数据库用mysql或mongodb。多个业务间通过rpc交互。由于Node.js是单线程,一不小心整个进程也跟着挂了,所以需要pm2来守护进程,而且要启动多个Node进程,合理利用系统资源。 目前我们项目走的是大前端方向,也就Java + Node.js,所以我这边自己做了一个类似淘宝Midway的东西,方便接口的管理使用,mock数据,联调,安全性测试。Midway是个好东西,但是淘宝没开源。

####前端框架 Angular + Bootstrap Angular 是一个众所周知的MVVM架构。目前本人也是第一次尝试使用。但是用过后就是各种爽, 虽然坑也不少。 双向绑定让你脱离dom操作。把页面切分成一个个组件,每个组件都有自己的scope。组件间通过事件交互。 数据源和交互都比较类似的组件还可以通过继承的方式关联。 通用组件需要定义自己的directive,整个页面模板看起来非常简洁。 加上ng-resource和angular-cache很方便去管理API和数据缓存。 但是用了这货你就更需要关注内存的使用情况了。 对于要支持ie6、ie7的同学,可以使用正美的avalon。

####测试框架 Mocha + Should + Karma + Protractor 目前我这边单元测试、e2e测试的标配

####构建工具 Grunt或Gulp 可以根据自己的项目要求,构建出项目。这个可以参照 generator-angular-fullstack 构建出项目目录结构。 我现在在做的项目基本是以这样的结构。不管是开发和单元测试。不能再爽了~~

###总结: 虽然没怎么深入,连代码也没贴,但还是值得大家去尝试。以我自己的使用情况来看,即使很大的项目,也可以让代码很优雅,很好去维护。Node.js使得全栈工作更普遍,它可以帮助前端同学更好的掌握JavaScript,并且更关注底层的东西。但是用户直接面对的还是页面。所以对于前端来说,怎么使页面展示更快,更流畅,体验更好,更Cool,这是我们的根本。最后吐槽下,一个人搞起那么多东西,真的是痛苦并快乐着~~~

14 回复

后端框架这部分挺特别的,我上FEX他们官网都没找到呢,想问问楼主是如何选中这款的呢?

楼主写的不错

@pockry 首先你得先关注fis,然后你才有可能了解基于fis而给出的解决方案啊,http://oak.baidu.com/docs/yogurt。 至于为何选中这款而不是直接gulp构建,那是因为项目时间紧迫,没有人手,目前市面上也只有这套能方便得满足项目各方面的需求和发展。

fis 对于sass编译的场景比较无奈,不止sass,还有其他需要编译的场景都比较无力,每次都要release一次,速度慢,而且监听还会蹦,痛不欲生

@hexie 我也是用sass,没发现啥问题,就是错误信息提示不够智能,有时候看着不知道错在哪~~

mark,框架工具选择上和我的相差巨大 :D

后端用Python的tornado咋样?哈哈~

@hexie 直接用gulp不好么?

boot2docker不稳定,虚拟机坏过好几次了

借鉴啦,mark

我最近一直在用vs code 个人感觉还是蛮不错的,sb经常跳出购买提示,也是比较烦人

想问下docker + jenkins的持续继承是怎么做的?最近刚好有这种需求 然后前段为毛不是react,现在流行 Isomorphic app 哦

回到顶部