Part 3:快速开发实践
1、业务边界优化
创业公司有很多可变性,要做的系统也无数,如何保证业务系统的边界是非常难的,我们其实走了很多弯路,图-稍后补
2、静态 api 理论
当需求和 UE 定下来之后,就开始编写静态 api,这样 app、h5、前端就可以使用静态 api 完成功能,而后端也可以以静态 api 为标准来实现,整体效率还是比较高的。
另外还有基于 api 生成 http 请求的思考(未完成)
3、api 约定
api 的最佳实践
- http://developer.github.com/v3/ (严格的 restful)
- 微博 API (可读性强,相对比较传统)
我们采用的微博 API 类似的,约定结构也是类似的
res.api is an express middleware for render json api , it convention over api format like this :
{
data: {
},
status: {
code : x,
msg : 'some message'
}
}
4、约定结构
和 java 开发里的目录结构类似,该分层的分层,适当的按照 express/koa 增加中间件、路由等目录,便于开发
5、使用 npm 模块化
- 使用 npmjs 的 private 私有模块(目前做法)
- 使用 npm 的本地模块开发方法(测试和部署都非常快)
- 搭建 npm 私服(todo)
hz-api-cloud-admin
hz-api-cloud-order
hz-api-cloud-stock
hz-api-private
hz-api-private-admin
hz-dao-cloud
hz-dao-private
hz-dao-usercenter
hz-doc-api
hz-frontend
hz-mq
hz-sms
hz-usercenter
xbm-sdk
hz-api-admin
hz-api-crm
hz-api-order
hz-api-statistics
hz-api-stock
hz-config
hz-dao
hz-doc
6、编写生成器
在 web 开发里,写了 moajs 生成器,类似于 rails
moag order name:string password:string
其他开发,如 iOS 开发里模型校验非常烦,于是写了一个 json2objc 命令行工具,读取 json,生成 OC 代码,可以节省不少时间
7、Moajs框架和前后端分离
- 前端:moa-frontend
- public 下面的采用 Nginx 做反向代理
- 其他的采用 Express + jade 精简代码(ajax 与后端交互)
- 后端:moa-api
1)moa 生成器
即上面讲的生成器 scaffold
2)moa-frontend
技术栈
- express
- jade
- bootstrap、bootstrap-table
- jquery
- gulp
- nginx
3)moa-api
技术栈
Features
- 自动加载路由
- 支持 mongodb 配置
- 集成 mongoosedao,快速写 crud 等 dao 接口
- 自带用户管理
- 使用 jsonwebtoken 做用户鉴权
- 支持 migrate 测试
- 支持 mocha 测试
- 默认集成 res.api,便于写接口
- 集成 supervisor,代码变动,自动重载
- gulp 自动监控文件变动,跑测试
- gulp routes 生成路由说明
- 使用 log4js 记录日志
4)总结
从开发效果上看,还是非常快的,非常稳定的
更多参见我写的《Moajs框架演进之路》
其他
- 《从0开始写 Node.js 框架》