截一张图给大家感受一下。 https://static01.imgkr.com/temp/372735ce126444a283e8856dd5a4c56e.png
没办法修改,实在想不通这个同事是什么意思。 是对自己代码的自信? 还是故意留坑?
唉,我自己 15 号也要走了,只能和大老板说自己能力有限,无能为力。
1
XiLingHost 2022-05-06 11:21:45 +08:00 4
这个命名看着挺舒服的,似乎也不是很需要注释吧
|
2
monkeylmj 2022-05-06 11:23:41 +08:00 1
个人觉得注释并不是越多越好,最舒服的代码是通过合理命名就能看懂意思,根本不需要注释
|
3
mayday526 2022-05-06 11:25:42 +08:00 5
这不是看着还行吗,还需要啥注释?
|
4
rabbbit 2022-05-06 11:26:53 +08:00 5
你们公司允许就这么把代码贴出来?
|
5
CookCoder 2022-05-06 11:29:28 +08:00 2
这代码很差?
|
6
BiChengfei 2022-05-06 11:29:29 +08:00
除了方法上注释不要使用单行注释,其他没什么问题。这个业务逻辑感觉挺简单,写的也很清晰
|
7
cpstar 2022-05-06 11:30:02 +08:00
这就当一个黑盒,不也没啥问题啊
|
8
codespots 2022-05-06 11:30:54 +08:00 10
连个业务逻辑相关的说明都没有,那么多人觉得这叫还行?可能我水平不够,所以只能在写代码时多加注释了
|
9
ration 2022-05-06 11:31:00 +08:00 via Android 2
这业务代码确实需要多注释文档才容易理解。不然要花很多时间。可能改成面向对象的写法好点。
|
10
haah 2022-05-06 11:37:00 +08:00
你有时间发帖,却没时间怼他?
|
11
461da73c 2022-05-06 11:39:14 +08:00
这 PHP 写的挺干净的。
|
12
go522000 OP 向支持不用注释的各位请教一下,第 619 行,JoinService::JoinField(...) 这个函数里面大约还有 40 多行代码(整个文件都没注释),大家在不把代码过一遍的情况下,能不能猜出这一行是什么意思呢?最后会返回什么内容呢?
|
14
anerevol 2022-05-06 11:53:46 +08:00
@go522000 就是 useraddress 存的是 province_id city_id , 要 join 表查一下对应的 province_name city_name 这些吧
其实这种通用的业务规则还好 那种专有的业务规则不写注释才是会死人的 |
15
fgwmlhdkkkw 2022-05-06 11:58:47 +08:00
我觉得写的挺好的……
|
17
zhzy0077 2022-05-06 12:01:00 +08:00 4
说实话这代码比绝大多数屎山强太多 最要命的其实不是这个 JoinService 顶天了点进去看一遍 反而是 $flag, getCode, $data 这些名字 比如$flag == 0 的判断虽然可以从 if 里看出应该是判断发货还是收货的 这样的变量名其实毫无意义 还不如 abcd 至少写的人会有愧疚感
|
18
cloudsigma 2022-05-06 12:06:37 +08:00
删图吧
|
19
Building 2022-05-06 12:15:06 +08:00
我觉得写的挺好的……
|
20
zengguibo 2022-05-06 12:15:20 +08:00
这种代码一看就好理解,那种大神写的奇巧淫技才看不懂呢
|
21
Orenoid 2022-05-06 12:17:04 +08:00
说烂不至于,说它很清晰可就算了吧。
这么一大堆业务逻辑,不做分段注释,也不做进一步的函数封装。代码里也有明显的分段,每一段稍微注释一下不难吧? |
22
CookCoder 2022-05-06 12:26:16 +08:00
@go522000 根据变量名字,地址信息,然后后面的省市 ID ,差不多根据 id 找到更具体的省市信息,这一段也需要注释么?
|
23
CookCoder 2022-05-06 12:27:59 +08:00
不过,注释写的肯定很差,输入输出起码写,每一个关键变量和业务逻辑起码加一个,619 行这样的不需要注释。
|
24
meeop 2022-05-06 12:28:41 +08:00
代码挺整洁的,个人觉得并不需要太多注释
以及程序员最讨厌别人不写注释,同时最讨厌自己写注释 注释和文档由于会因为代码变更缺乏维护而辞不达意,更好的做法还是把代码结构写清晰,变量名说清楚 |
25
CookCoder 2022-05-06 12:28:47 +08:00
说还行的原因是,起码根据变量名字,方法名字,几乎已经看明白这些代码准备干什么,难道说个还行都过分么?
|
26
really28 2022-05-06 12:34:34 +08:00 1
|
27
GeorgeGalway 2022-05-06 13:14:18 +08:00
作为多年的 Phper ,这代码写的,确实还不错
|
28
caixiangyu17 2022-05-06 13:17:40 +08:00 1
这命名不太行呀,各种 foo ,v ,r ,k ,data ,temp
不过主要问题是方法太长了,我们 kotlin 项目 linting 要求 function 少于 40 行,一行少于 120char ,多了过不了 pipeline |
29
QlanQ 2022-05-06 13:40:06 +08:00
作为多年的 Phper ,这代码写的,确实还不错
|
30
forbreak 2022-05-06 13:51:39 +08:00
并不是注释越多越好啊。。。。
|
32
ytmsdy 2022-05-06 14:51:57 +08:00 1
小伙子,你太年轻了。
至少变量命名清晰,结构也不乱。 你是没有见过糟糕的代码! |
33
alanyuan 2022-05-06 14:53:00 +08:00 via iPhone
就这么把公司代码发出来,建议删帖&拉黑
|
34
bugFactory 2022-05-06 15:00:51 +08:00
@really28 大佬,看了下,真是牛逼坏了呀
|
35
mrgeneral 2022-05-06 15:03:26 +08:00
看着还行。
你把屏幕整宽点,去掉软换行,就会发现还挺整洁的,基本都是参数转化和提取而已。 |
36
pengtdyd 2022-05-06 15:42:09 +08:00
这就看懵了???小伙子,你太年轻了。1000 行没有注释的 SQL 就问你怕不怕!!!话说 SQL 没注释也正常。
|
37
fyooo 2022-05-06 16:07:48 +08:00
后续还是不要贴代码吧,严重违背职业道德
|
38
ZoR 2022-05-06 16:21:28 +08:00
代码看完后 感觉还行能猜到百分之 8 90%了,还是太年轻 有的代码看完以后 不知所云 让人欲仙欲死
|
39
lap510200 2022-05-06 16:25:26 +08:00
这已经算好的了 。。
|
41
cryboy007 2022-05-06 16:37:11 +08:00
觉得挺好的,命名和很规范
|
42
liudaolunhuibl 2022-05-06 16:41:03 +08:00 1
你应该需要这个需求的需求文档、设计文档等等,这些文档里的内容加上这个代码足够,总不能我把需求背景和设计思路都写在代码里吧
|
43
Jooooooooo 2022-05-06 16:48:13 +08:00
代码没有业务逻辑的注释写的再漂亮也不行.
|
44
jackbrother 2022-05-06 16:52:48 +08:00
有注释不代表是好代码,好的代码让你一眼就能看出来它是做什么的。说实话,反而是代码越不清晰的情况下,才需要去刻意注释,因为写下这段代码的人都可能不知道它在做什么。
|
45
zengzizhao 2022-05-06 16:54:28 +08:00
业务逻辑说明要写在代码的注释里?
难道不应该去看需求文档、设计文档之类的文档吗 如果业务逻辑很复杂,岂不是要把文档粘贴一份到代码里才叫好? |
46
yiqiao 2022-05-06 18:38:32 +08:00
能看懂,不过还是可以改进的
第一个 flag 判断是写的一样的代码吗? 看起来是顺序和参数不一样,再封装一下不就可以共用了吗? 我也同意注释不用写到代码里,这通常是未实现功能或者是放到 TODO 里面,做完就删了。 |
47
Zhengqing 2022-05-06 19:08:09 +08:00 via iPhone
给院长和导师同时发一封邮件就好了 院长和导师的邮箱都很好找的
|
48
yanqing07 2022-05-06 19:30:55 +08:00
坐等 LZ 去新公司后的吐槽~
我就放下话了,新公司代码肯定比这个差~哈哈哈哈 |
49
sun019 2022-05-06 19:54:10 +08:00
这代码写的规矩 算不错的了
|
50
v2lf 2022-05-06 21:41:37 +08:00
@BiChengfei 这好像是 php , 每种语言风格不同吧,go 源码单行都比较多
|
51
v2lf 2022-05-06 21:46:21 +08:00
说实话,这个还行。 要是功能再细化和内聚,就更美啦。
而且,注释多也不一定好,有些真是废话连篇 |
52
mengzhuo 2022-05-06 22:06:58 +08:00
写得挺舒服的啊,这都算屎山的怕是没见过真屎山。
某鹅某业务那 800 行带视图的 SQL+乱封装的代码是真开眼了 |
53
vainl1 2022-05-06 22:38:38 +08:00 1
@really28 复议一个 How to Write 3v1L, Untestable Code
https://testing.googleblog.com/2008/07/how-to-write-3v1l-untestable-code.html |
54
Biexl 2022-05-07 00:26:10 +08:00
你可能没见过更头痛的代码。当然了如果可以把这一大段代码拆分成多个 function ;将 0 ,1 使用常量或枚举定义;以及个别无含义的变量名改改。在没有 review 的情况下,这种业务代码基本不太会动了。
|
55
panlatent 2022-05-07 01:13:27 +08:00
总体上还算比较清晰,能看出来做什么 。但如果能改进一下或者加点注释能够节省其他人的时间,命名有点偷懒,函数行数多多,应该拆分成多个函数。里面的空行好评。
好的代码应该是不需要或很少需要注释的,注释只是手段,最终还是为可读性服务。 而且有的时候写业务恰饭的时候,每那么多时间和精力去顾虑太多,及格或者良就差不多了。 --- 说点别的 对于 PHP 来说,注释( PHPDoc )很多时候还为 IDE 、文档生成器以及测试框架服务,这方面最好多注意下。PHP 是动态类型,早期语言特性不丰富(类型标注),IDE 支持有限,只能通过加 PHPDoc 来优化编码体验。现代 PHP 已经在绝大多数地方支持类型标注,以及支持注解。PHPStorm 以及部分测试框架甚至提供有限的泛型支持。 利用好代码检查,没有警告,包括没有拼写错误。当在 IDE 中想要用到某段代码却不能获得智能补全(或提示)时,就要考虑代码(注释)是不是可以再优化优化或者换 IDE 了。 |
56
DCELL 2022-05-07 08:51:07 +08:00
我的同事要是代码都写这样,我都能笑醒
|
57
ETO 2022-05-07 09:21:12 +08:00
这代码写得还可以呀
|
58
cxshun 2022-05-07 09:22:08 +08:00
感觉代码命名啥的挺舒服的,而且逻辑也不复杂,这水平很不错了,不需要啥额外的注释啊
|
59
zw1one 2022-05-07 09:25:31 +08:00
写得很好 代码即注释 觉得看起来不直观你可以补注释
|
60
reneiw 2022-05-07 09:27:23 +08:00
就这断行,超级恶心
|
61
yxzblue 2022-05-07 09:31:43 +08:00
没注释 不知道加上注释啊,又不是什么复杂的算法和逻辑……加一些注释的事情,何必要辞职
|
62
JamesR 2022-05-07 09:56:34 +08:00
我个人有个几年前的项目,已运行好几年了,早忘了怎么写得,为什么这么写,那些代码注释全面,包括所有的 if 都给注释上了,前段时间客户让我改个小地方,看注释迅速熟悉项目,找到问题,半天搞定。
如果没有注释,碰到每次隔一年多,要修改某处的情况,每次修改都要重复浪费时间再熟悉项目。有时时间成本会高到无法再去修改。 注释越多,理解越省力,否则改起来需要先花很多时间熟悉业务。 注释是否划算,要看这个人是不是几年后还会修改这个项目了。 |
63
JamesR 2022-05-07 10:01:36 +08:00
上面说的是纯个人项目,注释非常详细,公司的项目我注释就少多了,每个函数简要注释下用途,少数难点也注释下即可。
|
64
funtrip 2022-05-07 10:19:51 +08:00
(你同事上不上 v2
|
65
Eric2022 2022-05-08 12:49:42 +08:00
|
66
Eric2022 2022-05-08 12:57:06 +08:00
|