3、快速开发实践

优质
小牛编辑
162浏览
2023-12-01

4.1. 1、业务边界优化

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

4.2. 2、静态api理论

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

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

4.3. 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'
  }
}

详见客户端 API 开发总结

4.4. 4、约定结构

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

4.5. 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

4.6. 6、编写生成器

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

moag order name:string password:string

其他开发,如iOS开发里模型校验非常烦,于是写了一个json2objc命令行工具,读取json,生成oc代码,可以节省不少时间

4.7. 7、Moajs框架和前后端分离

  • 前端:moa-frontend
    • public下面的采用nginx做反向代理
    • 其他的采用express+jade精简代码(ajax与后端交互)
  • 后端:moa-api

4.7.1. 1)moa生成器

即上面讲的生成器scaffold

4.7.2. 2)moa-frontend

技术栈

  • express
  • jade
  • bootstrap、bootstrap-table
  • jquery
  • gulp
  • nginx

4.7.3. 3)moa-api

技术栈

Features

  • 自动加载路由
  • 支持mongodb配置
  • 集成mongoosedao,快速写crud等dao接口
  • 自带用户管理
  • 使用jsonwebtoken做用户鉴权
  • 支持migrate测试
  • 支持mocha测试
  • 默认集成res.api,便于写接口
  • 集成supervisor,代码变动,自动重载
  • gulp自动监控文件变动,跑测试
  • gulp routes生成路由说明
  • 使用log4js记录日志

4.7.4. 4)总结

从开发效果上看,还是非常快的,非常稳定的

更多参见我写的《Moajs框架演进之路》

4.8. 其他

  • 《从0开始写Node.js框架》