首页
学习
活动
专区
圈层
工具
发布

换IP的是你,凭啥重启的却是我?

由A的调整(数据库换ip),配合修改和调整的却是BCDE(改配置重启),BCDE内心非常的郁闷:明明换ip的是你,凭什么配合重启的却是我?...二、如何寻找不合理“反向依赖” 方法论: 变动方是A,配合方却是BCDE (或者说需求方是A,改动方确是BCDE) 想想“换IP的是你,配合重启的却是我”更好理解。...典型的服务化不彻底导致的业务耦合的特征是,共性服务中,包含大量“根据不同业务,执行不同个性分支”的代码。...回答: (1)变动方是A,配合方却是BCDE (2)需求方是A,改动方确是BCDE 想想“换IP的是你,配合重启的却是我”,此时往往架构上可以进行解耦优化。 常见反向依赖及优化方案?...特性:多个上游需要修改配置重启 换IP的是你,凭啥配合重启的却是我。

1.4K70

代码排错和避免错误的正确姿势

f12看请求和响应 请求参数是否正确,响应码是啥,用来锁定是前端还是后端错误。 比如404,基本断定前端请求地址写错了,比如500,多半是后端代码错误。...如果是新开发的功能,通过删除部分怀疑引入错误的新增的代码来排错。 比如引入了3个二方jar,有冲突,可以去除某一个试试,好了就是这个jar的问题。...举个例子,一个函数好几百行,报了错误,如果很久之前的代码,而且逻辑不够清晰,还得看半天。 如果一个函数代码行数比较短,每个清晰的子步骤都封装到了子函数或者工具类中,那么排错起来就非常容易了。...4、开发过程中或自测前自我code review 在IDEA里,合并最新master之后,和master分支比对代码。 看看有没有逻辑错误,有没有手误,有没有可以改进的地方。...遇到各种坑,却从来不总结有哪些通用的解决思路。这些都非常值得深思。 有其他好的方法欢迎补充 如果觉得本文对你有帮助,欢迎点赞评论,欢迎关注我,我将努力创作更多更好的文章。

