Uninote
Uninote
用户根目录

必须遵循的规范

  • 工作(项目代码、工具脚本。。。)的可读性、可维护性,必须放在第一位
  • 前后分工要明确,该前/后台改的,要坚持
  • 优化接口调用,不要重复调用、多余调用、接口不要返回多余的数据
  • 不能简单的 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,必须要有默认值,否则代码回滚后会无法插入数据

配置更新规范

其他

  • 对应分支做对应的事情,不要混着用
  • powder: 按 controller 划分模块,以及 misc 模块

产品迭代规范

开发规范-git

点赞(0) 阅读(1) 举报
目录
标题