9月项目小收获文本记录—fiting

文章目录

          • 将数字转换为中文
          • 消息发送顺序
          • 成长

将数字转换为中文
  • 最近开发过程中,有一个需求是:在展示课程列表的时候,根据序列号,展示文案为:第一期这种类似效果。PS:其实一直在想为啥不直接展示为:第1期这种的,感觉没啥区别。呵呵,产品视角理解不了。
  • 在代码的执行过程中,最开始是出现了:10->一十零;1001->一千零零一;11->十等等类似效果。经调试最终代码为:(PS,仅做记录+支持亿级)
  • 在开发一个算法过程中,开发人员应该做到最基本的常规自测+极端数据自测
  /*** 将数字转换为中文数字** @param num 数字* @return 汉字*/public static String toChinese(int num){String[] s1 = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九"};String[] s2 = {"十", "百", "千", "万", "十万", "百万", "千万", "亿"};String source=String.valueOf(num);//处理以0开头的数据source = source.replaceFirst("^0*", "");StringBuilder builder=new StringBuilder();char[] chars=source.toCharArray();int n=chars.length;if(n==1){return s1[Integer.valueOf(source)];}for (int i=0;i
消息发送顺序
  • 在我们的课程业务中,有一个逻辑是佛系打卡分享,也就是说选择完成学习,后台记录打卡操作,并同时派发奖励和组装分享数据返回给客户端;并且,同步排行榜数据。
  • 为了响应速度,以及服务目前的划分,同步排行榜数据,是以发送消息再消费的形式,写入缓存的。
  • 问题:在假期中,由于某个数据配置,导致此流程异常进行事务回滚,然而消息发送出去被正常消费,Redis数据和数据库中发生严重不一致。而且由于用户重试,Redis的排行榜数据,被更新了不止一次,而数据库中查不到对应的记录。
  • 解决办法:1,消息事务化处理(消息事务我们好像有,不过没用过,而且如果是事务,感觉对于响应速度来讲又慢了,此接由于用户多,属于高频访问接口);2,我把发消息的方法,挪到了此方法的的最后一步。基本思路是:如果能执行到最后一步,说明主流程基本无误,事务基本上不发生回滚操作,这个时候,就算低概率的消息消费失败,也可以从数据库中查询数据进行补偿。
成长
  • 最近一段时间,好像都没有大的技术上的挑战了,如果有,也就是上个直播项目,处理了并发操作,进行压测,然后不断地调整。不过,收获还是有很多,因为不停的在维护优化线上服务,优化用户反馈的内容。对于产品的理解,用户的需求更为深刻。
  • 再记录一个自己感觉成长了一些的案例:假前突然有很多用户反馈课程无法正常打开上课,麻蛋,用户比较多,很紧张。上一次发生这种大规模事件的时候,应该是2年前左右在长城汽车,电话都要被经销商打爆了。整个人很紧张,慌到不知所措,看着组长在改东西处理订单调剂异常。这一次,我抗住了,首先是没有慌,然后因为自己平时也会看整个服务,其他服务的代码,查看APP主要业务流程线的调用关系和代码逻辑,对于每个页面的数据来源和业务处理的熟悉程度都比较深刻,最后,再不到2分钟的时间内,把问题解决了。PS:今年写年终,然后一定要犒劳自己一下。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部