Part 3:快速开发实践

1、业务边界优化

创业公司有很多可变性,要做的系统也无数,如何保证业务系统的边界是非常难的,我们其实走了很多弯路,图-稍后补

2、静态 api 理论

Part 3:快速开发实践 - 图1

Part 3:快速开发实践 - 图2

当需求和 UE 定下来之后,就开始编写静态 api,这样 app、h5、前端就可以使用静态 api 完成功能,而后端也可以以静态 api 为标准来实现,整体效率还是比较高的。

另外还有基于 api 生成 http 请求的思考(未完成)

Part 3:快速开发实践 - 图3

3、api 约定

Part 3:快速开发实践 - 图4

api 的最佳实践

我们采用的微博 API 类似的,约定结构也是类似的

res.api is an express middleware for render json api , it convention over api format like this :

  1. {
  2. data: {
  3. },
  4. status: {
  5. code : x,
  6. msg : 'some message'
  7. }
  8. }

详见客户端 API 开发总结

4、约定结构

Part 3:快速开发实践 - 图5

和 java 开发里的目录结构类似,该分层的分层,适当的按照 express/koa 增加中间件、路由等目录,便于开发

5、使用 npm 模块化

  • 使用 npmjs 的 private 私有模块(目前做法)
  • 使用 npm 的本地模块开发方法(测试和部署都非常快)
  • 搭建 npm 私服(todo)
  1. hz-api-cloud-admin
  2. hz-api-cloud-order
  3. hz-api-cloud-stock
  4. hz-api-private
  5. hz-api-private-admin
  6. hz-dao-cloud
  7. hz-dao-private
  8. hz-dao-usercenter
  9. hz-doc-api
  10. hz-frontend
  11. hz-mq
  12. hz-sms
  13. hz-usercenter
  14. xbm-sdk
  15. hz-api-admin
  16. hz-api-crm
  17. hz-api-order
  18. hz-api-statistics
  19. hz-api-stock
  20. hz-config
  21. hz-dao
  22. hz-doc

6、编写生成器

在 web 开发里,写了 moajs 生成器,类似于 rails

  1. 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 框架》