故事 “不能在写ifelse来拓展当前系统了,现在已经有三个支付场景了......”工位上,小猫看着电脑,挠着头。 就在刚刚,小猫接到了一个新需求,需要和客户公司打通资产,形成资产联动。说白了就是需要定制化对接客户公司的支付资产体系。除了这次接到的之外。前面其实已经对接了三家了。由于每家对接规范都不一样,历史对接的时候为了尽快上线,都是直接搞个else的新路由分支,然后去实现支付,退款。 在小猫看来,就是在堆屎山。牵一发而动全身的感觉真的很不好。由于本次的需求留有的时间还是相当充裕的,所以小猫下定决心,打算利用这次的拓展,将原来不合理的地方用上设计模式将其重构掉。 深思熟虑很久,小猫下定决心打...

  5j6GTIPAKCsB   12天前   18   0   0 Java

大家好,我是老猫。今天和大家分享一下程序员日常的绘图思路,以及一些老猫日常使用的绘图工具。 为什么要画图? 我们在进行系统设计的时候,为了更加具象地呈现系统的轮廓以及各个组件或者系统之间的关系和边界以及工作流程。我们就会画逻辑架构图,模块图、流程图、时序图等等。 在日常开发中,软件设计图是一种非常好的表达方式,尤其在技术评审的时候,一副好的设计图可能比干巴巴的文字更能说明问题。正所谓“一图胜千言”。 软件工程中的绘图 不知道大家有没有听说过“4+1”模型。其实在很早的时候,大概1995年的时候,PhilippeKruchten在IEEESoftware上就发表了“The4+1ViewModel...

  5j6GTIPAKCsB   19天前   18   0   0 架构设计

分享是最有效的学习方式。博客:https://blog.ktdaddy.com/ 背景 小猫维护现有的系统也有一段时间了,踩坑也不少,事故不少。感兴趣的小伙伴可以了解一下,往期的小猫踩坑记合集。 这天,小猫找到了商城系统的第一任开发老A开始聊天。 “你们这系统是真坑,我都吃过好多次亏了,太烂了...”小猫开玩笑地吐槽道。 “我们当时其实还是花了很长的一段时间去做设计以及评审的,每一步都是有严格把控的,当时系统总体骨架还是相当清晰的,也没有那么多新的概念,你说现在系统不行了,可不能怪我们啊。一会我给你原始设计文档看看。后面经过了很多研发的手了,甚至运营和产品都换了好几拨了,每任运营可能对当前...

  5j6GTIPAKCsB   2024年03月18日   50   0   0 架构设计

故事 春天,办公室外的世界总是让人神往的,小猫带着耳机,托着腮帮,望着外面美好的春光神游着... 一声不和谐的座机电话声打破这份本该属于小猫的宁静,“hi,小猫,线上有个客户想购买A产品规格的商品,投诉说下单总是失败,帮忙看一下啥原因。”客服部小姐姐甜美的声音从电话那头传来。“哦哦,好,我看一下,把商品编号发一下吧......” 由于前一段时间的系统熟悉,小猫对现在的数据表模型已经了然于胸,当下就直接定位到了商品规格信息表,发现数据库中客户想购买的规格已经被下架了,但是前端的缓存好像并没有被刷新。 小猫在系统中找到了之前开发人员留的后门接口,直接curl语句重新刷新了一下接口,缓存问题搞定了。...

  5j6GTIPAKCsB   2024年03月14日   37   0   0 Java

分享是最有效的学习方式。博客:https://blog.ktdaddy.com/ 地铁上刷到一个话题,觉得挺有意思的,如下。 看到很多朋友在下面吐槽,有说加班是真的多,有说找对象是真的难,有说程序员爱穿格子衫是假爱背电脑是真的等等,大家吐槽得都挺欢乐的。 老猫也开始复盘这些年的经历,更多想聊的可能还是一个后端程序员的真实感悟。 入行 俗话说“男怕入错行,女怕嫁错郎。”相信很多朋友在进入一个行业之前都是深思熟虑的,亦或者是咨询过一些人,亦或者是查阅了挺多资料。然而老猫入行则相当奇葩,不是蓄谋已久,而是心血来潮。 一切都得从一部电视剧开始,不晓得大家有没有看过这部电视剧,佟丽娅主演的“我的...

  5j6GTIPAKCsB   2024年03月09日   51   0   0 Java

