新人程序员接手丑陋的老代码怎么办?改还是不改......

许多小伙伴在初入职场的时候,都会遇到要接手老代码的情况,那么问题来了,如果老代码十分丑陋,你是改还是不改?

不改吧,心里难受;改吧,指不定会遇到什么情况,比如……

1.“谁动了我代码?!”

不声不响地修改同事的代码,很可能招来一顿怒火。毕竟代码逻辑是人家写的,你擅自修改却没有事先沟通,谁都会不高兴。

2.“当事人现在就是后悔……”

当你接手新需求,却发现之前被你嫌弃的代码竟然有妙用,悔不当初也没用,绩效可能因此受损。

3.“这代码谁改的?出来挨打!”

即使只是简单的代码格式化,修改记录也会留下你的名字。一旦代码出现问题,你很可能成为第一个被问责的对象。

那么,面对这种情况,到底应该怎么办呢?

代码能跑就不要动

01

如果代码已经稳定运行多年,没有出现重大问题,那就不要轻易改动。毕竟,“存在即合理”,贸然修改可能会引入新的风险。

在软件开发中,稳定性和可靠性永远是第一位的。不要为了追求代码的“完美”而牺牲系统的稳定性,更不要低估了老代码的价值。

代码强迫症不要强加于别人

02

在很多情况下,我们可能会觉得他人的代码不够优雅或者封装不足。然而,你眼中的“垃圾代码”,也许是别人在时间紧迫、需求多变的情况下赶工出来的“救命稻草”。

如果领导突然提出一个紧急需求,要求你当天完成,第二天又要求你进行修改并增加新功能,你可能会发现自己在压力下难以实现理想的封装。

在这种情况下,你所想到的封装可能只是你在没有压力、没有频繁迭代需求时冷静思考的结果。

新增代码,尽量保持风格一致

03

在老项目中添加新功能时,尽量遵循原有的代码风格和逻辑。

例如在修改一个老项目时,项目中使用了公司自定的一套SQL处理逻辑。在这种情况下,我们不能为了追求“高大上”而强行引入新的框架或工具,这样可能会增加团队的学习成本和项目风险。

相反,我们应该努力适应并利用现有的工具和方法,以确保代码的一致性和项目的顺利进行。通过这种方式,我可以更好地融入团队,同时保持项目的稳定性和可维护性。

尊重他人代码风格

04

每个人的编程风格都有所不同,这很正常。在编程领域,并没有绝对的“最佳”代码标准,只有更适合当前项目需求和团队协作环境的代码。

有时候,代码的某些部分可能仅仅是反映了个人的偏好或风格,而这些差异并不会影响到公司的收益。

在团队中,尊重并接受不同的代码风格可以减少不必要的工作量,避免因代码风格问题引发的争论,从而有助于促进同事间的友好关系和团队合作。

沟通至上

05

在职场中,尊重他人的工作成果是非常重要的。如果有人未经同意就批评或修改你的代码,即使他们的建议是正确的,你心里都十分不好受。

如果确实需要修改同事的代码,一定要事先沟通,说明原因,并征求对方的意见。可以尝试这样说:“xx哥,我这边有个需求需要改动你写的这部分代码,你能帮我看看吗?你觉得这样改合适吗?”

尊重是相互的,你尊重别人的代码,别人也会尊重你的想法。

如何处理老代码,与其说这是一个技术问题,不如说更像是一道职场选择题。沟通永远是解决问题的良药。尊重他人,保持谦逊,才能在团队中共同进步。

最后,希望大家都能遇到与自己志同道合的同事一起快乐的开发~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39034.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【嫦娥四号】月球着陆器中子和剂量测量(LND)实验

