必须遵循的规范
- 工作(项目代码、工具脚本。。。)的可读性、可维护性,必须放在第一位
- 前后分工要明确,该前/后台改的,要坚持
- 优化接口调用,不要重复调用、多余调用、接口不要返回多余的数据
- 不能简单的 copy-modify,必须提取公共部分
- 管理文档发布后会在群里通知,通知后2个工作日内看完,有问及时沟通,切记不懂装懂
- 所有的规范,特殊情况下可以不遵守,但必须及时上报(包括在禅道记录任务、代码中添加 TODO 等)
- 文档必须使用 docs
- 有完整的修改历史
- 可以作为考核的依据
非强制,但很重要的
- 注意细节
- 做事前多讨论,很多时候系统已经有相应的模块,避免做无用功,也避免无意间的功能衰退
- 平时要做好线上排查的基础工作(日志、埋点、各种统计、崩溃收集)
- 基础技术工作主动提
- 所做的工作要便于管理、审查、差异比较
- 注意保存历史
- 多做技术总结,分享
- 鼓励尝试新技术,但慎重引入项目中。引入前必须要上报,并且要有充分的理由
发包命名规范
client/staff - dev/test/release - version - [build-number]
eg:
client_dev_1.1.0.apk
staff_test_1.0.1-2.apk
开发规范合集
- 自己有的就不要用第三方,除非第三方有非常明显的优势 http://nxw.so/4GXWy
- 禁止循环中数据库查询
- 禁止使用 select*
后台接口规范
- 遵循 semver 规范,minor版本号相同必须接口兼容(major 不为0)
- 如果一个接口或这一个字段在某个版本废弃了,要加 TODO,注明废弃版本,这样在不再支持之后,再统一删除这些垃圾代码。
- eg:注明 v1.3 后不再使用,便于 minVersion >= 1.3 后删除
- 所有时间参数/返回值使用时间戳
前端规范
- 版本号的修改要在 master 做
js 规范
当有两个及以上异步调用时,可以用 await:
async test_order() {
console.log("-------------- begin api test ------------");
let phone = '13320817857';
let adCode = 510100;
// 账号 - 验证码 登录
await apis.telForCode(phone, 'login');
let res = await apis.telByCodeGetToken(phone, '');
// save toke
setToken(res.data.data.token);
// get user info
let info = await apis.getUserInfo();
// 获取服务分类菜单
info = await apis.getMenuServiceType(adCode);
// 拿到第一个服务分类的 id
let sid = info.data.data.info[0].id;
info = await apis.getMenuServiceType(adCode, sid);
// 第一个服务的 id
sid = info.data.data.info[0].childes[0].payload.id;
info = await apis.getServiceInfo(sid);
其他情况都不要用 async + await
数据库规范
- 字段如果设置为 not null,必须要有默认值,否则代码回滚后会无法插入数据
配置更新规范
- 通过工具更新到配置仓库(git@git.dajxyl.com:dajx/prj-configs.git)的指定分支
其他
- 对应分支做对应的事情,不要混着用
- powder: 按 controller 划分模块,以及 misc 模块