楼主: 匿名
跳转到指定楼层
上一主题 下一主题
收起左侧

[同事协作] 遇上一个对Code Quality 超级执着的组员,快被逼疯了,经验

   
全局:
匿名用户 发表于 2023-03-18 17:20:00
说真的你说的新人更confused的这个gap要怪只能怪美国只面刷题 那些前人总结下来的好的设计要么是可以让扩展/变更代码更容易 要么是避免你犯错(例如null,或者要改三个地方最后只改了两个导致不一
那为什么senior自己不一开始就遵守,要在新人出PR的时候才突然insist the highest standard呢?

再退一万步,前人总结那些规律的时候,市场有move得这么快吗?有CICD有agile甚至有网吗?微软时代刻光盘卖软件,一个feature有几年时间可以开发,现在有几天?当脚不适应鞋子的时候,是应该把脚砍小一点呢,还是换一双鞋子呢?
回复

使用道具 举报

全局:
匿名用户 发表于 2023-03-18 17:26:27
设计模式跟文档也不矛盾啊 设计模式写了以后加新功能修改功能都方便很多 例如写个10个if else还是改成了策略模式 差别还是打很多吧 而且你不要举极端例子 我不了解你那个项目 over engine
如果文中的tech lead有那个魄力,在维持code quality的同时为组员争取更多的时间,那我道歉。但根据我的经验,这种人除了内耗秀肌肉外,对上级对外组只会唯唯诺诺
回复

使用道具 举报

全局:
我觉得只要他的comment有道理就好,既是对自己的提高也防止未来出现bug让你有更大的麻烦。大部分的comments也不应该花费很长时间去改,并且随着你自己的提高很多东西自然就会注意到。但是如果有那种关于代码逻辑,实现方式的comments需要你花大量时间去改,说明你在design阶段并没有很全面地提前考虑周全,并且在design document里沟通清楚,不然你可以直接甩出你的design document说有意见早干啥去了?

评分

参与人数 1大米 +3 收起 理由
donnice + 3 很有用的信息!

查看全部评分

回复

使用道具 举报

地里匿名用户
🔗
匿名用户-9WB6J  | 添加认证 | 2023-3-19 10:54:52
本帖最后由 匿名 于 2023-3-18 20:20 编辑
donnice 发表于 2023-3-18 16:37
您是该senior本人?
.google  и
该senior曾经的同组同事(就是楼主现在在的这个组)。这种奇葩老板在的组我可扛不住, 早走了。 我对该楼主的建议是由于上面两级国人老板都是sb, 趁早换组/跳槽。 除非楼主特别能吹彩虹屁 还能吹到skip心里 (如何吹彩虹屁吹到skip心里, 楼主你可以参考跟 这个帖子里被喷的senior同期perf promo的那个4-5的国人小哥)。 要么就是楼主看看楼主自己能不能比他喷的那个senior小哥还强 (实话实说 这个帖子里被喷的那个senior小哥确实强)。不过即使他能比他喷的senior强, 我也建议换组, 换组好好换, promo速度可比这个组的promo速度快多了, 工作还比这个组轻松。

评分

参与人数 2大米 +2 收起 理由
kirkhusky + 1 赞一个
donnice + 1 赞一个

查看全部评分

回复

使用道具 举报

全局:
本帖最后由 idealmaster 于 2023-3-18 21:24 编辑
donnice 发表于 2023-03-18 17:17:23
关键是代码质量到底有没有标准?是clean code那本书里的吗?是自动代码审查能过吗?还是code reviewer说啥是啥呢?

我亲历过一个对code quality很高的组,结果一个很简单

设计模式就是一种工具,像你经历的显然是工具使用不当,但不能因为这样就否定工具,完全弃用吧。而且写代码目光不能只局限于当下,现在写得快,不代表以后别人方便扩展;现在多套一层接口,以后别人就可以直接拿来用,不用花时间再造个轮子。你现在闭着眼睛用的标准库和开源的工具,哪一个不是水平过硬的大佬们花时间精雕细琢出来的?
junior就是要趁还不用背负太多绩效压力的时候,养成好的代码习惯,到senior的时候,完全可以同时move fast + clean code。至于clean code才会造成屎山?你是气糊涂在说胡话了吧
回复

使用道具 举报

🔗
donnice 2023-3-19 13:13:11 | 只看该作者
全局:
本帖最后由 donnice 于 2023-3-19 13:23 编辑
idealmaster 发表于 2023-3-19 12:20
设计模式就是一种工具,像你经历的显然是工具使用不当,但不能因为这样就否定工具,完全弃用吧。而且写代 ...

我没有气糊涂啊。我就举个我碰到的例子吧,一个好好的小class,本地实现一下就可以了,就因为有另一个地方要复用,就要重构代码把那个独立抽出来,因为DRY。好嘛,该class在上层被initialize,然后有时候一个很深层的地方又要用一下,那时候写的早期的typescript,又没有Guice这样好的dependency injection。咋办?这个class得一层一层传下去。然后这期间很可能又改动了dependency chain,又要重构。然后别忘了,这些改动都涉及test要跟着改。最后一个很小的改动,涉及到十几二十个文件。期间要是哪个不长眼睛的check了代码,rebase冲突,抱歉一切重来。且不论这个engineering cost,你真的觉得这个DRY用得值得吗?随便改动个啥都要这么来一套,搞得要改啥都伤筋动骨,请问这不是屎山,还有什么是屎山?

我还是那句话,不反对clean code,但绝大部分推崇clean code的人自己根本没这个水平写好clean code,只会按图索骥地拿着clean code这本书鸡毛当令箭而已。更不要提像楼主碰到的这样的二皮脸,大家都在屎山上拉屎的时候,唯独从楼主这里开始要insist the highest quality。
. check 1point3acres for more.
Junior起培养好习惯是对的,但按照大部分人的水平,老老实实把注释写好,把文档写好就谢天谢地了,别玩儿什么clean code doesn't need comment, because it can explain itself,省省吧,玩不起的。至于你提到【junior就是要趁还不用背负太多绩效压力的时候】,你确定你活在2023年吗?现在layoff和PIP,针对的就是新人,PR出得不够就是更容易被影响,Junior背的绩效压力可比Senior多多了。Senior大不了一走了之再找个工作,Junior可是立马要饿肚子的啊。他们害养成个啥好习惯呢?是打算把这clean code好习惯带到传统行业的IT岗,还是转行以后压根儿不需要写代码的其他行业?

以及你提到以后别人拿来就直接用,你工作了5年以上的话,你见过多少自己写的代码最后人家是能直接拿来用的?大部分迭代迭代着就没了吧。这个时候费时间多写的接口,除了让你在review的时候被老板嘟囔一句move so slow,还有别的什么用?标准库和开源工具里的翘楚Linux,Linus大佬抓的是commit有没有写清楚,有没有引入新的bug,人家才不管你什么设计模式。

我还是觉得,比起琢磨clean code的屠龙之技,Junior应该更快建立起business sense,趁早认识到老板需要的不是干净的代码,而是能赚钱的代码。你提到的开源工具,现在已经越来越不好做了,core-js的作者被人骂,color.js作者删库跑路,React被捐给了Apache(意思就是以后老子不管维护了)。别说开源工具,连大公司负责开源、research的部门,也是关的关裁的裁。Why?市场已经进入了存量模式,没钱给大家用爱发电了。这说明了什么?技术本身是不值钱的,能用来产生效益的才是好的技术。纯粹的技术,而且还是clean code,design pattern之类的技术,将来是不会有人买单的。
回复

使用道具 举报

全局:
这种senior真的是宝 可以从code review手把手教你设计和code的细节。我见过弱鸡老年senior连code都读不懂 只会看code style要求改nit的。
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-9WB6J  | 添加认证 | 2023-3-19 13:35:04
本帖最后由 匿名 于 2023-3-18 22:38 编辑
woshishuzokhr 发表于 2023-3-18 10:26.--
希望楼主珍惜这样的好mentor。他虽然比较较真,但都是合情合理的。像他这样的工程师才是大家该学习的。相信 ...
. .и
有没有这种可能:发帖的跟被喷的其实是一个级别。。。发帖的也不是junior。。。 补一句:跳槽是王道 。。。。
回复

使用道具 举报

🔗
donnice 2023-3-19 13:47:35 | 只看该作者
全局:
匿名用户 发表于 2023-3-19 01:18
看这个帖子下,一堆说reviewer大题小作的我才是一脸懵逼,也难怪现在公司里各种代码都是屎山。 ..
-baidu 1point3acres
比如说变量 ...

如果只是这种级别的改动,那我估计楼主压根儿不会上来抱怨。更可能的情况是,楼主改完latency_ms,发现有些地方用的是latency_us,有些地方是latency_s,然后Senior说你去搞清楚这些都是什么,然后全都改好(哪怕most of them都不是楼主own的)。楼主花了3天,和各种code owner搞清楚细节,千辛万苦改好后,Senior又说这样不方便,你给建一个Latency的class吧,加个时间单位的getter/setter,方便将来延展。。。好嘛,这下整个项目都要动了。

最后楼主的老板一脸懵逼,我就叫你加个latency的log.info(),这种PR你tm给我做了2个星期?下次你猜猜谁会进PIP list?
回复

使用道具 举报

地里匿名用户
🔗
匿名用户-9WB6J  | 添加认证 | 2023-3-19 13:51:09
本帖最后由 匿名 于 2023-3-18 23:00 编辑
donnice 发表于 2023-3-18 22:47.google  и
如果只是这种级别的改动,那我估计楼主压根儿不会上来抱怨。更可能的情况是,楼主改完latency_ms,发现有 ...

不过实际上楼主并不是这种情况, 虽然我换组了, 但公司code 内部都可见。反正我觉得楼主所在组老板是挺容易让组员心态崩的, 心态一崩, 别的组员正常工作给review 都可能trigger楼主心态“爆炸”。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
职场达人
  • ↑ 本版用于讨论职场各种干货话题,闲聊请去🔗聊聊或者🔗匿名版
  • ❌ 本版严禁水贴,引战,发布广告,拉群,贴个人联系方式,扣分无警告
  • ☑ 求职、面经等去 🔗北美求职和 🔗回国求职大区,刷题和学习请去 🔗终身学习大区
  • ☑ 请去专版发布 🔗内推, 🔗招聘信息,和讨论 🔗创业内容
  • ☑ PIP / DevList/ Need Support 等话题也已开设 🔗专版

本版积分规则

>
快速回复 返回顶部 返回列表