一、引言 嫦娥四号任务是中国月球探测计划的重要里程碑,实现了人类首次在月球背面软着陆,并展开了月面巡视和中继通信。本文所描述的嫦娥四号着陆器上的中子与剂量测定实验(Lunar Lander Neutrons and Dosimetry Experiment, LND&#xff09…

【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【17】认证服务01

持续学习&持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【17】认证服务01 环境搭建验证码倒计时短信服务邮件服务验证码短信形式:邮件形式: 异常机制MD5参考 环境搭建 C:\Windows\System32\drivers\etc\hosts 192.168.…

JAVA每日作业day7.1-7.3小总结

ok了家人们前几天学了一些知识,接下来一起看看吧 一.API Java 的 API ( API: Application( 应用 ) Programming( 程序 ) Interface(接口 ) ) Java API 就是 JDK 中提供给我们使用的类,这些类将底层 的代码实现封装了起来&#x…

【echarts】拖拽滑块dataZoom-slider自定义样式,简单适配移动端

电脑端 移动端 代码片段 dataZoom: [{type: inside,start: 0,end: 100},{type: slider,backgroundColor: #F2F5F9,fillerColor: #BFCCE3,height: 13, // 设置slider的高度为15start: 0,end: 100,right: 60,left: 60,bottom: 15,handleIcon:path://M30.9,53.2C16.8,53.2,5.3,41.…

Linux源码阅读笔记12-RCU案例分析

在之前的文章中我们已经了解了RCU机制的原理和Linux的内核源码,这里我们要根据RCU机制写一个demo来展示他应该如何使用。 RCU机制的原理 RCU(全称为Read-Copy-Update),它记录所有指向共享数据的指针的使用者,当要修改构想数据时&…

不要把面子太当回事

新手拍短视频真人出镜,会觉得拍视频不自然怎么办?感觉自己好傻。 其实不要把面子太当回事,坚持不把面子太当回事,反正刚开始也没人看。这是真的事实,大家都非常忙,在你身上停留的时间就几秒钟。不要在脑海…

systemctl命令使用

systemctl 作用:可以控制软件(服务)的启动、关闭、开机自启动 系统内置服务均可被systemctl控制第三方软件,如果自动注册了可以被systemctl控制第三方软件,如果没有自动注册,可以手动注册 语法 systemct…

企业出海如何应对国际差旅报销的复杂性?

在全球化浪潮的推动下,越来越多的中国企业开始迈向国际市场。然而,企业在“走出去”的过程中不仅面临新的商机,也需要克服诸多挑战。尤其是国际差旅报销的复杂性,成为出海企业必须解决的重要问题。 国际差旅报销的四大挑战 多元…

【分布式数据仓库Hive】常见问题及解决办法

目录 一、启动hive时发现log4j版本和hadoop的版本有冲突 解决办法:删除hive下高版本的slf4j 二、启动hive报错 Exception in thread "main" java.lang.NoSuchMethodError:com.google.common.base.Preconditions.checkArgument(ZLjava/lang/Object;)V …

postgres数据库的流复制

1. 流复制和逻辑复制的差异 逻辑复制和流复制最直观的不同是,逻辑复制支持表级别复制区分点事原理不同 逻辑日志是在wal日志产生的数据库上,由逻辑解析模块对wal日志进行初步的解析,解析结果是ReorderBufferChange(理解为HeapTup…

干货分享|如何将前端代理服务器(BFF)接入身份认证(3完结篇)

续集3 前篇文章在前面发布,同学们可以自行找一下。 本篇文章将继续通过实例来详细讲解如何将前端代理服务器(BFF)接入身份认证。我们将使用一个示例应用来演示 BFF 与身份认证的集成过程。 3 在 Full BFF 中接入认证平台 本小节将介绍如何…

Raylib 坐标系适应与GPU绘制参数

通过750 - 鼠标坐标&#xff0c;把原点在左上角的鼠标坐标变成左下角 实现输入数据后的坐标系同GPU原点在左下角坐标相同&#xff0c; 比数组0&#xff0c;0对应左上角好&#xff0c; 此时实际上数组0&#xff0c;0对应左下角 #include <raylib.h> // 感受&#xff1a…

【SpringBoot配置文件读取】无法读取yaml文件中文字符

1. yaml配置文件 注意要将该文件编码格式改为UTF-8 spring:application:name: 好好学习admin:name: 李斯age: 24books:- name: 数据结构desc: 数据书- name: 编译原理desc: 编译书2.配置实体类 Data设置get&#xff0c;set方法Component注册为BeanConfigurationProperties(p…

开发者聊科学作息时间表

非常有幸对科学作息时间表app的开发者做一次采访。 问&#xff1a;你对科学作息时间表app满意么&#xff1f; 答&#xff1a;非常不满意&#xff0c;我们的设想是让他更智能&#xff0c;更多的提醒方式&#xff0c;更好的交互体验。如果作为一个闹钟他是非常不合格的&#xff0…

R可视化数据必要格式——长格式

一、引言 我们在对数据进行可视化时遇到最头疼、最常见的问题是什么&#xff1f;数据问题。 因为我们往往不会从零自己编程进行可视化&#xff0c;往往是现有模板或积累&#xff0c;而正确的数据格式对应正确的图形包要求&#xff0c;一定会正确出图&#xff0c;所以只有一个问…

调试 hipcc 的llvm llc gpu目标代码生成模块

源码&#xff1a; hello_vectorAdd.hip: __global__ void vectorAdd(const float *A, const float *B, float *C) {int i blockDim.x * blockIdx.x threadIdx.x;C[i] A[i] B[i] 0.0f; } Makefile: x.O1.s: hello_vectorAdd.hip../../local_amdgpu/bin/clang ./hello_vec…

力扣hot100-普通数组2

文章目录 题目&#xff1a;轮转数组方法1-使用额外的数组方法2-三次反转数组 除自身以外数组的乘积方法1-用到了除法方法2-前后缀乘积法 题目&#xff1a;轮转数组 原题链接&#xff1a;轮转数组 方法1-使用额外的数组 方法1是自己写出来的。方法2参考的别人的&#xff0c;…

AttackGen:一款基于LLM的网络安全事件响应测试工具

关于AttackGen AttackGen是一款功能强大的网络安全事件响应测试工具&#xff0c;该工具利用了大语言模型和MITRE ATT&CK框架的强大功能&#xff0c;并且能够根据研究人员选择的威胁行为组织以及自己组织的详细信息生成定制化的事件响应场景。 功能介绍 1、根据所选的威胁行…

【MindSpore学习打卡】应用实践-计算机视觉-FCN图像语义分割-基于MindSpore实现FCN-8s进行图像语义分割的教程

图像语义分割是计算机视觉领域中的一个重要任务&#xff0c;它旨在对图像中的每个像素进行分类&#xff0c;从而实现对图像内容的详细理解。在众多图像语义分割算法中&#xff0c;全卷积网络&#xff08;Fully Convolutional Networks, FCN&#xff09;因其端到端的训练方式和高…

7.7、指针和函数

代码 #include <iostream> using namespace std;//实现两个数字进行交换 void swap01(int a, int b) {int temp a;a b;b temp;cout << "swap01a " << a << endl;cout << "swap01b " << b << endl; }void sw…