【程序媛晒83行代码】阿里口碑平台技术部工程师,不秀美颜秀代码

简介: 衔远小姐姐的83行代码,一个技术与马甲线并存的mm

在中国程序媛中,他们的代码有什么样的魅力,Aone联合云栖社区、饿了么、钉钉、阿里云、天猫、口碑发起首届程序媛比码活动——不秀大长腿,秀高智商;不秀美图照,秀代码图,参与晒码互动游戏赢“83行代码”T恤!

我们来说说这群女工程师的第83行代码及代码背后的故事:


我是 阿里口碑 基础平台技术部的工程师-衔远,坐标上海。
听说还有发照骗,说好的不秀美颜呢!!

ps:团队大量招人,欢迎加入~~ enqing.teq@koubei.com

下面是一段商品购买时库存扣减回补的代码,欢迎cr

public class PurchaseProcessExecutorImpl implements PurchaseProcessExecutor {

/**
 * 外部库存服务
 */
private OutInventoryService outInventoryService;

/**
 * 执行外部扣减流程,同时更新扣减状态
 *
 * @param bizOrder
 * @return
 */
@Override
public void executeSubtract(InventoryOrder bizOrder, String uid) {

    List<SubtractProcessDetail> details = bizOrder.getSubtractProcess();

    //生成外部预算请求,key是outInvId
    List<OutInventoryControlRequest> outReqs = convert2OutInvReqs(details);

    //通过budgetCore进行扣减
    Map<String, BudgetControlResult> res = budgetCoreControl(outReqs, uid, ControlType.SUBTRACT);

    //更新扣减单元状态
    updateUnitStatus(res, details);

    //更新子单扣减状态
    updateOrderStatus(details);

    //更新主单状态
    bizOrder.updateSubtractStatus();

}

/**
 * 执行回补流程,同时更新回补状态
 * @param subtractOrder
 * @param rollbackOrder
 * @param uid
 */
@Override
public void executeRollback(InventoryOrder subtractOrder, InventoryOrder rollbackOrder,
                            String uid) {

    //生成外部预算请求
    List<OutInventoryControlRequest> outReqs = convert2OutInvReqs(
        rollbackOrder.getRollbackProcess());

    //通过budgetCore进行回补
    Map<String, BudgetControlResult> res = budgetCoreControl(outReqs, uid, ControlType.ROLLBACK);

    //更新回补单元状态
    updateUnitStatus(res, rollbackOrder.getRollbackProcess());

    //更新子单状态
    updateOrderStatus(rollbackOrder.getRollbackProcess());

    //更新主单状态
    rollbackOrder.updateRollbackStatus();

}

/**
 * 更新扣减单元状态
 *
 * @param res
 * @param details
 */
private <T extends PurchaseProcessDetail> void updateUnitStatus(Map<String, BudgetControlResult> res,
                                                                List<T> details) {
    if (CollectionTool.isEmpty(details)) {
        return;
    }
    //结果解析
    details.forEach(detail -> {
        //根据扣减结果更新状态
        detail.getUnits()
            .forEach(unit -> unit.updateUnitStatus(res.get(unit.getOutInventoryId())));
    });
}

/**
 * 更新子单明细状态
 * @param details
 * @param <T>
 */
private <T extends PurchaseProcessDetail> void updateOrderStatus(List<T> details) {
    if (CollectionTool.isEmpty(details)) {
        return;
    }
    details.forEach(detail -> detail.updateStatus());
}

/**
 * 通过budgetCore进行回补 or 扣减
 *
 * @param outReqs
 * @param uid
 */
private Map<String, BudgetControlResult> budgetCoreControl(List<OutInventoryControlRequest> outReqs,
                                                           String uid,
                                                           ControlType controlType) {

    Map<String, BudgetControlResult> budgetControlResultMap = new HashMap<>();

    if (CollectionTool.isEmpty(outReqs)) {
        return budgetControlResultMap;
    }

    //根据类型调用bc进行回补or扣减
    if (ControlType.SUBTRACT == controlType) {
        //扣减
        budgetControlResultMap = outInventoryService.batchSubtract(uid, outReqs);

    } else if (ControlType.ROLLBACK == controlType) {
        //回补
        budgetControlResultMap = outInventoryService.batchRollback(uid, outReqs);

    } else {
        InvBizLog.procWarn(InvBizType.INV_SUBTRACT, InvSecErrorCode.BC_NOT_SUPPORT, "bc控制模式不支持",
            controlType);
    }

    if (CollectionTool.isEmpty(budgetControlResultMap)) {
        
        InvBizLog.fail(InvBizType.INV_SUBTRACT, InvSecErrorCode.LOAD_BUD_CORE_RESULT_NULL,
            "budgetCore调用失败");
        throw new InvBusinessException(InvSecErrorCode.LOAD_BUD_CORE_RESULT_NULL, true);
    }

    InvBizLog.proc(InvBizType.INV_SUBTRACT, "budgetCore调用结束,结果={0}", budgetControlResultMap);

    return budgetControlResultMap;
}
}

与衔远小姐姐互动,为她打call——>点击进去衔远晒码


更多小姐姐,点击进入查看代码

有被代码耽误的钉钉吃货程序媛,写代码写到忘记吃饭的——采霜
她急需能把她从代码中叫醒去吃饭的小伙伴,赶紧勾搭;
http://yq.aliyun.com/roundtable/126499/answer/170319#visit170319


有以代码为乐的饿了么大前端打(bei)杂(guo)工程师——敖天羽
http://yq.aliyun.com/roundtable/126499/answer/170299#visit170299