分享是最有效的学习方式。博客:https://blog.ktdaddy.com/ 故事 新年新气象,小猫也是踏上了新年新征程,自从小猫按照老猫给的建议【系统梳理大法】完完整整地梳理完毕系统之后,小猫对整个系统的把控可谓又是上到可一个新的高度。开工一周,事情还不是很多,寥寥几个需求,小猫分分钟搞定。 类似于开放平台的老六接到客户的需求,需要在查询订单新增一个下单时间的返回值,然后这就需要提供底层服务的小猫在接口层给出这个字段,然后老六通过包装之后给客户。由于需求比较简单,所以加完字段之后,老六和小猫也就直接上线了。 上线之后事儿来了,对面客户研发一直询问为什么还是没有下单时间,总是空的。老六...

  5j6GTIPAKCsB   2024年02月27日   19   0   0 Java

分享是最有效的学习方式。博客:https://blog.ktdaddy.com/ 老猫的设计模式专栏已经偷偷发车了。不甘愿做crudboy?看了好几遍的设计模式还记不住?那就不要刻意记了,跟上老猫的步伐,在一个个有趣的职场故事中领悟设计模式的精髓吧。还等什么?赶紧上车吧 故事 小猫的风波已经过去了,这几天,小猫在安安心心地撸着系统现状方案,准备着下次月会的分享。 这天,原本静谧而又和谐的办公室却被开放平台老六抱怨声打破了。 “不改,别给我打电话了!说几遍都没用。这是一个研发的底线.....” 没过一会,产品老汪担心老六对其"对脸开大",孙子似地提着杯咖啡找到了老六。老汪是明事理的产品经...

  5j6GTIPAKCsB   2024年02月19日   42   0   0 Java

分享是最有效的学习方式。博客:https://blog.ktdaddy.com/ 老猫的设计模式专栏已经偷偷发车了。不甘愿做crudboy?看了好几遍的设计模式还记不住?那就不要刻意记了,跟上老猫的步伐,在一个个有趣的职场故事中领悟设计模式的精髓吧。还等什么?赶紧上车吧 故事 这段时间以来,小猫按照之前的系统梳理方案【系统梳理大法&代码梳理大法】一直在整理着文档。 系统中涉及的业务以及模型也基本了然于胸,但是这代码写的真的是... 小猫也终于知道了为什么每天都有客诉,为什么每天都要去调用curl语句去订正生产的数据,为什么每天都在Hotfix... 整理了一下,大概出于这些原因,业...

  5j6GTIPAKCsB   2024年02月19日   44   0   0 Java

故事 接二连三地背锅让小猫的内心受到了前所未有的打击。这也是他职业生涯中的第一次。感兴趣的伙伴们如果想了解一下小猫怎么了,可以看一下“幂等事件”以及“缓存击穿事件”。 这天组长找小猫来到了一间会议室。 “在这么短的时间内发生了这么多的事故,我想也你心里也不好受,也不怪你,毕竟刚接手项目。以前项目中可能本身存在一定问题。正好轮到你头上,我希望你也不要灰心......”,组长在一边balabala。 小猫在一旁小鸡啄米似的点着头。紧张的内心缓和了许多,“听组长这语气,貌似不扣我绩效啊”,小猫心里寻思着。 “但是呢,事情是发生了,系统中估计还有其他的问题,无论是业务上的还是代码上的亦或是设计上的,然...

  5j6GTIPAKCsB   2024年01月21日   11   0   0 架构设计

