工作过程中难免会涉及到修改或维护别人写的代码,如:代码原作者请假,离职,或相关的bug落到了你的头上,或用别人写的通用方法不爽时。
如果碰到修改别人的代码时,需要注意哪些事项呢?
1)和原作者沟通:当用到了他人写的通用方法,又感觉不爽时。如果原作者还在,最好先沟通好,说明你的需求,尽量让原作者自己来改,切忌事先改好,再对原作者指指点点,一方面,你可能改出来不符合原作者思路,另一方面,可能心情会很不愉快。
2)保持原作者代码风格:如果要修改的这块代码结构比较良好,逻辑清晰,修改时最好保持原作者风格,如花括弧在左,你也在左,花括弧另起一行,你也另起一行,变量,方法等都保持风格一致,这不仅是对原作者的尊重,也能保持被修改模块的结构和整体性,如果每个人都按自己不同风格改同一模块,那看起来会非常糟糕。
3)加好注释:这个不用多说,这是应有的职业素养。
4)必要时重构:如果他人的模块全权移交给你来负责了,代码结构不是特别清晰,原作者也不管了,或不在了,与其修修补补,不如干脆直接重构,以后维护起来,会非常容易。
5)代码隔离:如果是紧急修复他人代码的bug,要做到代码隔离,意思就是新加的代码与原代码隔离开来,常用的就是用if语句隔离,虽然这样可能导致代码看起来不好看,但在紧急修复时会非常有用,一般不会引起额外bug,等时间允许可以酌情进行重构,充分测试。
总之,就是要认真,审慎的修改别人代码,同时带着尊敬之心。
相关推荐
Zynq-PS-SDK(12) 之 VDMA+VTC+AXI4S-VideoOut 视频通路硬件搭建
前面分别叙述了《Zynq-PS-SDK(9) 之 VDMA》、《Zynq-PS-SDK(10) 之 VTC》以及《Zynq-PS-SDK(11) 之 AXI4-Stream To Video Out》;搭建一个简单的视频通路(Framebuffer -> HDMI)就要用到这些个模块,总体的设计框图如下所示: 视频数据的 Framebuffer 在 DDR 中,通过 Processing System 写入进去; 数据通过高带宽的 AXI4 接口(这里用到了 HP AXI,即 64bits 带
✅从52%到5%‼️毕业论文怎么修改别人的
大家好,今天来聊聊毕业论文怎么修改别人的,希望能给大家提供一点参考。修改别人的毕业论文是不道德和不合法的行为。毕业论文是个人学术成果,应该由本人负责,不应该由他人代写或修改。
ContextCapture导入点云进行重建
ContextCapture导入点云进行重建
如何优雅地修改同事的代码
在实际的开发过程中,我们很难保证一个业务从头到尾都是自己开发的,我们不得不经常面对修改同事的**代码,本人就因为修改同事的**代码而心烦意乱,直拍桌子,最后被3个领导叫到小办公室训话1小时(是3个领导各训话1小时)。当然,我不是对同事不满,大家都是从最初级的阶段走过来的,他的能力在这个阶段就是这个水准,这是避免不了的。不过工作还要继续,我们要对自己的工作负责任。我只是对自己不满,如果我能找到一种优雅的方式,在不对他的代码进行过多调整的情况下完成需求的开发就好了。
二阶FLL辅助三阶PLL环路的代码解读
今天对GNSS接收机里面的载波跟踪环路代码进行了解读 以下是个人的一点见解 % 载波环第二步:环路滤波器 二阶FLL辅助三阶PLL环路 carrLoopS0 = lastCarrLoopS0 + (phaseErr*tau0PLL + freqErr*tau1FLL) * PDIcarr; carrLoopS1 = lastCarrLoopS1 + (tau1PLL*phaseErr + carrLoopS0 + tau2FLL*freqErr) * PD
保姆级教程:在K230开发板上为张大头步进电机实现位置、速度、回零全功能控制
本文提供了一份详细的K230开发板与张大头步进电机的控制教程,涵盖硬件连接、协议解析、模块化代码实现及实战案例。通过位置、速度和回零功能的全面讲解,帮助开发者快速掌握步进电机的高级控制技术,适用于自动化、机器人等应用场景。
代码规范七大原则_通过简单代码示例了解七大软件设计原则
代码设计原则是我们平时编码时候的代码规范建议良好的代码设计可以很大程度降低维护和功能扩展的成本代价但是代码设计原则应该是我们尽量遵循和考虑的规范并不是一定要求所有代码都遵循设计原则我们要考虑人力、时间、成本、质量,不是刻意追求完美要在适当的场景遵循设计原则帮助我们设计出更加优雅的代码结构有些原则之间是相辅相成的有些可能会有一些冲突的地方就像我们代码的注释或者开发文档某种程度上是会影响开发...
基于哈夫曼编码的图像加密算法matlab仿真
哈夫曼编码是一种常用的无损数据压缩算法,其基本思想是根据字符出现的频率构造一棵哈夫曼树,将出现频率高的字符编码为短码,出现频率低的字符编码为长码,从而实现数据的压缩。在图像加密领域,哈夫曼编码也被广泛应用于图像加密算法中,基于哈夫曼编码的图像加密算法具有加密速度快、加密强度高等优点。基于哈夫曼编码的图像加密算法的基本思路是将待加密的图像分为多个小块,对每个小块进行哈夫曼编码,然后将哈夫曼编码后的结果进行异或运算,最后将异或运算后的结果重新编码,以实现图像加密。具体步骤如下:将待加密的图像分成多个小块。
毕业设计之接手别人的代码
总结: 从别人原有的代码基础上,在进行功能的添加和修改时(尤其是修改),一定要采用注释原有代码,而不是在原有的代码上直接修改。原因:一旦自已的代码出错,就会不好修改了。 转载于:https://blog.51cto.com/7676682/1393597...
【2025年华为秋招(AI)-11月19日-第二题(200分)- 终端款型聚类识别】(题目+思路+Java&C++&Python解析+在线测试)
该摘要总结了题目要求、输入输出格式、KMeans算法的实现步骤以及关键点。以下是150字内的摘要: 本文提出基于KMeans算法对终端型号进行聚类的方法。通过包间隔时长、连接持续时长、漫游前后信号强度4个特征,使用欧氏距离度量相似度。算法采用固定初始化策略(前k个样本作为初始质心),经过分配-更新迭代,直至质心移动小于1e-8或达到最大迭代次数。最终输出各簇样本数并按升序排列,解决了终端型号自动分类问题。示例显示该方法能有效识别3-4类终端,并准确统计每类数量。
化工设计软件:PDMS二次开发_(7).数据导入与导出技术
在某些复杂场景下,PDMS提供的标准API接口可能无法满足需求。此时,可以通过自定义API接口来实现特定的数据导入与导出功能。自定义设备导入API接口可以处理更复杂的设备数据格式。# 导入必要的库import pdms_api # 假设有一个PDMS API库# 定义自定义设备数据# 自定义设备导入API接口# 调用自定义设备导入API接口# 输出导入成功的消息print("自定义设备数据导入成功")在PDMS二次开发中,数据的导入与导出是关键的技术环节。
写代码难还是改别人的代码难?
很多刚入行的同学,天真地以为程序员的工作就是写自己喜欢的代码,用自己喜欢的框架,遵循自己喜欢的逻辑,一行行漂亮优雅的代码在屏幕上流淌……然而,等你真正上了项目才发现:你的主要工作并不是写代码,而是改代码,还是别人写的代码!**写代码和改代码,哪个更难?**写代码考验的是你的创造力和技术能力,而改代码考验的是你的耐心、理解力,以及对团队协作的态度。更离谱的是,有人注释里写着“此处不可修改”,但没写为啥不可改,结果你硬着头皮改了,项目直接爆炸。毕竟,你今天改别人的代码,可能就是在为明天别人改你的代码积德。
锂电池充电器电路设计 里面有电路
锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。
如何修改代码又不违背开闭原则呢?看这里
前言 看了前一篇重构之后的代码,你可能还会有疑问: 在添加新的告警逻辑时,改动二(添加新的 handler 类)是基于扩展而非修改的方式来完成的,但改动一、三、四貌似不是基于扩展而是基于修改的方式来完成的, 那改动一、三、四不就违背了开闭原则吗? public class Alert { // 代码未改动... } public class ApiStatInfo {// 省略 constructor/getter/setter 方法 private String api; priva
ssm框架搭建
这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
开闭原则 -- 不修改原有代码,进行扩展
开闭原则是面向对象的可复用设计的第一块基石,它是最重要的面向对象设计原则。开闭原则由Bertrand Meyer于1988年提出,其定义如下: 开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭。即软件实体应尽量在不修改原有代码的情况下进行扩展。 在开闭原则的定义中,软件实体可以指一个软
迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)
迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)
谈一谈修改代码时加注释的原则和方法
暮鼓集 行走集 原作于2008年06月01日,软件部培训稿 我们修改代码时少不了要加一些注释,这基本的原则是“言简意赅”,只要做到大家能看懂,在版本比较工具(BC及VSS)中能一目了然,这就可以了。 下面介绍一些方法供大家参考: 为某一项目或者某一MACRO配置而添加的代码 #if defined(__PROJECT_A__) // Add by XXX, YYYY-MM-D...
暂定的移植修改代码原则
不删除原来的代码 统一用宏linux来隔开增加的代码,格式如下 #if defined(linux) //new code #else //old code #endif 修改头文件大小写部分,直接修改,而不采用2中所示的方法。 所有的修改记入changelist。 转载于:https://www.cnblogs.com/sig3/p/40...
设计模式 开闭原则:对扩展开发,对修改关闭,增加功能是通过增加代码实现,而不是去修改源代码
开闭原则:对扩展开发,对修改关闭,增加功能是通过增加代码实现,而不是去修改源代码 class Caculaor { public: Caculaor(int a,int b,string operator) { this->m_a; this->m_b; this->m_operator=operator; ...
11丨软件设计的开闭原则:如何不修改代码却能实现需求变更?
在上篇文章讲到,软件设计应该为需求变更而设计,应该能够灵活、快速地满足需求变更的要求。优秀的程序员也应该欢迎需求变更,因为持续的需求变更意味着自己开发的软件保持活力,同时也意味着自己为需求变更而进行的设计有了用武之地,这样的话,技术和业务都进入了良性循环。但是需求变更就意味着原来开发的功能需要改变,也意味着程序需要改变。如果是通过修改程序代码实现需求变更,那么代码一定会在不断修改的过程中变得面目全非,这也意味着代码的腐坏。有没有办法不修改代码却能实现需求变更呢?
设计模式01-减少修改代码的开闭原则
文章目录一、开闭原则概念二、例子 一、开闭原则概念 开闭原则:对扩展开放,对修改关闭 增加功能应该是增加代码而不应该是修改代码 二、例子 #include <iostream> #include <string> using namespace std; class Calculator { public: Calculator(int a, int b, string how2operator) { this->_a = a; this->_b =.
AI Agent自动改代码后为什么经常“改过头”?任务边界、影响范围与最小修改原则解析
AI Agent修一个小问题,为什么经常最后改出一个巨大Diff?本文从任务边界、公共模块、最小修改原则、可选优化和影响范围控制等方面,解析Agent自动改代码时最容易出现的“修改过度”问题。
CTO是如何写代码的,对扩展开放,对修改封闭原则 开发封闭原则
父类 public abstract class GeneralChannelRule { public abstract void process(); } 枚举类,只需要增加 import javax.print.attribute.standard.Sides; public enum ChannelRuleEnum { /** * 头条 */ TOUTIAO("TOUTIAO",new TouTiaoChannelRule()), ...
遵循开闭原则时,新增功能通过扩展(如新增类、实现接口)完成,不修改原有代码,避免因改动引入新bug
3. **依赖倒置原则** - 正确:依赖抽象(接口/抽象类),不依赖具体实现。 - 错误示例:在订单类中直接new一个具体的微信支付类,而非依赖支付接口。 4. **高内聚低耦合** - 正确:模块内部功能紧密相关(高内聚),模块间依赖尽可能少(低耦合)。 - 错误示例:将用户登录、商品库存、订单生成逻辑都写在一个“工具类”中。
JavaScript-在不修改程序源代码增加新功能(开放-封闭原则)
在我们工作中经常会遇到一些“祖传代码“要我们接手,在还没熟悉的时候突然有了新的需求,比如在一个testLoad函数中打印出所有节点的数量。这个难不倒我们,打开编辑器,搜索出 testLoad函数在的文件中的位置,在函数内部添加以下代码: testLoad = function () { // 此处省略代码 console.log('源函数的操作内容'); // 新增操作代码 console.log('输出所有节点数量', document.getElementsByTagName('*').
【设计模式之美】SOLID 原则之二:开闭原则方法论、开闭原则如何取舍
【设计模式之美】开闭原则方法论、开闭原则如何取舍
开闭原则--设计模式
这样的话对我们在实现了相关的功能之后对于后期进行相关的维护的时候,是十分的不方便的之后我们在后期进行相关的功能的进行相应的添加的时候,这个时候对于我们这个类中所实现的相关的方法就变的越来越庞大,使得我们这个代码的可读性和可修改性变得十分的糟糕。在开发实现相关的代码的过程中,我们可以去使用这个ArrayList去实现我们的相关的功能,但是为什么我编写代码的习惯却是使用。其实这样的代码把相关的实现功能做成了一个个的相关的接口,这样就会使得我们的方法在街口调用之后进行这个生成和重写,更加灵活。
开闭原则
目录一、什么是开闭原则二、不符合示例1.UML图2.代码3.分析三、改进1. UML图2. 代码3. 分析四. 作用1. 对软件测试的影响2. 可以提高代码的可复用性3. 可以提高软件的可维护性 一、什么是开闭原则 开闭原则(Open Closed Principle,OCP)由勃兰特·梅耶(Bertrand Meyer)提出,他在 1988 年的著作《面向对象软件构造》(Object Oriented Software Construction)中提出:软件实体应当对扩展开放,对修改关闭(Software
5593



被折叠的 条评论
为什么被折叠?



