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

167 天前
 Ainokiseki
校招生一枚,入职半年了,和 mentor 一起负责项目的某个模块,代码自然是两个人互相 review 。
mentor 之前在某大厂,看起来是比较资深的那种,再加上前期对项目不熟,小透明基本上是 mentor 说啥是啥。
review 的时候 mentor 的代码只要功能 ok 那就好,但是 mentor review 我的时候就有点不走心,有些地方没看懂就写 comment ,还有些地方我的设计本来 ok 的,他又要按他自己的习惯来改。
我理解这项目最开始是 mentor 写的,可能看着自己创造的东西被别人改来改去总会不舒服?至少我是无数次幻想着哪天 mentor 不在了我要把现在的代码按我的风格从头到尾重构一下 hhhh
可能 mentor 觉得我菜吧,但我觉得我只是经验不足,好歹哥们也是名校出来的,开发工作难度也就那样,要是功能缺陷那让我改我没话说,但只是代码习惯不一样就被要求改就很烦
12078 次点击
所在节点    程序员
152 条回复
liprais
167 天前
你才上班半年,当然是听 mentor 的
idealhs
167 天前
说这么多没用的,贴点代码上来就知道了
hahastudio
167 天前
代码风格这东西,只要是一样的基本就是好的
同一组里代码风格不一样才头疼
Ainokiseki
167 天前
@idealhs 我举个例子:某段代码要对数组中最后一个元素做特殊处理,我写的是:
```
for i:=range array{
if i==len(array)-1{
// do sth special
}
}
```
mentor 要我改成:
```
for i:=0;i<len(array-1);i++{
// do sth normal
}
// do sth special for array[len(array)-1]

```
lifei6671
167 天前
和是不是名校毕业的没关系,和公司制定的代码规范有关系,只要有规范,大家都按照规范来。如果没有规范,可以按照社区规范来。
Ainokiseki
167 天前
@Ainokiseki 这个我不知道 mentor 是真觉得下面那个好,还是一开始看错了,以为我只想处理最后一个元素,后来在我指出来之后强行挽尊。。
undeflife
167 天前
原来是 IfErrNotEqualNilLang 那还有啥风格好纠结的,反正怎么写都那么丑。

回到你上面的例子,都明确是最后一个了不在循环里去判断不是效率更高吗
kxct
167 天前
多层嵌套循环会让代码层次变得复杂。
你说只需要特殊处理最后一个元素为什么要遍历整个 array 。
Yuhyeong
167 天前
理解。
虽然是个例子,但是感觉正常开发中 OP 的写法相对少见一些。特殊处理放循环里每次都需要判别,可能放在正常操作外面会简洁明了很多?这样特殊处理和普通处理就是解耦的两个部分了。

同一个组里面代码风格不统一血压真的高,建议决斗哈哈。厂里面有统一的代码标准吗?
LeegoYih
167 天前
这个例子跟代码习惯没关系,是可读性的问题
Ainokiseki
167 天前
@kxct 但是其他元素也要处理的,可以类比成 oi 里面输出答案的时候,除了最后一个元素之外其他元素末尾都要加一个空格的场景,之前都是直接在循环里判断的
idealhs
167 天前
@Ainokiseki #5 我觉得 mentor 的明显好,如果你只想处理最后一个元素,循环中那么多的判断都是无意义的
Ainokiseki
167 天前
@Yuhyeong 小厂没有这么细的。。我找找 google 的 style 有没有关于这个的
k9982874
167 天前
什么时候懂得遵循即有项目中的规范继续开发,而不是上来就掀桌子,你就是一个成熟开发了
k9982874
167 天前
另外你给的例子,说明你的 mentor 更有经验,把不同的操作放到不同的代码 scope 里,不要写到一个大块里面
代码结构更清晰,后面如果有人接手更方便阅读理解。
kxct
167 天前
@Ainokiseki 那你 mentor 的修改和你是一个意思吧,代码嵌套层数少一点会比较好看。
aheadlead
167 天前
同投你 mentor 一票。。。你们这什么公司?挺有意思的
Ainokiseki
167 天前
好吧,看来大家都赞成 mentor 的方案,看来我还要再学习一个,也许我是太追求简洁忽视可读性了>_<
ScepterZ
167 天前
@Ainokiseki 他看错的原因我觉得能理解,因为他是在没想到你只处理最后一个居然要循环,自然以为是你循环处理别的东西了。说不好听的就是高估你的水平了
unclejock
167 天前
for in 是最简洁的,少点花里胡哨的语法糖

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

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

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

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

© 2021 V2EX