• MOV AX,0
    2019-02-01
    关于更新接口的问题,我所知的做法一般有两种:
    1.对于外部部门调用的公开接口,如果有修改,需要提前知会各部门负责人。负责人委派一名同事进行对接,我们协调好接口规范整理出文档。在近期版本,上线这个新接口,但不马上废弃旧接口,只是标注@Deprecated。等待所有部门在后续版本替换完新接口后,检查接口调用情况,确认没有任何调用后进行移除;
    2.如果是作为开放平台公开出去的接口,或在更改接口实现逻辑前需要额外流程(比如DB变更、数据源切换等),需要加入类似如下的逻辑:
    if (isNewProcess()) {
         return executeByNewProcess();
    }
    return executeByOldProcess();
    目前公司是使用携程的Apollo配置中心实现公共配置,比如近期我们遇到一个查询会员账户总余额&积分统计的DB慢查询问题。我们将查询数据源改为从大数据获取,但是在大数据可能出错或挂掉的情况,就可能导致一系列问题。所以我在apollo配置了三个开关:
    a.所有数据从大数据获取(boolean)
    b.从大数据获取统计信息的商户ID(list)
    c.所有统计数据直接返回0的商户ID(list)
    容错性非常重要,如果大数据方面数据不可靠/接口挂掉,切到直查DB后,针对会员数很多的大商户,还需要直接返回0禁止DB的慢查询拖垮库。
    同理,开放平台的接口,如果修改在线上的应用具有不确定性,一定要有后手,可以换回旧逻辑。测试环境通过,并不代表线上也通过!
    展开

    作者回复: 非常棒的经验,多谢!

    
     12
  • 周锐
    2019-02-01
    提供/调用接口甩锅指南:
    1、提供接口:a、打印传入参数;b、对参数做验证,不合规就回抛异常;c、返回之前打印返回结果。
    2、调用接口:a、调用前打印调用参数;b、调用后打印返回结果。

    作者回复: 检查参数还不够吗?

    
     5
  • Sisyphus235
    2019-05-22
    接口规范是好事情,但是如果业务变动非常大且频繁,接口就需要不断修改,这样规范的接口反而带来很大开发消耗,或许接口规范也要根据实际情况灵活调整,必须写清楚的是传参,其他部分根据情况来使用。

    另外,使用类似于 Protocol Buffer 的工具不仅能让协作者清楚知道接口情况,且能 parse 和 unparse,避免很多接口错误。

    作者回复: 频繁变动的接口是个灾难。接口设计一定要舍得花时间。

    
     1
  • 彩色的沙漠
    2019-05-06
    App开发和后端交互,更多是接口的调用者。同时也是接口规范的参与者,因为不了解移动端的交互,我们作为调用者更清楚需要什么。
    
    
  • 小文
    2019-02-18
    唉 我做游戏开发的从没有写过这个东东

    作者回复: 忧桑,没接触过游戏开发,一点也不懂。游戏不开发公共接口吗?

    
    
  • 秦凯
    2019-02-14
    在接口申明中将“积雪”(节日)的样式作为配置参数,并且默认为不应用。只有当开发者主动配置时才会应用节日特效。并且将此特性记录到使用规范文档中供使用者参考,好让使用者可以清晰明了的使用API。

    作者回复: 这是一个好办法! "默认为不应用"是一个常用的解决兼容性问题的办法。

    
    
  • 逆风飞翔
    2019-02-01
    请问一下专栏内容有印象笔记版本吗

    作者回复: 我没用过印象笔记,应该没有这个版本。

    
    
我们在线,来聊聊吧