和 mentor 代码习惯不一样,好头痛

2023-11-23 11:00:07 +08:00
 Ainokiseki
校招生一枚,入职半年了,和 mentor 一起负责项目的某个模块,代码自然是两个人互相 review 。
mentor 之前在某大厂,看起来是比较资深的那种,再加上前期对项目不熟,小透明基本上是 mentor 说啥是啥。
review 的时候 mentor 的代码只要功能 ok 那就好,但是 mentor review 我的时候就有点不走心,有些地方没看懂就写 comment ,还有些地方我的设计本来 ok 的,他又要按他自己的习惯来改。
我理解这项目最开始是 mentor 写的,可能看着自己创造的东西被别人改来改去总会不舒服?至少我是无数次幻想着哪天 mentor 不在了我要把现在的代码按我的风格从头到尾重构一下 hhhh
可能 mentor 觉得我菜吧,但我觉得我只是经验不足,好歹哥们也是名校出来的,开发工作难度也就那样,要是功能缺陷那让我改我没话说,但只是代码习惯不一样就被要求改就很烦
19209 次点击
所在节点    程序员
152 条回复
huangliu
2023-11-23 16:30:25 +08:00
看到大家都觉得你 mentor 的写法更好,我就放心了
你要相信能做你 mentor 是有原因的
forgottenPerson
2023-11-23 16:39:00 +08:00
刚毕业,想独当一面大家都能理解,但是有些编程思路真地值得好好学习,以及一些场景怎么去做,怎么去思考,你现在有这么个负责的负责人,得把握住机会,多向他指教,很多人没你这个机会的,都是直接开干,还要做其他事情,俗称打杂,并不是一直就写代码,能一直从事主职真挺不错的。

比如一个判断,只要一个元素根据条件不满足,就返回,一般的思路是先去循环判断这个不满足的条件,而不是在循环里去逐一比较满足的条件
windshadow
2023-11-23 16:40:04 +08:00
再怎么名校,进到企业也都是菜鸡,不要太高估自己。
ansnail
2023-11-23 16:41:29 +08:00
刚工作的小伙伴貌似都觉得把代码写简洁就是最牛 B 的,但工作多年的感觉是除非你是单打独斗,否则代码的可读性永远是第一位的,特别是在团队中,当然了基本的效率还是要有的
zhdi
2023-11-23 16:50:41 +08:00
就你举的这栗子。。。循环里放 if ,每次循环都 if 一下,你还觉得是代码习惯问题?
大概测试了一下,没有缓存的情况下后一段是前一段时间的 400%,有缓存的情况下是 200%,所以这叫代码习惯?这叫你不懂底层还不愿意学习。。
F1reman
2023-11-23 16:53:21 +08:00
且不说上面说的什么分支预测你能不能理解
你这两段代码运行起来 debug 一下,你就能知道你 debug 每一次都要多按一下了
ArianX
2023-11-23 16:56:03 +08:00
mentor 的代码确实好一些啊,简洁性可读性性能都会好一些
runzekk
2023-11-23 16:59:44 +08:00
不要有自己的风格。

一个项目同一个风格才是最屌的。

不要刚开始就形成了自己的风格了,风格这个东西没有好坏,一定要和之前的保持一致。
sechi
2023-11-23 17:08:26 +08:00
too young, too simple, sometimes naive
candidcrat
2023-11-23 17:15:01 +08:00
这和代码风格没有关系吧, 这个例子, 功能要分开, 要我写两个写单独方法, 杂糅在一起是不好的
cooooorn
2023-11-23 17:17:17 +08:00
看你的代码,对这个数组的所有元素其实都先做了处理,然后对最后一个元素做了特殊处理,那这个特殊处理完全可以拿到循环的外面来做吧,根本不需要放在循环里:
for i:=range array{
// do sth normal to array[i]
}
// do sth special to array[len(array)-1]
fulvaz
2023-11-23 17:20:39 +08:00
你 mentor 没错,听他的
oceana
2023-11-23 17:35:13 +08:00
你 mentor 没错,一是没有无效循环,二是分开两块逻辑
momogzp
2023-11-23 18:02:27 +08:00
站你 mentor, 代码是写给人看的. 可维护也是非常重要的一部分.
你代码的可维护性就没你 mentor 的好, 更不用说其中可能存在的性能损耗了.

学吧, 学无止境. 太深了.jpg
DefoliationM
2023-11-23 18:15:09 +08:00
第二个好,尽量减少逻辑嵌套,第二个可以直接把 for 嵌套 if 去掉,显然第二个好。
Huelse
2023-11-23 18:21:21 +08:00
不管如何学习期间请先尊重 mentor ,如果你觉得难受就想如果有错也是 mentor 的锅,等你自己能独立完成项目了再按自己的想法来。
总得来说就是先学习后创改进,不要自作主张,哪怕你真的是天才。
houshuu
2023-11-23 18:21:38 +08:00
就这个范例来说, 我觉得第二个好.
上下两个逻辑分的越开越清晰.
Baoni
2023-11-23 18:23:21 +08:00
代码真看不出好坏的话,应该是品味有问题。
我才是惨,我觉得我之前的 mentor 是你这样的,能跑就行的心态还看不上别人的修改,甚至有时不能跑,一看里面一堆 bug ,辛辛苦苦帮改了,他还讲其实是小 bug 。不过自信心和吹牛能力是真的强,说话官场味十足。
多希望能和你换个 mentor 。4 赢。
vacuitym
2023-11-23 18:23:51 +08:00
我觉得第二个明显更好,第一个判断要执行 len-1 次
43n5Z6GyW39943pj
2023-11-23 18:24:41 +08:00
有大佬带你,好好学

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

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

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

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

© 2021 V2EX