我的面试题. 业务抽象能力测试.

父文章  

 人人都是面试_个人渣记录仅为自己搜索用的博客-CSDN博客

1. public enum Status {
TRADE(3, "交易中"), PAY(4, "支付中"),  CANCEL(5, "取消"),  ONLINE_PAYED(6, "线上支付成功"),  CASH_PAYED(7, "现金支付成功"),  CASH_FINISH(8, "现金完成"),  ONLINE_FINISH(9, "在线完成"),  ADJUSTING(10, "订单调价中"); 2.怎么理解业务中的状态. 什么情况下你会用一个字段,什么情况下你会用两个字段. 状态和流程有什么关系. 

3.说说你之前工作模块.小模块内部有模块划分么 看到这种语句,从模块化的角度你有什么想法

    class A xxxx{

       public A(){

            currentThread = new B(this);

       }

    }

4.你们的代码结构有反应模块划分么,如何区分模块边界.

5. 订单流. 司机状态,乘客状态.
理论上司机状态是基于订单状态计算的. 现在搞了两个字段维护: 订单状态和司机状态, 会导致数据不一致的情况发生. 这样的设计需要:
1.司机发起任何操作之后,不仅要判断司机状态和订单状态. 而且要校验二者的一致性.
2. 维护这两个字段的系统要定时检查数据一致性,并修复.
不然司机端只需要关闭端,重新打开即可.从服务端打开.

司机端的页面锁也是挺奇怪的方案. 司机端处于什么页面,都是有服务端自己决定的. 司机端自己加锁,就要保证和服务端的每个接口要保证幂等性. 当端和服务端状态不一致. 并且服务端的状态已经处于端上状态+动作的下一个状态.那么久应该返回成功,而不是返回错误码.

故:1.所有接口要对端锁的做幂等返回 2.维护方要提供一个checkAndSyncOrderStateAndDriverState()方法.供每一次调用使用.
 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值