1K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    我是怎么读代码的

    本文是我在日常读代码中积累的一点心得,分享出来,希望能与大家产生共鸣。 1. 寻找一位好老师 优秀的项目就像一位好老师,我们可以从它身上全方位地学到各种领域知识。...为了防止在代码中迷失方向,我们可以遵循几条原则来阅读: 从入口开始 虽说通过架构模型以及包和文件划分的关系,我们能大致确定哪些代码是核心代码,但从入口处开始看会更符合大脑的思考方式。...一个典型的例子就是在学习 B+Tree 的分裂、合并、上移下移的时候,全看代码特别不直观,想要理解这类内容画图定有奇效: 必要时借助 debug 有一些代码为了正确性、性能等考虑,其表述可能会让人百思不得其解...一个有趣的例子是:在环形队列中,判断队列是否为空需要看头指针和尾指针是不是已经重合,下图的代码来自一个无锁环形队列的判空实现。...结语 本文是我日常读代码的一点经验,总结下来,就是要 仔细地选择学习的项目; 先通过文档了解全景,再逐步深入代码; 找对抽象和边界,能帮助我们建立思考模型; 写篇文章讲述代码的设计,是深入理解代码的好办法

    1.6K20

    我是如何破解亚马逊一键购物按钮的?

    在这里我发现了一个问题,可能处于节能的目的考虑,再你不用按钮的时候,按钮是处于关闭的状态。 仅仅当你打开它,它才会工作,这就意味着每一次都需要重新连接你的无线网络,那么这就相对简单一些了。...这样就可以通过按下按钮向无线网络发出信息:“嗨!我的名字是[MAC地址]”。好吧,现在我们已经了解问题了。...访问 Cloudstitch,然后创建项目,你就会在电子表格中每一行都会出现一个链接,这样就可以记录我按下按钮的数据信息了。...当然我们也可以修改程序代码将数据同步到项目上,为了记录完整的数据信息,我做了一个测试并在里面增加了数据(Poopy Diaper),看看表格中行中是否会出现链接好的。...详细程序:点击我 现在我们看到数据出现在表格中了 结语 其实在整个过程中,破解按钮达到目标思路可以供大家借鉴。

    1.5K60

    在别人写的代码上做修改我是这样保证正确性

    详细方案设计在别人写的代码上做修改,做详细设计时,第一步要做的是充分评估改动影响;第二步是画流程图梳理改动前后的调用链和数据流,列出修改点;第三步是定好测试关键案例,确保结果的正确性。...第一境界表达的本意是高瞻远瞩,立志高远。在读代码这件事上,可以理解为了解基本框架结构和代码基本实现的功能。第二境界是刻苦钻研深入的过程。第三境界是顿悟,了解之前梳理中没有想明白或忽略的细节或问题。...后来我们就语音沟通了一下这些问题,虽说有些我还是不认同,但是也能明白他提的问题的道理。 有一条,是我新定了一个错误码,我的思考是是这个查询接口非常重要,希望出现问题和其他系统做区别。...而这是我们内部错误码,外部错误码没有变,所以不会对外部产生影响。而Code Review的同事说出了我之前没有了解到的信息:他之前为老错误码单独做了监控。我新定义的错误码,监控就不生效了。...其实本质上我同事的意思就是:“我和你一起保证修改的正确性”。用心是非常好的。 最终提的7条每条我们都争论了,那是因为每一条我们两个都真正思考过。这种氛围我觉得是非常好的。

    1.5K20

    关于Android Studio中Run按钮是灰色的解决

    今天导入一个别人的项目,在导入之前是老方法,覆盖  了三个关键文件之后(.gradle文件夹的内容版本若与本地不一,也应删掉),重启AS; 然而嗯,运行按钮居然灰色。。...查了一下论坛,额,然后我这里是只做了一步就可以了: 就是点击一下锤子按钮(Make Project)右边的选项卡,把选项置于  app  这一项即可,运行按钮瞬间变绿: ?...---- 以下文章转载自:关于Android Studio中Run按钮是灰色的解决 2016年07月21日 14:54:40 拿来人家的工程用,就是有各种版本啊设置啊的问题,要晕了。。。...首先是,在不同的AS中,gradle版本不同,下载的sdk版本不同,这些,都在gradle(Project、Models)相关代码里调过来就好。之前的文章里有说过。...launch option 中设置好指定的activity就好。 暂时,出现的问题就是这些。解决了。

    9.1K20

    我是如何还原NC中的美图的

    Fig2b,分为三部分: 上图为细胞系表达水平的箱线图。中间为热图,显示乳腺癌及其相关生物学过程中预测的抑癌基因和癌基因top50。基于欧氏距离矩阵进行层次聚类。下图是颜色标记不同注释信息。...后来,我找到了这个神器——ComplexHeatmap。看这个R包的直译就知道啦,它是用来画复杂的热图。那到底有多复杂?小编带你一览庐山真面目。...ComplexHeatmap 还原绘图 01 编个数据用用吧 mat是基因表达矩阵,tab是特征标签数据框,sampletab是样本标签数据框。...,我的数据中基因为行,所以就加到右边了,但代码是一样的。...小编总结 ComplexHeatmap由顾祖光博士创建,是一个全面绘制复杂热图的R包,利用它你能绘制许多文献中的图片并学习到美图的精髓。像小编我这样的手残星人都能复制出来,你还没有信心么???

    1.5K30

    检查代码中的数据引用错误

    1、是否有引用的变量未赋值或未初始化?这可能是最常见的编程错误,在各种环境中都可能发生。在引用每个数据项(如变量、数组元素、结构中的域)时,应试图非正式地“证明”该数据项在当前位置具有确定的值。...2、对于所有的数组引用,是否每一个下标的值都在相应维规定的界限之内?3、对于所有的数组引用,是否每一个下标的值都是整数?虽然在某些语言中这不是错误,但这样做是危险的。...当指针引用了过程中的一个局部变量,而指针的值又被赋给一个输出参数或一个全局变量,过程返回(释放了引用的内存单元)结束,尔后程序试图使用指针的值时,这种错误就会发生。...与前面检查错误的方法类似,应试图非正式地“证明”,对于每个使用指针值的引用,引用的内存单元都存在。5、如果一个内存区域具有不同属性的别名,当通过别名进行引用时,内存区域中的数据值是否具有正确的属性?...8、当使用指针或引用变量时,被引用的内存的属性是否与编译器所预期的一致?这种错误的一个例子是,当一个指向某个数据结构的C++指针,被赋值为另外的数据结构的地址。

    92110

    java如何正确停止线程?为什么 volatile 标记位的停止方法是错误的?

    在 Java 多线程编程中,正确停止线程是一个关键问题。不恰当的停止方式可能导致数据不一致、资源泄漏甚至系统崩溃。...一、中断(interrupt)机制 原理 中断是 Java 提供的一种协作式线程停止机制。调用线程的 interrupt() 方法时,会设置该线程的中断标志位。...二、volatile 标记位 原理 通过一个被 volatile 修饰的布尔类型变量作为标记位,当需要停止线程时,将该变量设为指定值(如 true),线程在运行过程中不断检查这个标记位的值,根据其状态决定是否停止...缺点 实现稍复杂 :相较于单独使用中断或 volatile 标记位,代码实现稍显复杂,需要同时处理中断标志位和标记位的逻辑。...中断 + volatile 标记位 可靠性高、灵活性好 实现稍复杂 在实际开发中,推荐优先使用中断机制来停止线程,因为它提供了更安全、可靠的停止方式。

    42110

    前端测试题:(解析)在JavaScript中能正确输出 Hello World的代码是?

    考核内容: JS基础应用 题发散度: ★ 试题难度: ★ 看看大家的选择 解题: JS中常用的输出方式(五种) 1、alert("要输出的内容"); 在浏览器中弹出一个对话框,然后把要输出的内容展示出来...alert都是把要输出的内容首先转换为字符串然后在输出的 2、document.write("要输出的内容"); 直接的在页面中展示输出的内容 3、console.log("要输出的内容"); 在控制台输出内容...4、value ->给文本框(表单元素)赋值内容 获取文本框中(表单元素)的内容 document.getElementById("search").value = "要给#search这个文本框添加的内容...string)是增强版的字符串,用反引号(`)标识。...它可以当作普通字符串使用,也可以用来定义多行字符串,或者在字符串中嵌入变量。 模板字符串中嵌入变量,需要将变量名写在${}之中。

    2.3K20

    前端测试题:有关于JS 中的主要错误,表述错误的是?

    考核内容:JavaScript中常见的错误类型 题发散度: ★★ 试题难度: ★★ 解题思路: javascript 控制台的报错信息主要分为两大类 第一类是语法错误,这一类错误在预解析的过程中如果遇到...另一类错误统称为异常,这一类的错误会导致在错误出现的那一行之后的代码无法执行,但在那一行之前的代码不会受到影响。...JavaScript中常见的错误类型: 1.语法错误 变量名不符合规范 var 1shuke 给关键字赋值 function = "es6" 2.引用错误 引用了不存在的变量 shuke() 给一个无法被赋值的对象赋值...主要的有几种情况, 第一个是数组长度为负数, [].length = -5 第二是Number对象的方法参数超出范围,以及函数堆栈超过最大值。...调用不存在的方法 var obj = {} obj.run() new关键字后接基本类型 var res = new 333 错误调试的方法请参考: 前端测试题:以下浏览器对js显示数据方法,表述错误的是

    1.6K10

    纠正 | 我在持续交付课程中的授课错误

    在DevOps Master中讲持续交付一课,其中讲到发布频率的篇章,中文版里面的翻译是这样的(来源于精益企业): ? 英文版本是这样的(原版书): ?...同样的位置,请注意【灰度发布】和【Dark lauching】的表述。直到有个学员不断的问我灰度发布到底是什么?我在课堂讲过,灰度发布这个术语貌似是不存在的,但 一直没有去看英文原书。...于是今天就去认真查了一下什么是dark lauching?...I like "dark launching", so I'll mostly use that in this post :-) 其实dark lauching,就是不改变客户端程序(变更)的情况下,...启动了新的功能,类似特性开关,当打开之后,用户变可以使用新的功能。

    2.6K10

    反思我在管理中犯过的重大错误

    近一年来,我在管理中犯下的2个重要错误。该错误导致团队结构不清晰,骨干核心人员不稳定,易流失。...1、资源错配 2、逮着一个人疯狂用 目录 1、背景描述; 2、我是如何犯错的,以及我为什么犯错; 3、这两个错误带来了哪些影响; 4、规避和改进方式; 一、背景描述 成立3年的初创公司,10人编制的测试团队...团队人员结构分布是 1个经理、2个高级、3中级、4初级;组内划分是分成了3个小组,2个业务测试小组,一个测试基础小组。...组内结构划分可见下图所示: 二、我是如何犯错的,以及我为什么犯错 错误一:资源错配 对于组长的选择,以及组内骨干的选择,如下图所示: 其中标记为组长的,是在团队内部小组内被任命为小组长,标记为骨干的...两个业务小组中,初中级员工干中高级员工的活,中高级人员为相对边缘角色。这样的资源错配,直接引发了核心、骨干员工的离职率高的后果。 我为什么会这样做: 本质上是一个“谁能谁上”还是“谁上谁能”的问题。

    2.2K10

    使用 ControlFlag 扫描出 PHP 代码中的错误

    ControlFlag是一个开源的、利用机器学习来发现任意代码库中的错误的项目,起初它专注于发现C/C++代码中的错误,但随着其新的V1.1版本的发布,开始支持发现PHP代码当中的错误。...1.1 cmake . make -j make test #创建日志目录 [root@nfsFileSystem control-flag-1.1]# mkdir log 扫描 扫描php #准备一个错误的代码...3) echo 22;提示了Expression is Potential anomaly,也给出了几条它的猜测 相反,代码if (x = 7) y = x;就没扫出来问题,提示Expression is...Okay 其实我私下扫过几个完整的 php 项目,也想了很多 php 的错误语法,令人失望的是基本都扫不出来,有些虽然提示了Expression is Potential anomaly,也基本是误报...Storing logs in log Scan progress:2/2 ... in progress 问题 1️⃣ gcc版本太低(比如7.3.1)会报类似以下错误,我换8.3.1后正常 CMake

    1.4K10

    Python开发中如何优雅地区分错误和正确的返回结果

    在Python开发过程中,区分错误和正确的返回结果是一项非常重要的任务。如果我们不能清晰地处理这两者,那么代码就会变得难以维护和扩展。接下来,我将为大家详细介绍几种有效的模式来解决这个问题。...返回元组或字典 传统的做法是使用元组或字典来返回结果和错误信息。...使用Maybe和Either模式 在函数式编程中,Maybe 和 Either 是两种常用的模式来处理可能出错的情况。 Maybe模式:通常有两个状态,Just value 和 Nothing。...print(f"The result is {result.value}") else: print(f"An error occurred: {result.error}") 总结 区分错误和正确的返回结果是代码质量的一个重要指标...如果您在项目中有更多复杂的需求,可能还需要考虑使用更高级的错误处理库或者自定义错误处理机制。无论使用哪种方法,关键是要保持代码的一致性和可读性。

    1.5K20

    拯救烂怂代码?我是这么做的

    开启“类图”之旅 说到对系统代码中的模型梳理,其实最好的方式还是使用UML类图。...比较专业一点的说法:在软件工程中,类图是一种静态的结构图,描述了系统的类的集合,类的属性和类之间的关系,可以简化了人们对系统的理解;类图是系统分析和设计阶段的重要产物,是系统编码和测试的重要模型。...“_”: 下划线,表示当前的这个类的方法或者属性是静态的。 斜体:老猫这里没有画出来,这里其实表示的是抽象,当然有的时候也会用两个尖括号包裹来表示抽象,我是抽象类or接口>>。...写在最后 为了让小猫更好地优化梳理烂怂代码,老猫花了好几个晚上整理出来了绘制的方法。其实无论是多么复杂的类,只要我们把握清楚其中的类图关系,然后再结合上一篇文章中的业务模型对照起来一起看,就很清晰了。...我是老猫,资深研发老鸟,让我们一起聊聊技术,聊聊人生。 都看到这了,求个点赞、关注、在看三连呗,感谢支持。

    19510
    领券