还有全栈美女工程师——前端后端一锅端的——墨瑜女神
http://yq.aliyun.com/roundtable/126499/answer/170316#visit170316


还有阿里云活好码赞,像男人一样活着的技术专家小姐姐——清宵http://yq.aliyun.com/roundtable/126499/answer/170296#visit170296


和天猫Java程序媛,happy(被)来(逼)的——采月
http://yq.aliyun.com/roundtable/126499/answer/170354#visit170354


阿里口碑 搜索推荐组的JAVA女工程师——妍霏
http://yq.aliyun.com/roundtable/126499/answer/214059#visit214059


阿里口碑基础平台技术部的工程师-衔远,一个技术与马甲线并存的mm
http://yq.aliyun.com/roundtable/126499/answer/248798#visit248798

云栖社区聚能聊专家,具有知性温婉气质的——海洋的云http://yq.aliyun.com/roundtable/126499/answer/170290#visit170290

福州市五佰网络科技有限公司的Java女工程师——江小白太白
http://yq.aliyun.com/roundtable/126499/answer/189332#visit189332


在下*的程序媛——cn_suqingnian
http://yq.aliyun.com/roundtable/126499/answer/170309#visit170309


交通银行的前端女工程师——昆0830
http://yq.aliyun.com/roundtable/126499/answer/201979#visit201979

相关文章
|
8月前
|
人工智能 前端开发 JavaScript
袁志佳:前端全栈工程师精英班
本套课程涵盖大前端的全部领域,并对传统的Web前端全栈深入教学。如利用前端知识开发 AI、VR、AR、iOS、Android、PC、Server、智能硬件。 同时我们将核心打造 JavaScript语言新发展、Vue源码分析、前端持续集成方案汇总、MV*框架深度分析 、前端图形学、NodeJS大规模站点架构、数据结构与算法 极致WebApp性能优化等。
141 4
袁志佳:前端全栈工程师精英班
|
8月前
|
负载均衡 Kubernetes 数据库
【鹅厂摸鱼日记(一)】(工作篇)认识八大技术架构
【鹅厂摸鱼日记(一)】(工作篇)认识八大技术架构
|
自然语言处理 安全 机器人
35 岁实现财务自由,腾讯程序员手握2300万提前退休?
35岁,已经准备好退休了。走之前给年轻人一个参考,到我这个年纪在大厂确实可能会碰到职业发展瓶颈,但并不意味着你们一毕业就去国企公务员是更好的选择。 我不是被辞退,也不是离职就找不到工作,只是懒得打工了,1kw 的房产+1kw的腾讯股票+3百万的现金,不拼学位房不买豪车,勉强够用了。 我知道很多人会说通货膨胀什么的,但我不相信腾讯的股票会跑不赢通胀。 我知道还会有人说找个轻松的工作稳妥点,但我觉得这是浪费生命,995拼了 10 多年就是打算把别人一辈子的钱提前赚完的。 不知道该去哪个行业工作的话, 市值排名,再看看福布斯排行榜,哪个行业出镜率最高就去哪,大佬们吃肉还是会给小老弟们留点汤的。
|
8月前
|
设计模式 算法 网络协议
励志!一年时间,从小白到进入阿里核心部门,“他”的逆袭之路
注明:这是一个励志老哥给我分享的个人经历,发本文的目的是为了让大家可以参考他的学习经历,提高自己的能力!当然人外有人天外有天,大神也别打我!再次说明,我只是为了能够帮助迷茫的兄弟们!接下来以他的第一视角为大家讲述他的经历。
|
机器学习/深度学习 前端开发 搜索推荐
2023大淘宝技术工程师推荐书单
今天是4月23日了,是联合国教科文组织规定的“世界读书日”。 大淘宝技术的工程师们精心挑选出7本技术类书籍, 有机器学习方面的、推荐系统方面的,分布式领域的,等等。每一位工程师都根据自己真实的阅读心得写了推荐语,希望能帮大家更快挑选到对自己有用的书籍。
233 0
|
前端开发 小程序 JavaScript
【直播预告】和玉伯一起畅聊技术管理与团队成长
【直播预告】和玉伯一起畅聊技术管理与团队成长
488 0
|
机器学习/深度学习 弹性计算 供应链
上财信院大四生毕设使用阿里云体验感想
上海财经大学大学信管学院计算机专业学生,毕设是一个机器学习系统,指导老师建议部署到服务器上,选择了阿里云的高校计划的免费服务器,记录分享一下使用心得。
|
数据挖掘 BI 项目管理
第二期“码上公益营·低代码挑战”评审结果通知
感谢各位爱心极客与公益组织的共同努力,第二期“码上公益营·低代码挑战”活动取得了丰硕的成果,经小组展示以及三方测评,现公布评审结果。
485 0
第二期“码上公益营·低代码挑战”评审结果通知
|
网络性能优化 双11
这位三个月就想辞职的阿里工程师,现在,真香!
他前段时间和剑桥大学教授 Frank Kelly 合作,设计了新一代高速网络拥塞控制协议 HPCC。
459 0
这位三个月就想辞职的阿里工程师,现在,真香!
|
移动开发 前端开发 JavaScript
马上报名第二届阿里巴巴前端练习生计划,助你成为专业前端人!
首届举办,同学们的参与热情非常高,有超过1000名同学报名,200多个同学完成了课程学习和结业项目,收获了结业证书。结业的同学在阿里巴巴校招面试中,面试成功比例有接近50%。 现在,我们发起第二届阿里巴巴前端练习生计划,即刻开始报名啦!
1762 0
马上报名第二届阿里巴巴前端练习生计划,助你成为专业前端人!