首页 > 其他分享 >【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。

【注意】当同一个Class的多个对象出现在同一段代码内的时候,极易出错。

时间:2024-04-28 19:55:40浏览次数:20  
标签:... bug 重构 代码 Class 极易 出错 方法 fix

同一个方法里,多个BankOrderFlow对象...这像“shǐ”一样的代码

下面的 paymentQuery 方法坐落于我们lijianjin系统的LiJianJinPaymentQueryBizService。

这两个bankOrderFlow、orderFlow,... 乱花渐欲迷人眼的赶脚,但其实,这是像“shǐ”一样的代码。

 

 

 

 

无独有偶,bug来了

在我们的zhongtai-channel-provider, 上周出现并紧急fix了一个bug。竟然也是 此种情况 引发的bug。

 

先上截图。下图中这段代码,有 3 个 PayPaymentFlow 对象实例:payPaymentFlow、paymentFlow、payFlow。 这命名,与邻居家的三个孩子 大狗、二狗、三狗一样。

 

 

让我介绍一下我们紧急fix的bug。↓

我们在做内部重构时,不慎...,直接下面的改动吧。

 

通过上面的diff,你能看出来发生了什么bug吗? 

看不出来的话,看下面fix后的diff,相信你能看出来。

 

 

bug是fix掉了。那么,谁又能保证未来不会再出现类似的bug呢?

 

因此,如何规避这样的bug?也就是说,如何重构呢?

 

重构要点

一个要点:将复杂的方法拆分为多个更小单元的方法,通过方法的封装来限制变量的作用域。

 

标签:...,bug,重构,代码,Class,极易,出错,方法,fix
From: https://www.cnblogs.com/buguge/p/18164391

相关文章

  • idea启动项目时抛出错误信息Error running 'XXXApplication' Error running XXXApplic
    很多新手小白在启动项目时会出现下面问题,不知道怎么办出现的问题:启动项目时抛出下图错误提示:Errorrunning'XXXApplication'ErrorrunningXXXApplication.Commandlineistoolong.Shortenthecommandlineandrerun. 解决办法:1、直接点击下图位置,进入EditRunConfi......
  • 论文笔记-Non-intrusive classification of gas-liquid flow regimes in an S-shaped
    目标:使用深度神经网络对S形立管中的流态进行分类该分类器与四种传统的机器学习分类器进行了比较:即AdaBoost分类器、bagging分类器、额外树分类器和决策树分类器小波分析在流态分类中的应用可以有效地提取多相流行为的特征。使用信号处理方法进行流态分类,包括峰值点计数、......
  • 【vue3入门】-【13】class绑定
    class绑定数据绑定的一个常见需求场景是操纵元素的CSSclass列表,因为class是Attribute,我们可以和其他Attribute一样使用v-bind将它们动态的字符串绑定。但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且易出错的。因此,vue专门为class和v-bind用法提供了特殊的功能增强。除......
  • vue中函数使用、class和style属性、条件渲染、列表渲染、数据的双向绑定、input事件、
    【事件指令中的函数使用】1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8">5<title>Title</title>6<scriptsrc="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"&......
  • C++ 多态与虚拟:Class 语法语义
    1.object与class:在object-orientedprogramming编程领域,对象(object)有更严格的定义。对象是由数据结构和用于处理该结构的过程(称为methods)组成的实体(instance)。这些方法由对象接收的消息激活。一个对象的内部数据结构与其他对象完全隔离(此属性称为“encapsulation”)。对象是基于模......
  • 流水线运行出错排查难?AI 来帮你
    “我的企业有几千条流水线,每次流水线运行出错,都要投入不少的技术人员进去排查,需要花费不少的时间。”遇到这种情况,怎么解决。在AI爆火的今天,AI如何助力DevOps效率提升?云效与阿里云通义大模型合作,推出了流水线智能排查能力。以Java构建为例,当流水线在构建环节出现错误时,......
  • 流水线运行出错排查难?AI 来帮你
    “我的企业有几千条流水线,每次流水线运行出错,都要投入不少的技术人员进去排查,需要花费不少的时间。”遇到这种情况,怎么解决。在AI爆火的今天,AI如何助力DevOps效率提升?云效与阿里云通义大模型合作,推出了流水线智能排查能力。以Java构建为例,当流水线在构建环节出现错误时,......
  • k8s Java 项目替换 jar 中的 class 文件
    背景紧急需求,客户需要立马上线docker包体积过大,远程不稳定,文件发不过去单点修改,风险低步骤1.获取pod所在宿主机podonhostkubectl-n$namespancegetpods-owide|grep$podname|grepRunning2.获取pod的容器cidkubectl-n$namespancedescribepo$podn......
  • 分类算法(Classification Algorithm)需求记录
    [toc]比如说,在WEB扫描器场景中。一个扫描器在扫描过程中,它可以自动识别接口类型并采用相应分类规则进行漏洞检测的算法,这种通常属于一种称为"智能扫描"(IntelligentScanning)或"漏洞扫描引擎"的技术。这些算法利用机器学习、深度学习和模式识别等技术,通过分析网络流量、响应内容......
  • Principles of Object Oriented Class Design
    PrinciplesofObjectOrientedClassDesignhttps://staff.cs.utu.fi/~jounsmed/doos_06/material/DesignPrinciplesAndPatterns.pdfTheOpenClosedPrinciple(OCP)1Amoduleshouldbeopenforextensionbutclosedformodification.Ofalltheprinciplesofobjec......