截一张图给大家感受一下。 https://static01.imgkr.com/temp/372735ce126444a283e8856dd5a4c56e.png
没办法修改,实在想不通这个同事是什么意思。 是对自己代码的自信? 还是故意留坑?
唉,我自己 15 号也要走了,只能和大老板说自己能力有限,无能为力。
![]() | 1 KagurazakaNyaa 2022-05-06 11:21:45 +08:00 ![]() 这个命名看着挺舒服的,似乎也不是很需要注释吧 |
![]() | 2 monkeylmj 2022-05-06 11:23:41 +08:00 ![]() 个人觉得注释并不是越多越好,最舒服的代码是通过合理命名就能看懂意思,根本不需要注释 |
3 mayday526 2022-05-06 11:25:42 +08:00 ![]() 这不是看着还行吗,还需要啥注释? |
![]() | 4 rabbbit 2022-05-06 11:26:53 +08:00 ![]() 你们公司允许就这么把代码贴出来? |
![]() | 5 CookCoder 2022-05-06 11:29:28 +08:00 ![]() 这代码很差? |
![]() | 6 BiChengfei &bsp; 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 ![]() 连个业务逻辑相关的说明都没有,那么多人觉得这叫还行?可能我水平不够,所以只能在写代码时多加注释了 |
9 ration 2022-05-06 11:31:00 +08:00 via Android ![]() 这业务代码确实需要多注释文档才容易理解。不然要花很多时间。可能改成面向对象的写法好点。 |
![]() | 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 多行代码(整个文件都没注释),大家在不把代码过一遍的情况下,能不能猜出这一行是什么意思呢?最后会返回什么内容呢? |
![]() | 13 go522000 OP @haah 哈,不怼他,我还有 9 天也离职了,直接告诉老板我能力有限最方便了。 |
![]() | 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 ![]() 说实话这代码比绝大多数屎山强太多 最要命的其实不是这个 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 ![]() |
![]() | 27 GeorgeGalway 2022-05-06 13:14:18 +08:00 作为多年的 Phper ,这代码写的,确实还不错 |
28 caixiangyu17 2022-05-06 13:17:40 +08:00 ![]() 这命名不太行呀,各种 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 ![]() 小伙子,你太年轻了。 至少变量命名清晰,结构也不乱。 你是没有见过糟糕的代码! |
![]() | 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 ![]() 你应该需要这个需求的需求文档、设计文档等等,这些文档里的内容加上这个代码足够,总不能我把需求背景和设计思路都写在代码里吧 |
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 ![]() @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 |