分享是最有效的学习方式。 故事 又是一个风和日丽没好的一天,小猫戴着耳机,安逸地听着音乐,撸着代码,这种没有会议的日子真的是巴适得板。 不料祸从天降,组长火急火燎地跑过来找到了小猫。“快排查一下,目前有A公司用户反馈积分被多扣了”。 小猫回忆了一下“不对啊,这接口我也没动过啊,前几天对外平台的老六直接找我要个支付接口,我就给他了的,以前的代码,我都没有动过的......”。 于是小猫一边疑惑一边翻看着以前的代码,越看脸色越差...... 小猫做的是一个标准的积分兑换商城,以前和客户合作的时候,客户直接用的是小猫单位自己定制的h5页面。这次合作了一家公司有点特殊,由于公司想要定制化自己个性...

  5j6GTIPAKCsB   2024年01月16日   41   0   0 Java

分享是最有效的学习方式。 背景 这是张小帅失业之后的第三场面试。 面试官:“实际开发中用过多线程吧,那聊聊线程池吧”。 “有CachedThreadPool:可缓存线程池,FixedThreadPool:定长线程池.......balabala”。小帅暗暗窃喜,还好把这几种线程池背下来了,看来这次可以上岸了。 面试官点点头,继续问到“那线程池底层是如何实现复用的?” “额,这个....” 寒风中,那个男人的背影在暮色中显得孤寂而凄凉,仿佛与世隔绝,独自面对着无尽的寂寞...... 概要 如果问到线程池的话,不好好剖析过底层代码,恐怕真的会像小帅那样被问翻吧。 那么在此我们就来好好剖析一下线...

  5j6GTIPAKCsB   2024年01月12日   8   0   0 Java

背景 继上次的ifelse优化也有段时间了,最近小猫又又又着道了,接手的那个项目又遇到了坑爹的地方,经常性的报死锁异常,经常性的主从延迟......通过报错信息按图索骥,发现代码是这样的。 这是一段商品发布的逻辑,我们可以看到参数校验、查询、最终的insert以及update全部揉在一个事务中。遇到批量发布商品的时候就经常出现问题了,数据库主从延迟是肯定少不了的。 开启优化 其实像上述小猫遇到的这种状况我们就称其为大事务,那么我们就大概有这么一个定义。我们将执行时间长,并且操作数据比较多的事务叫做大事务。 大事务产生的原因 在我们日常开发过程中,其实经常会遇到大事务,老猫总结了一下,往...

  5j6GTIPAKCsB   2024年01月07日   11   0   0 Java

背景 当前形势不佳,在这种情况下。小猫更是雪上加霜,他被裁了。投了个把月简历,终于约到一个面试。面试官翻了一下简历:“看你简历上写了支付和账户相关项目,那能否聊一下热点账户问题你们是咋处理的吧”。 小猫懵逼了一会,“额?什么是热点账户?我们好像模型里面就一个资产账户,然后充值的时候和消费的时候更新一下该账户,并且记录一下操作明细,然后结束了。” 面试官:“哦。回去等通知吧。” 出来之后,小猫整个人都还是懵逼的。 问题分析 我们一起来看一下这样一个问题,其实这里面试官想要知道的是,在高并发的情况下,针对热点账户如何进行账户金额的冲扣,小猫没有get到面试官的点,可能他负责的项目中本身的量不大,压...

  5j6GTIPAKCsB   2024年01月01日   11   0   0 Java

背景 当前形势不佳,在这种情况下。小猫更是雪上加霜,他被裁了。投了个把月简历,终于约到一个面试。面试官翻了一下简历:“看你简历上写了支付和账户相关项目,那能否聊一下热点账户问题你们是咋处理的吧”。 小猫懵逼了一会,“额?什么是热点账户?我们好像模型里面就一个资产账户,然后充值的时候和消费的时候更新一下该账户,并且记录一下操作明细,然后结束了。” 面试官:“哦。回去等通知吧。” 出来之后,小猫整个人都还是懵逼的。 问题分析 我们一起来看一下这样一个问题,其实这里面试官想要知道的是,在高并发的情况下,针对热点账户如何进行账户金额的冲扣,小猫没有get到面试官的点,可能他负责的项目中本身的量不大,压...

  5j6GTIPAKCsB   2023年12月31日   16   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~