《关于我对审核同事代码的标准已经降低到“只要把所有成员命名按照驼峰规则+单词拼写没有错误就行了”然而她还是做不到的这件事》

2021-01-27 16:21:08 +08:00
 Vveeb
前提: .NET 开发,不是正规开发团队,帮国外分公司的开发打杂的,人家写好的框架我们在上面实现个小功能或者修 BUG 啥的。
本人水平也只是熟练使用 Console.WriteLine() 的水平,但是差不多也能看出来代码写的漂亮不漂亮。

OK,正文:组里的毒瘤同事终于要走了,走之前要给她之前的工作交接给我。因为这些成果最终还是要提交给国外开发团队去 Merge 的,所以之前需要我评审一下,尽量符合人家的标准。

拿过来先看她做的类图,基本都是“望文生疑”这么个状态。我让她:“这里,这里,方法名单词首字母大写,这里拼写不对,你回去改一下,然后从头到尾自己查一下,没问题了再给我”。

过会儿,告诉我改好了没问题了,我随便看,还有同样问题,又让她改+自己查。

就这样来回来去三四遍了,一个类图,里面总共列出来才不到 200 个成员,每次说改好了没问题了,我都还能发现“大小写”&“拼写”问题。

所以说之后评审代码这种事是我完全没有勇气去做的,里面放眼望去基本都是 Yin 间代码。
15328 次点击
所在节点    程序员
144 条回复
annielong
2021-01-27 17:45:26 +08:00
涉及流程跳转,有时候只能 if else,没有特别合适的优化方法,
janxin
2021-01-27 18:34:20 +08:00
宁就是轻小说带文豪?
sevenzhou1218
2021-01-27 18:57:45 +08:00
没啥好吐槽的,人都要走了,干嘛还很认真的给你搞。。。
Vveeb
2021-01-27 19:26:38 +08:00
@sevenzhou1218 没错的,她就是这么个态度,东西都交出去就完了,就是一坨屎也得让我接着。
Vveeb
2021-01-27 19:47:24 +08:00
@jadeborner 长得? 那差不多就是”亲者痛仇者快“这么个水平了
CrazyRundong
2021-01-27 19:50:17 +08:00
代码风格的问题不应该是交由 CI 吗?风格检查不通过不给 merge 不就行了 = =
Vveeb
2021-01-27 19:58:46 +08:00
@CrazyRundong @_@ CI 是个啥, 可能还没用到这么高级的东西,我们用的顶多就是个 StyleCop 检查下风格。而且 Merge 的话,也是我们这边先过一遍,最后交给外国的开发团队去 Merge 。他们那边会有一次 Code Review & Function Review 。
lights
2021-01-27 19:59:29 +08:00
和领导摊牌,要么她能持续改正,要么你走
CrazyRundong
2021-01-27 20:00:15 +08:00
qping
2021-01-27 20:02:31 +08:00
@Vveeb #45 指望要离职的同事给你写代码,是不明智的,可能还越改越差呢
fiveelementgid
2021-01-27 20:03:16 +08:00
Case sensitive.......
话说你这个工作性质
是不是外包?
Vveeb
2021-01-27 21:00:30 +08:00
@CrazyRundong 扫噶,持续集成啊,那么 jenkins 应该算是吧,我们的服务器有跑 jenkins,但是好像没有代码风格检查
Vveeb
2021-01-27 21:03:02 +08:00
@fiveelementgid 哈哈不是,是分公司给母公司打工这样子
css3
2021-01-27 21:23:45 +08:00
所以一个方法或者类最多写多少行合适?
jzmws
2021-01-27 21:44:10 +08:00
加个扫描 代码不符合规范的都拒绝提交
ETiV
2021-01-27 21:45:18 +08:00
好家伙,这标题,我还以为要动画化了呢
Keyes
2021-01-27 21:55:32 +08:00
@ETiV 哈哈哈哈就你最皮
Lemeng
2021-01-27 22:01:05 +08:00
她,她的话,是不是你未婚她未嫁呢。感觉怎么样呢
no1xsyzy
2021-01-27 22:17:14 +08:00
@lemon94 最重要是要把逻辑隔离出来,最完全的隔离是所有 if else 串的 if (...) 和 {...} 的部分都应当是一个具有有意义的名字的 function call 或者 method call 。尤其 if (...) 最好不要有运算,最多 if ((name = value) == another_value)

而且这样的代码运行效率会很可能变高(假设不内联):
if (longCondition1()) {longOperation1()} else if ... else {longOperationN()}
因为你要把这些东西内联进去这段代码很可能会超过缓存大小,再从更低速的缓存甚至内存里刷进缓存的话效率就低了。
KeepingNow
2021-01-27 22:37:18 +08:00
都给我看乐了😂。

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

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

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

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

© 2021 V2EX