Node开发这块目前比较理想的装配建议
2015-06-12 15:14
513 查看
4000
####编辑器/IDESublime 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 + BootstrapAngular 是一个众所周知的MVVM架构。目前本人也是第一次尝试使用。但是用过后就是各种爽, 虽然坑也不少。双向绑定让你脱离dom操作。把页面切分成一个个组件,每个组件都有自己的scope。组件间通过事件交互。数据源和交互都比较类似的组件还可以通过继承的方式关联。通用组件需要定义自己的directive,整个页面模板看起来非常简洁。加上ng-resource和angular-cache很方便去管理API和数据缓存。但是用了这货你就更需要关注内存的使用情况了。对于要支持ie6、ie7的同学,可以使用正美的avalon。
####测试框架Mocha + Should + Karma + Protractor目前我这边单元测试、e2e测试的标配
####构建工具Grunt或Gulp可以根据自己的项目要求,构建出项目。这个可以参照 generator-angular-fullstack 构建出项目目录结构。我现在在做的项目基本是以这样的结构。不管是开发和单元测试。不能再爽了~~
####编辑器/IDESublime 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 + BootstrapAngular 是一个众所周知的MVVM架构。目前本人也是第一次尝试使用。但是用过后就是各种爽, 虽然坑也不少。双向绑定让你脱离dom操作。把页面切分成一个个组件,每个组件都有自己的scope。组件间通过事件交互。数据源和交互都比较类似的组件还可以通过继承的方式关联。通用组件需要定义自己的directive,整个页面模板看起来非常简洁。加上ng-resource和angular-cache很方便去管理API和数据缓存。但是用了这货你就更需要关注内存的使用情况了。对于要支持ie6、ie7的同学,可以使用正美的avalon。
####测试框架Mocha + Should + Karma + Protractor目前我这边单元测试、e2e测试的标配
####构建工具Grunt或Gulp可以根据自己的项目要求,构建出项目。这个可以参照 generator-angular-fullstack 构建出项目目录结构。我现在在做的项目基本是以这样的结构。不管是开发和单元测试。不能再爽了~~
相关文章推荐
- 使用node.js express 4.x 模块 搭建angular.js开发环境
- #leetcode#Populating Next Right Pointers in Each Node
- node-webkit实践-一键安装
- Windows下nodejs的安装与简单事例
- 编译contrail-nodemgr
- nodejs 文件与文件操作(读写文件 删除 重命名)
- 收集了NodeJS开发中常用的一些模块。
- Nodejs异步回调的优雅处理方法
- 通过Anuglar Material串串学客户端开发 - NodeJS模块机制之Module.Exports
- [6]_先从前端说起 - Nodejs学习之基础(1)
- 模拟namenode崩溃,使用secondarynamenode恢复
- leetcode 019 Remove Nth Node From End of List (Python)
- HDFS-datanode数据块部分笔记
- remove-nth-node-from-end-of-list
- NodeJS简单的网页跳转路由demo
- Node.js学习笔记-入门
- nodejs笔记
- NodeSchool——stream-adventure
- 学习老外用webstorm开发nodejs的技巧--代码提示DefinitelyTyped
- 【LeetCode】25.Reverse Nodes in k-Group