已老实!公司的代码再也不敢乱改了!

开篇

大家好,我是聪。想必对于很多初入职场,心中怀着无限激情的兄弟们,对于接手老代码都会有很多愤慨,碰到同事的代码十分丑陋应不应该改!我也是这样,我相信有很多人同样有跟我一样的经历。满打满算实习 + 正式工作,我也敲了两年多代码,我今天来说说我自己的看法吧。

亲身经历

我第一次接手老代码的时候,映入我眼帘的就是侧边栏满页的黄色提示以及代码下面的众多黄色波浪线,以及提交代码时的提示,如下图:

我内心 OS:

1)大干一场,把黄色波浪线全干掉!

2)同事这写的也太不优雅了吧,改成我这样!

3)这代码怎么也没格式化,我来 Ctrl + Alt + L 格式化一波!

已老实,求放过

干掉黄色波浪线,将代码改 "优雅" 结局如下:

1)不声不吭动了同事代码,换来同事怒骂,毕竟人家逻辑写好,然后你按你想法来搞,也没有跟人家商量。

2)后续领导找你加需求,你发现原来之前的代码有妙用,你悔不当初,被扣绩效。

3)格式化后,在项目修改记录上面是你的修改,这代码出问题,负责人先来找你。

说说我的看法

代码能跑不要动

前几日我要在老项目中,新增一点小功能,在新增完功能后,我扫了一眼代码,发现有几处逻辑根本不会执行,比如:抛异常后,执行删除操作类似,我也不会去义愤填膺的去干掉这块代码,毕竟我想到一点!项目都跑七八年没出问题了,能跑就别动它。

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

前几日在某金看见了这样一个沸点:

这样的事情其实在小公司经常发生,你觉得它写的不优雅,封装少,可能是别人也有别人的难处,至少不能将自己想法强加于别人,比如领导突然来一个需求,跟你说今天你得完成,然后第二天这个需求,你要这样改、再给我加点新需求上去,你能想到的封装其实只是你冷静下来,而且没有近乎疯狂的迭代需求得到的想法,当你每天都要在原代码上面疯狂按照领导要求修改,可能你会有自己的看法。

新增代码,尽量不影响以前逻辑

新增代码的时候,尽量按照以前的规则逻辑来进行,比如我改的一个老项目,使用的公司自己写的一套 SQL 处理逻辑,我总不能说不行!我用不惯这个!我要用 MyBatis!!!!那真的直接被 T 出门口了。

尊重他人代码风格

每个人的代码风格都有所不同,这个很正常,不同厨师的老师教法不一样,做出的味道还不一样呢,没有最好的代码,只有更适合的代码,刚好我就有这样的例子:

我注入 Spring 依赖喜欢用构造注入、用 Lombook 的注解 @RequiredArgsConstructor 注入,我同事喜欢 @Autowired ,我能说他不准用这个吗,这个是人家的习惯,虽然 Spring 也不推荐使用这个,但改不改这个都不会影响公司收益,反而能少一件事情,促进同事友好关系,哈哈哈哈,我是这样认为的。

处理好同事之间的关系

哈哈哈哈这个真的就是人情事故了,你换位想象一下,如果你写的幸幸苦苦的代码,新来的同事或者实习生,来批评你的代码不规范,要 Diss 你,偷偷改你代码,就算他说的超级对,你心里都十分不好受,会想一万个理由去反驳。

我一般如果需求需要改动同事的代码,我会先虚心的向同事请求,xx哥,我这个需求要改动你这边的代码来配合一下,你来帮我一起看看,你这部分的代码这样改合理吗,或者你自己改下你自己的部分,然后我合并一下~ 谢谢 xx哥。

最后

希望大家都能遇到与自己志同道合的同事一起快乐的开发~,我经历的可能没有大家伙的多,大家如果还碰见因为改老代码发生的惨案,欢迎大家一起来分享,我也来跟大佬们学习一下~,最后最后!我是聪ζ希望可以跟大家一起学习,我的 Github:github.com/lhccong 如果里面有你感兴趣的项目不妨给我点个星星⭐和关注🔥,未来我还会持续写新的好玩的小项目。

相关推荐
小短腿的代码世界6 分钟前
Qt国际化深度解析:从源码到企业级多语言实践
java·数据库·qt
凌冰_16 分钟前
IDEA 集成Claude Code
java·ide
SXJR18 分钟前
Java中的Cross-Encoder模型解决方案
java·开发语言
不懒不懒19 分钟前
基于 Flask —— 异步任务处理接口服务
后端·python·flask
彦为君27 分钟前
JavaSE-11-BIO/NIO/AIO(多人聊天室)
java·开发语言·python·ai·nio
计算机安禾34 分钟前
【c++面向对象编程】第43篇:可变参数模板(C++11):优雅处理不定长参数
java·开发语言·c++
AI人工智能+电脑小能手42 分钟前
【大白话说Java面试题 第69题】【JVM篇】第29题:GC Roots 有哪些?
java·开发语言·jvm·面试
Xidaoapi44 分钟前
Python FastAPI性能优化实战:8个让你的API快3倍的技巧
后端·程序员
William Dawson1 小时前
【通俗易懂!Spring四大核心注解源码解读:@Configuration、@ComponentScan、@Import、@EnableXXX实战】
java·后端·spring
倚栏听风雨1 小时前
Mac 本地开发:用 Nginx 配置自定义域名代理到本地服务
后端