[为什么要抱怨同事代码很差]

2021-09-03 18:27:16 +08:00
 Macklemore

以前刚开始工作的时候,天天被公司的 leader 嘲讽代码质量差,健壮性不强,也被公司的老鸟嘲讽很菜。

经历过一番历练,渐渐有了提高代码质量的意识。

换了一家公司后,公司里面还是有我之前以为的“大牛”,老大哥行为处事很“高调”,到处找人“改代码”,批评别人这里不对,那里不对,我承认他的代码水平很高,能解决很多问题。

技术上的问题,确实值得佩服,但是真正震撼我的是“精神”,一种很难去定义的“精神”。

公司里有一位搞嵌入式和图像处理的老工程师(所以他是写 C/C++的),之前跟他交流不多,他为人也很低调,他基本上一直沉浸在自己的代码世界里。

直到有一次,有个项目,我跟老工程师要互相调用自己写的模块,他代码确实写的很好,但是让我佩服他的是他的“适应能力”。

公司也没有一个统一的说明文件,必须要用哪一个代码标准。举个最简单的例子,就好像他习惯了

if(){

}

而我因为习惯了 VS 的 IDE,也写过一段时间的 C#,所以一直都喜欢下面这种写法

if()
{

}

而他在用我的“编码规范”下,(有些是我自己都觉得烂),他依然很迅速的适应了我的写法,按照我的习惯,快速且成功的写完了需求。如果是“老大哥”,可能会把我的代码先改一遍,然后批评我这里不对,那里不对。

说实话,我真的很惭愧,老工程师从来不抱怨别人的代码,怎么样思维混乱,怎么样命名不规范,怎么样性能差,虽然他也有自己的习惯,但是不至于“强迫症”到让人必须像他那样写,也不重新打乱别人写完的代码,而是以工作为主,快速适应。

由衷的佩服他,佩服他的纯粹,不多说什么,只是默默地写代码,完成需求。

6508 次点击
所在节点    程序员
53 条回复
LemonK
2021-09-03 21:01:18 +08:00
感觉代码风格和合住的公共卫生很像。
卫生习惯差肯定不对,但合住的人都不介意,就不是什么大问题。
都爱干净当然更好。最麻烦的是一部分人介意,另一部分人无所谓。
至于爱干净那个,是自己默默迁就,主动打扫,还是天天在室友耳边唠叨,还是跟外人抱怨,看个人性格。
也不排除有些人并不是多爱干净,只是爱抓住一切机会教训人。
Biwood
2021-09-03 21:19:57 +08:00
真正的软件开发人员的专业是,既不是你去适应老大哥,也不是让别人适应你,而是你们共同遵守一套规范和标准,目的是保证高效协作以及代码的可维护性,这是团队协作所必须的契约精神,他比任何个人的小情绪更重要。

纵观那些优秀的开源项目,哪个不是严格遵守一套规范去维护和贡献代码的,如果仅凭个人意愿在这种事情上东拉西扯,那项目更本无法长期进行下去。
aliveyang
2021-09-03 21:42:40 +08:00
文不对题
799635347
2021-09-03 21:51:00 +08:00
[为什么代码写得差还不给吐槽]
Vegetable
2021-09-03 21:53:12 +08:00
你对代码差的理解和我不太一样
if () return
if () { return }
if (a > b) {return true}

前两个算是风格问题,那第三个呢?
Cielsky
2021-09-03 22:15:53 +08:00
代码风格和烂不烂有啥关系啊。
WilliamYang
2021-09-03 23:41:08 +08:00
如果代码烂就要认,没必要批评比你做的好的人
20015jjw
2021-09-04 00:37:57 +08:00
心疼 lz 没用过 lint
真正的强者应该写 lint rule
cassyfar
2021-09-04 02:07:04 +08:00
这个在 lint 普及前我也会指出的。还包括命名,缩进等等。现在有 lint 了,大多都自动处理了。
swim2sun
2021-09-04 03:11:37 +08:00
这不是我理解的“代码风格”…
freakxx
2021-09-04 03:19:08 +08:00
。。。这他妈把我看呆了

我觉得很多时候,把几个事情揉在一起是一个很有趣的事。

我感觉是

- 技术强是好的;
- 帮助别人是好的;
- 恃才傲物是不好的;
- 知错不改是不好的;

但是这里通过某种逻辑嫁接,把跟着吃屎(如果真的是不好的东西)当做是对的,那这个事情本身就是很傻逼的事情;



===========

又,规范的东西,不是通过人主观的约束,而是通过工具来实现;


===========

又,很多时候,写代码的洁癖是看情况的,大家都知道吃屎是不对的,偶尔不得不吃屎的时候,应该明白有时屎在某种程度上是可以避免的。
而不是纵容自己,吃屎习惯就好。

很多时候防御性编程是必要的,这是为了保护好的代码,不是为了洁身自好。
人掏粪的时候戴手套是好的。
catror
2021-09-04 03:22:20 +08:00
修改现有模块,沿用原有的代码规范。这本身就是代码规范中应该有的一项。
ryd994
2021-09-04 04:29:56 +08:00
@Vegetable 第三个实际上也是代码风格的问题。编译器早就给你优化掉了。
顺手就改掉了,没必要去说别人。
dayeye2006199
2021-09-04 06:03:45 +08:00
LZ 了解一下 linter 和 formatter 。做这个真的不费劲。想适配什么风格就能什么风格。
jackmod
2021-09-04 08:30:06 +08:00
那啥,修改代码要保证最少,这样版本控制在 diff 的时候才能一目了然。修改原有格式就乱套了。
tong911115a
2021-09-04 08:40:16 +08:00
我一般不会主动去帮别人改,技术强也好,在工作范围内是有边界的,也许你的帮忙让别人很烦。
除非是别人明确需要帮忙 or 自己主导的项目才会提建议,都是打工人而已。
NonClockworkChen
2021-09-04 09:39:08 +08:00
其实你还要从这么个角度考虑,老工程师可能只是为了尽快为了配合你完成这个任务,那么过多的说教对他来说是吃力不讨好的事情,有些事情也不是短时间能搞定的,可允许的范围,没必要死扣。
至于你的那些技术大拿,技术可能性,但是培训人的能力欠缺,只会怼人的领导,也只能管几个人,人管多了,项目就会炸。
TUNGH
2021-09-04 09:47:15 +08:00
前同事的代码层层嵌套,过度包装,离职我来改,恶心死我了,真滴晦气
ipcjs
2021-09-04 09:55:52 +08:00
团队合作的第一步不就是统一编码规范&风格?
way2create
2021-09-04 10:11:26 +08:00
我是非常讨厌那种图自己省事的烂摊子

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/799735

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX