之前同事写了一个功能,其中一个功能居然只有45个foreach
今天看了下之前同事写的一个功能,一个class中也就32个方法

当我折叠了代码,总感觉哪里不对劲,又整体看了一下,好像都没有注释,不过也还好,看到传递的参数名,或许也能大概猜到传递的是什么参数

当我随便展开一个方法的时候,突然发现写代码的同事真的很本土化

于是乎又看了下其他的方法,让我值得注意的是同事在每个方法中大量的使用了foreach,于是乎搜了下 foreach 关键词,发现才45个,可当我在往下看的时候,我有点慌了,有些方法的foreach有点超乎了我能承受的范围。

但是我还是抱着好奇和学习的心态再往看了下一个方法,突然有点凌乱,展开方法的开头已经是3层foreach

滚轮往下一点点才发现,开头的3层foreach只是开胃小菜,后面才是考验foreach的时候

最后我把这个方法单独复制出来看了一下,300多行代码也就15个foreach

当我快绝望的时候,突然又来了一个突发情况

前面中文变量也还行,3层foreach啥得还能接受,现在都玩起了混合开发

看着这一层层的foreach,有些高达5-8层foreach嵌套带查询的,我陷入了沉思,是我太菜了,于是乎我关闭了phpstorm,出去外面抽了根烟。
结论:能跑的代码,真的不能再动了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
粤公网安备 44030502004330号
高认可度评论:
这才是饭碗,说明不好被替代!!!
变量命名确实是没有想到的
能跑就不要动。
“不要动我的代码。”
“运行很稳健,表示无问题。”
〔doge〕
中文 、拼音、字母齐上阵 哈哈哈哈 当我看到逻辑里有写死的数字,就觉得这指定是高手!逻辑高手,记忆高手。
这才是饭碗,说明不好被替代!!!
不错了 注释都给你写上了,可读性不是一般的高
看的我肃然起敬
注定要成为不可替代!
能跑就可以了,改了万一跑不动,就不好了
没什么问题的,不出错,能跑就行
这还拿不下你
大开眼界了
我个人觉得 foreach 嵌套的心智负担没有 if else 来的大,foreach 只要你在最外层喽一眼数据结构,就大致知道里面的逻辑了。
拼音以前在外包公司见过,汉字做变量名,我真是第一次见 :joy:
另外写出这样的代码一方面也说明产品或者需求本身有比较复杂(或者是想要的太多),而时间并不允许你去调研其他解决方案。
尤其是在技术人员完全没有话语权的 Team 里,这一点我以前没啥感受,经历过这样的 Team 以后才发现,代码洁癖被治的差不多了,如果你说为什么不离开,我只能说——他们给的实在太多了!
做在线教育的吗?这是哪家的产品呀,真想学习一下 :joy:
我有个功能 我好像写了10多个foreach :joy:主要是需求太变态了
他是懂程序的
循环次数主要看具体业务,中文变量这点不理解
立马起立敬个礼
已经替数据库捏了一把汗
给我这个需求我可能还不会做 :grin:,此人是高手啊
我见过一个,600行的控制器。里面堆了失败队列,优先队列,队列频率控制,数据队列,执行队列,入队列,数据操作,日志记录,数据查重,这些功能,全都是手写的。调试起来真的酸爽。发送一条请求,要分析运行结果得看两张数据表,看两条队列。真的是眼都花
膜拜大佬,这才是无可替代的人 :dog:
肃然起敬
领域驱动开发吗?学习了。
确实有代码优化的空间,我现在觉得先实现功能,再进行优化是写代码的顺序。但如果工期紧张那只能保前者了,哈哈。
安利一波 Rector,php-cs-fixer 只能修正代码格式,这玩意可以修正代码逻辑! github.com/rectorphp/rector
还可以用来辅助升级 php(如 7.4 升 8.x)、laravel(如 5.x 升 8.x、9.x)版本:github.com/driftingly/rector-larav...
看代码应该是同行。这类代码因为时间跨度大,人口流动性大,所以风格各异,我还见过一个方法1400多行,这还不包括它调用的其他类的其他方法。
中文编程才是最屌的!
当去过的公司多了就会发现这是正常操作,也会知道代码的奇葩也可能就是需求的奇葩造成的,你这主线业务就一条,我这有代码各种业务线混到一个接口,也是一样if嵌套多层,再改业务也只能用if来避免报错了,不过中文变量不能接受,这个就是水平问题了
又不是不能用
等会,中文下标什么鬼,我一时还没反应过来
看代码,脑袋就像一块内存,从上往下暂存下变量和各种逻辑,就是代码量多了的时候,容易内存溢出。
能跑就好了,管他那么多,不过用中文当变量名也是让我大开眼界
我碰到一个控制器给你堆了1w多行代码,我编辑器打开都呼呼的响
$错题本 $收藏 $模考 ——一眼就能看明白 太强了。
中文变量真的是第一次见。但是,但是,但是。它能运行,那就不要改了吧...
代码和人有一个能跑,就不要动
个人、项目、公司三者深度依赖。 :blush:
当薪资与付出不对等,这种事情常发生,公司也不会等你足够优秀了再用你,现在就是快餐式开发的年代,想做好产品的没有几个。
上个公司我质疑中文变量名,结果反被同时嘲笑了
你是懂foreach的 :joy:
还好不是我们公司 不够也差不多
人和代码有一个能跑就行了 :see_no_evil:
可以看出来他是知道需求的,并且已经放弃挣扎了
哈哈,忽然发现我前同事写的还挺好的
代码和人有一样可以跑的就行
代码可读性很强值得推荐中文变量第一次见
dba瑟瑟发抖
我的代码终究还是被挖出来了 :grin:
这种代码能花我一包烟
我觉得还算不错,代码清晰,变量命名基本符合规范,无非就是foreach用得多些,没有整合代码做到复用而已;如果这都要吐槽得化,说明你个人代码太洁癖了,以后怎么维护他人代码呢?更何况你还没遇到更糟得代码,无注释,变量随意命名,根本看不出是变量语义,因为逻辑复杂,各种 if 嵌套,一个方法上千行随随便便,而且来回重复调用,非常考验人得耐心。
你感动不?
我已经被磨得没有洁癖了, 当年一开始接手这样的项目的时间, 一万只马飘过, 维护了一段时间后, 无力回天. 现在想加点东西进去, 都得抽几根压压惊
把php玩成了易语言 :joy:
变量国产化任重道远
其他都能理解 这个中文… 编辑器都自动标记了 这位兄弟的不会出提示吗