第一次见到那么离谱的代码,完全没有封装的意思。
if ($config['theme'] == 1) {
if ($config['plugin']['PG_SHOPPING_CART']) {
$tabIndex = [
'index' => 0,
'collection' => 1,
'bestforyou' => 2,
'cart' => 3,
'mine' => 4
];
$tablist = [
[
'pagePath' => '/pages/index/index',
'text' => '首页',
'iconPath' => '/assets/images/home_unactived.png',
'selectedIconPath' => '/assets/images/theme1_home_actived.png',
],
[
"pagePath" => "/pages/collection/collection",
"iconPath" => "/assets/images/collection.png",
"selectedIconPath" => "/assets/images/collection_actived.png",
"text" => "收藏"
],
[
"pagePath" => "/pages/bestforyou/bestforyou",
"iconPath" => "/assets/images/bestforyou_unactived.png",
"selectedIconPath" => "/assets/images/bestforyou_actived.png",
"text" => "为你优选"
],
[
'pagePath' => '/pages/cart/cart',
'text' => '购物车',
'iconPath' => '/assets/images/cart_unactived.png',
'selectedIconPath' => '/assets/images/cart_actived.png',
],
[
'pagePath' => '/pages/mine/mine',
'text' => '我的',
'iconPath' => '/assets/images/mine_unactived.png',
'selectedIconPath' => '/assets/images/mine_actived.png',
]
];
} else {
$tabIndex = [
'index' => 0,
'collection' => 1,
'bestforyou' => 2,
'mine' => 3
];
$tablist = [
[
'pagePath' => '/pages/index/index',
'text' => '首页',
'iconPath' => '/assets/images/home_unactived.png',
'selectedIconPath' => '/assets/images/theme1_home_actived.png',
],
[
"pagePath" => "/pages/collection/collection",
"iconPath" => "/assets/images/collection.png",
"selectedIconPath" => "/assets/images/collection_actived.png",
"text" => "收藏"
],
[
"pagePath" => "/pages/bestforyou/bestforyou",
"iconPath" => "/assets/images/bestforyou_unactived.png",
"selectedIconPath" => "/assets/images/bestforyou_actived.png",
"text" => "为你优选"
],
[
'pagePath' => '/pages/mine/mine',
'text' => '我的',
'iconPath' => '/assets/images/mine_unactived.png',
'selectedIconPath' => '/assets/images/mine_actived.png',
]
];
}
} else {
if ($config['plugin']['PG_SHOPPING_CART']) {
$tabIndex = [
'index' => 0,
'cart' => 1,
'mine' => 2
];
$tablist = [
[
'pagePath' => '/pages/index/index',
'text' => '首页',
'iconPath' => '/assets/images/home_unactived.png',
'selectedIconPath' => '/assets/images/home_actived.png',
],
[
'pagePath' => '/pages/cart/cart',
'text' => '购物车',
'iconPath' => '/assets/images/cart_unactived.png',
'selectedIconPath' => '/assets/images/cart_actived.png',
],
[
'pagePath' => '/pages/mine/mine',
'text' => '我的',
'iconPath' => '/assets/images/mine_unactived.png',
'selectedIconPath' => '/assets/images/mine_actived.png',
]
];
} else {
$tabIndex = [
'index' => 0,
'mine' => 1
];
$tablist = [
[
'pagePath' => '/pages/index/index',
'text' => '首页',
'iconPath' => '/assets/images/home_unactived.png',
'selectedIconPath' => '/assets/images/home_actived.png',
],
[
'pagePath' => '/pages/mine/mine',
'text' => '我的',
'iconPath' => '/assets/images/mine_unactived.png',
'selectedIconPath' => '/assets/images/mine_actived.png',
]
];
}
}
觉得离谱的原因是我现在有个需求,根据$config['plugin']['PG_CATEGORY'],增加一个
[
"pagePath" => "*",
"iconPath" => "*",
"selectedIconPath" => "*",
"text" => "*"
],
发现按照他这个逻辑写简直是个灾难。
感谢60L的老哥帮我发现了个bug
$map = [
'index' => [
'pagePath' => '/pages/index/index',
'text' => '首页',
'iconPath' => '/assets/images/home_unactived.png',
'selectedIconPath' => '/assets/images/home_actived.png',
],
'cart' => [
'pagePath' => '/pages/cart/cart',
'text' => '购物车',
'iconPath' => '/assets/images/cart_unactived.png',
'selectedIconPath' => '/assets/images/cart_actived.png',
],
'mine' => [
'pagePath' => '/pages/mine/mine',
'text' => '我的',
'iconPath' => '/assets/images/mine_unactived.png',
'selectedIconPath' => '/assets/images/mine_actived.png',
],
'collection' => [
"pagePath" => "/pages/collection/collection",
"iconPath" => "/assets/images/collection.png",
"selectedIconPath" => "/assets/images/collection_actived.png",
"text" => "收藏"
],
'bestforyou' => [
"pagePath" => "/pages/bestforyou/bestforyou",
"iconPath" => "/assets/images/bestforyou_unactived.png",
"selectedIconPath" => "/assets/images/bestforyou_actived.png",
"text" => "为你优选"
]
];
$tab = ['index'];
if ($config['theme'] == 1) {
$tab[] = 'collection';
$tab[] = 'bestforyou';
}
if ($config['plugin']['PG_SHOPPING_CART']) {
$tab[] = 'cart';
}
$tab[] = 'mine';
$tabIndex = array_flip($tab);
$tablist = array_map(function ($v) use ($map) {
return $map[$v];
}, $tab);
if ($config['theme'] == 1) {
$tablist[0]['selectedIconPath'] = '/assets/images/theme1_home_actived.png';
}
如果他是这样写的,我估计还不会说什么,最多就默默改了,毕竟一屏也能把逻辑看完,也算逻辑清晰了。
$tabCart = [
'pagePath' => '/pages/cart/cart',
'text' => '购物车',
'iconPath' => '/assets/images/cart_unactived.png',
'selectedIconPath' => '/assets/images/cart_actived.png',
];
if (something) {
$tablist = [$tabCart];
}
他这一屏都看不完一个if块的,真的不能忍。
1
tcpdump 2020-09-27 09:59:43 +08:00 1
起码挺工整 ,占楼,看楼下大神指点
|
2
fffflyfish 2020-09-27 09:59:50 +08:00 3
你懂啥,不把 baseline 打低一点怎么优化啊
|
3
wizardoz 2020-09-27 10:01:49 +08:00 9
你以为他是手写的,其实他可能是用模版生成的。
|
4
MuscleOf2016 2020-09-27 10:02:19 +08:00
咋优化?提取公共写常量?
|
5
tabris17 2020-09-27 10:02:22 +08:00 11
都写 PHP 了,还封装啥呀,先完成 KPI 才是正道
|
6
raincode 2020-09-27 10:03:33 +08:00
起码变量名挺规范 ,占楼,看楼下大神指点
|
7
oukichi 2020-09-27 10:03:48 +08:00 36
你可以优化一下然后贴出来,这样不但提高自己而且帮助别人。毕竟吐槽大家都会,但解决问题的人就少了。
|
8
warlock 2020-09-27 10:04:41 +08:00 2
如果是模板生成 那么应该加上 Code generated by xxxxx. DO NOT EDIT. 避免误会
|
9
zhoushushu 2020-09-27 10:05:14 +08:00 9
我也经常这么写,过度封装,接手的人还得琢磨。
|
10
futou 2020-09-27 10:05:17 +08:00
#7 +1,等待优化结果
|
11
7654 2020-09-27 10:05:33 +08:00
看不爽有空就给他改了啊
|
12
victor 2020-09-27 10:06:36 +08:00
@zhoushushu +1
|
14
eGlhb2Jhb2Jhbw 2020-09-27 10:07:03 +08:00
有些单引号,有些双引号。有些最后元素带逗号,有些最后元素不带。强迫症就很难受。代码除了长点,问题不是很大,也比较容易阅读(当然与业务有一定关系),感觉没你说的那么严重。
|
15
jadehare 2020-09-27 10:07:29 +08:00
这可太工整了,也就重复代码太多,感觉你还是年轻了,没见过嵌套几层的 if
|
16
revalue 2020-09-27 10:08:04 +08:00
#7 +2,等待优化结果
表格驱动也不大行 |
17
ingdawn 2020-09-27 10:09:03 +08:00
坐等大佬封装方案
|
18
haohappy 2020-09-27 10:09:12 +08:00 9
起码挺工整 ,遇到事逼了
|
19
RangerWolf 2020-09-27 10:10:16 +08:00 1
楼主,把你优化之后的发出来让大家学习学习?
|
20
garlics OP @fffflyfish
@oukichi @MuscleOf2016 因为要改加些功能,所以我整理了下这段代码,个人认为看起来逻辑清晰很多,也希望有大神有更好的方法改 ``` $map = [ 'index' => [ 'pagePath' => '/pages/index/index', 'text' => '首页', 'iconPath' => '/assets/images/home_unactived.png', 'selectedIconPath' => '/assets/images/home_actived.png', ], 'cart' => [ 'pagePath' => '/pages/cart/cart', 'text' => '购物车', 'iconPath' => '/assets/images/cart_unactived.png', 'selectedIconPath' => '/assets/images/cart_actived.png', ], 'mine' => [ 'pagePath' => '/pages/mine/mine', 'text' => '我的', 'iconPath' => '/assets/images/mine_unactived.png', 'selectedIconPath' => '/assets/images/mine_actived.png', ], 'collection' => [ "pagePath" => "/pages/collection/collection", "iconPath" => "/assets/images/collection.png", "selectedIconPath" => "/assets/images/collection_actived.png", "text" => "收藏" ], 'bestforyou' => [ "pagePath" => "/pages/bestforyou/bestforyou", "iconPath" => "/assets/images/bestforyou_unactived.png", "selectedIconPath" => "/assets/images/bestforyou_actived.png", "text" => "为你优选" ], ]; $tab = ['index']; if ($config['theme'] == 1) { $tab[] = 'collection'; $tab[] = 'bestforyou'; } if ($config['plugin']['PG_SHOPPING_CART']) { $tab[] = 'cart'; } $tab[] = 'mine'; $tabIndex = array_flip($tab); $tablist = array_map(function ($v) use ($map) { return $map[$v]; }, $tab); ``` |
21
xpfd 2020-09-27 10:10:44 +08:00 3
写的挺好的啊?逻辑清晰,易读,易维护,虽然我不会 php 但是也能快速抓住逻辑,反而是一些年轻小伙为了炫技用这个晦涩的方式实现让人很头大,rewiew 的时候经常要转换理解一下,等到过一段时间自己去看自己写的代码反而迷糊了,这样的见得多了
|
22
qqjt 2020-09-27 10:12:07 +08:00 14
问题不大,很可能的情况是,一开始就一种菜单,之后判断条件多了,慢慢出现了多种情况的判断。
屎山不是一天写成的。 |
23
cxxlxx 2020-09-27 10:12:11 +08:00
就算写的很烂 实习生也不背锅
|
24
northisland 2020-09-27 10:14:34 +08:00
有点慌,我也经常写这种代码。。。
2 个判断条件,对应 3 个条件。直接这么写。有毛病么? |
25
ritaswc 2020-09-27 10:14:35 +08:00
其实通俗易懂也是个有点哦,我做讨厌在业务代码里面炫技了
|
26
a719031256 2020-09-27 10:15:00 +08:00
过度封装不好,如何简单明了的表达意思就好,业务代码讲究效率,谁 tm 的在乎好不好看,能 10 分钟写完的东西没必要花一个小时去弄
|
27
nicebird 2020-09-27 10:16:06 +08:00
改成表驱动就行了吧。
|
28
iFlicker 2020-09-27 10:16:28 +08:00 1
可能绩效考评参考 git 代码提交行数吧
|
29
foMM 2020-09-27 10:16:36 +08:00
有没有哪位可以说说如何在回复里面贴图和贴代码块? Markdown 很明显是不支持的
|
30
qq976739120 2020-09-27 10:16:52 +08:00
逻辑很清晰,接盘他的代码我不会抗拒
|
31
Sharuru 2020-09-27 10:17:14 +08:00 1
这种东西优化顶多把 URL 路由先预设好,然后直接 tablist 里引用。
但是如果碰到一个特别的业务,然后路由对象没接口的话,改自定义值就会头大。 业务代码写多了,最后还是觉得这种平铺直叙式的写法舒服,不要考虑什么优化,糙快猛干就完事儿了。 早点堆完早点摸鱼。 白衣老人表情包.jpg |
32
kanepan19 2020-09-27 10:18:11 +08:00
我觉得没毛病,
瞎猜楼主的吐槽的原因是不是 ,对人不对事了 |
33
garlics OP 那么多人说写得好我还挺意外的,目前有个需求要按照判断加一个菜单,按照他这个逻辑,判断会变成 8 个,代码直接又长一倍。
|
34
binjoo 2020-09-27 10:18:44 +08:00
说不定人家 KPI 是算代码行数的。
|
35
eGlhb2Jhb2Jhbw 2020-09-27 10:18:56 +08:00
@garlics #20 你咋也是单引号双引号混用,末尾逗号爱加不加。PHP 都这么写的吗?
|
36
zhangjiafan 2020-09-27 10:19:10 +08:00 25
什么是事儿逼,你就是事儿逼,elseif 不是一天写出来的,而是隔了几天老板开始 else if 的,并且是晚上八点半冷不丁来一句加个需求,这个时候,你会继续 elseif 还是会想优化代码,然后优化几小时吗?从你发帖到优化花了 15 分钟,有这 15 分钟早点回家老婆孩子热炕头不香吗?
|
37
ginjedoad 2020-09-27 10:19:12 +08:00
这个是要早日起代码行数?保证占领版本库的代码百分比?
|
38
wangbudong 2020-09-27 10:19:28 +08:00
我还觉得写得挺好的
|
41
tabris17 2020-09-27 10:21:49 +08:00
|
42
Joexjx 2020-09-27 10:22:09 +08:00
这代码只是看起来不高级,实际比较通俗易懂,没必要为了看上去高级,就对 ifelse 等有深仇大恨之类的
|
43
Immortal 2020-09-27 10:22:48 +08:00
除了$tablist 没提出去复用,和 theme == 1 这种没有可读性的代码,其他都中规中矩没问题
|
44
sagaxu 2020-09-27 10:24:02 +08:00 via Android
你以为他是手写的,可能他是脚本生成。
然后,老板偷偷看新增代码行数的时候,他产出远比你高。 |
45
northisland 2020-09-27 10:24:15 +08:00
作者喷的是
if cond1 if cond2 .... // 处理 1 else ... // 处理 2 else if cond2 ... // 处理 3 else ... // 处理 4 endif 请问怎么优化?这样把嵌套 if 条件写在一起,会扁平一点? if cond1 and cond2: .... // 处理 1 elif cond1 and not cond2: ... // 处理 2 elif not cond1 and cond2: ... // 处理 3 elif not cond1 and not cond2: ... // 处理 4 楼主说一下优化思路呗 @garlics |
46
mlxj 2020-09-27 10:24:15 +08:00
贼鸡儿清晰💯分
|
47
garlics OP 不知道为什么不能 append,说写得好的各位,现在有个需求,根据$config['plugin']['PG_CATEGORY'],增加一个
[ "pagePath" => "*", "iconPath" => "*", "selectedIconPath" => "*", "text" => "*" ], 请告诉我怎么加? |
49
luhe 2020-09-27 10:26:08 +08:00
我一直以为,封装是别的地方也需要用到才封装,一个地方封来封去的感觉有点浪费时间...(可能说得不对,大佬可以指点一下...
|
50
baosiqing 2020-09-27 10:26:09 +08:00 1
写出这样的代码为啥还有觉得好的?我见过不止这样写,还不会格式化的,看他代码经常要研究某个括号是和哪个一起的
|
51
leo108 2020-09-27 10:26:34 +08:00 2
确实比较惊讶这么多人可以接受这样的代码。
楼主的优化方案也不算过度封装,实现成本也就几分钟,即使未来有个别特殊需求也能简单地兼容。 |
52
hauzi 2020-09-27 10:28:04 +08:00 2
应该不是一次写完的,功能都是慢慢堆砌的,你觉得到了需要优化的地步,就可以优化,这就是程序开发的正常过程。
|
53
leo108 2020-09-27 10:28:33 +08:00 2
有些人说是工作 x 年只不过是一年的经验用了 x 年
|
54
wupher 2020-09-27 10:31:30 +08:00
如果是我的话,可能会抽象成对象,然后把现有数据转换成一个静态对象,或者直接丢到数据库表 /Cache 中。
但我觉得 3 楼说得可能更在理,没准儿这代码就是他用数据库或者模板直接生成的。 |
55
myon 2020-09-27 10:32:12 +08:00
冗余代码太多,如果有 review 的话过不了。好在逻辑清晰,我不会 php 都能看懂
|
56
tsingke 2020-09-27 10:33:55 +08:00
坐等楼主贴出来,自己优化后的代码,那些不贴自己的代码,光喷别人代码的人,一律当做傻逼处理。
|
57
steven_yue 2020-09-27 10:33:57 +08:00
这不就是优化后的结果吗?你写成函数,包成类,最后编译器还不是给你打开了。兄弟是高手
|
58
kera0a 2020-09-27 10:35:42 +08:00 via iPhone 22
“第一次见到那么离谱的代码” ???
楼主可能💩山见少了,你贴的代码一眼就看明白了,逻辑简单和他处也没啥耦合,这种代码不会出什么问题。 不能说离谱,只能说不优雅 真正离谱的代码是 1 你看都看不明白 2 等你看明白了,你也不敢改 3 等你捋完了敢改了,你也不能确保会不会有 bug 4 产生 bug 了,你也不知道是什么原因 5 知道原因了 goto 1 |
59
ll1615 2020-09-27 10:37:21 +08:00
我觉得楼主的优化就很好,有些人就是喜欢复制粘贴
|
60
myon 2020-09-27 10:41:19 +08:00 2
另外你优化后的代码有 bug,首页的 selectedIconPath 是跟随 theme 变化的,看到这点我大概理解他这么写的原因了,要提取出来代码会比较绕
|
61
BeFun 2020-09-27 10:44:01 +08:00
通俗易懂,我觉得挺好,至少自己三个月后再来看,还能一眼看懂
|
62
stach 2020-09-27 10:44:21 +08:00
不管是实习生, 还是资深工程师代, 码逻辑清晰是业务系统最关键的地方. 当然楼主可以优化代码组织方式, 封装一下, 我相信改起来没有任何压力 (这代码蛮清晰的嘛, 没有暗坑).
不过要提醒的是, 楼主也不要过度封装, 没有哪种模式是普适的, 过度封装的副作用更大. |
63
chenyu0532 2020-09-27 10:45:11 +08:00
记得前几年有一个巨火的手游,用 cocos2d 写的,被别人破解了。发现里面极其多的 if elseif,一层层的包着,看着都头大。。但是人家就是很火。。
个人认为,如果为了自己的代码精进,那相信在座的各位的代码都会优化;如果侧重点在业务上,就可以怎么快怎么来,自己和别人看得懂。 以前我也觉得代码优化最重要。。。但是慢慢觉得业务 /策略 /想法才是最重要的。。 |
64
tydl 2020-09-27 10:46:05 +08:00
工整、清晰,一目了然。不建议封装~~
|
65
dustinth 2020-09-27 10:46:43 +08:00
封装意味着多一层抽象, 会多一层心智负担, 所以需要有代码清晰度的提高或者减少重复来作为补偿(比较明显的结果就是封装后代码行数明显变短). 楼主同事的代码没什么大问题, 更谈不上"离谱", 经过优化后代码并没有明显的代码量的降低.
|
67
Varobjs 2020-09-27 10:47:34 +08:00 2
这不算什么,毕竟 if else 嵌套的只是简单赋值;
你是没见过 很多个 if else 结构,每个包含数百行业务逻辑 然后各个业务逻辑 80-90%是相似的, |
68
a194259440 2020-09-27 10:48:10 +08:00
面向过程得通俗易懂,就能说明那代码还挺好得?面向对象学的啥,我更赞同这代码不是一次写成得,导致多层嵌套了 ifelse 语句
|
69
weichengwu 2020-09-27 10:49:15 +08:00
写成这样了叫逻辑清晰?如果 if 代码块里面的行数超过一屏能显示的长度,逻辑是否还清晰?
|
70
huihuilang 2020-09-27 10:51:13 +08:00 via Android
建议楼主把自己的代码贴出来。。另外同事代码写得好写的不好有啥关系?自己拿自己的工资,干好自己的事情就行
|
71
garlics OP @huihuilang 因为现在我在维护这个代码
|
72
FallenTy 2020-09-27 10:53:13 +08:00
把 tableList 里面的东西封装下,根据条件直接引用观感好很多,这也能能有人吐槽事逼?还是说你们成天就是写这种代码。不过这不算太离谱的代码,起码逻辑清晰,你同事估计就是犯懒不想优化,顺便还显得代码多
|
73
huihuilang 2020-09-27 10:54:17 +08:00 via Android
@garlics 那是够惨的。。。
|
74
beingbin 2020-09-27 10:54:45 +08:00
6 年经验×
1 年经验重复 6 年√ |
75
tulongtou 2020-09-27 10:57:33 +08:00
@weichengwu 这说明该换高分辨率的显示屏了 (手动狗头
|
76
Shing 2020-09-27 10:58:23 +08:00 1
莫笑前辈,总有一天你会经历一样的事情的。
|
77
Felldeadbird 2020-09-27 10:58:51 +08:00 1
楼主,如果你不是管理的话,那么这代码是正常的。
如果你是管理的话,push 内容时,你应该审查代码。 所以,楼主不要按工龄看代码。这个完全看个人态度的。 我有时候也会写这种代码,因为心情烦躁 + 赶工期。一般我会注明 @todo 形式,为何要这么写。 |
78
cmdOptionKana 2020-09-27 11:00:41 +08:00
@weichengwu 这个代码最开始可能很短的,后来加着加着变成这么长,如果继续加需求发现代码已经变得很不合理(比如楼主现在就刚好是这个阶段),此时可以重构。
反正感觉问题不是很大的时候就按简单快速的方法先写,可以等后面眼看越来越不合理了再改。(有时等不到那个时候项目就黄了) |
79
dustinth 2020-09-27 11:01:43 +08:00
再看了一下楼主的补充, 自己也说了有"新"的需求, 新需求带来代码或者结构的变化是正常现象. 以我多年编程经验来看, 过早的优化比不优化其实危害更大, 不优化大不了重写一部分逻辑, 过早优化改的时候还得把所有优化过的逻辑拆开重装.
|
80
dethan 2020-09-27 11:02:00 +08:00 via Android
各位天天各种研究算法 结果遇到这种代码 还说好????
|
81
dethan 2020-09-27 11:02:33 +08:00 via Android 1
恕我直言 他好就好在好他****
|
82
wxsm 2020-09-27 11:03:20 +08:00
相信我,这个算是不错的。真的,十几年的码农写出来的东西不如实习生的,比比皆是。我见得多了。
|
83
zxcslove 2020-09-27 11:03:23 +08:00 1
原代码的写法有个大坑,就是参数里面的字符串有少许变化时,如何减少不一致的错误。而且修改时不注意发生了不一致,也很难看出来。
|
84
busymilk 2020-09-27 11:12:15 +08:00
最烦各种抽象,各种封装,除了作者本人,没有任何人能改的动.抽象调抽象,根本找不到实例化的地方,一会就绕懵逼了
|
85
tailf 2020-09-27 11:12:17 +08:00 3
# 我的经验
刚学会封装的工作一年的新手最喜欢多层封装,而有经验的程序员都懂: 代码是写给人看的,只是恰好能运行。 |
86
jwenjian 2020-09-27 11:13:01 +08:00
duplication is more cheap than wrong abstraction
|
87
Biebe 2020-09-27 11:17:37 +08:00 via iPhone
特别是那种所谓“全栈”工程师
|
88
dc25b 2020-09-27 11:18:45 +08:00 1
我也很奇怪为什么提一句封装这么多人急得跳脚,什么叫封装一下就看不懂了?这段代码如果是长期慢慢累积的还能理解,这要是在一个 PR 里面在我组里 review 是绝对过不了的。
|
89
jsjjdzg 2020-09-27 11:20:26 +08:00 1
年轻精英员工和 敲了多年看了多年代码的 2 群人的碰撞,往往是精英看不上别人的
|
90
fangcan 2020-09-27 11:20:34 +08:00
你有看下他的其他代码么
|
91
opengps 2020-09-27 11:21:16 +08:00
有些老旧代码,仅仅是因为一次配置不需要再次使用,我不懂前端代码,不确定这个是不是这一类
|
92
ccraohng 2020-09-27 11:21:49 +08:00
我会把 url, icon 等等配置写在写在一个文件里,直接组合引用。过长的静态数据最好不要放在逻辑里, 反正我是不会这样,反正也就几分钟的事。说写得好我是没想到的
|
94
kimqcn 2020-09-27 11:26:26 +08:00
可以干掉提需求的人
|
95
Rorysky 2020-09-27 11:28:04 +08:00
手动 编译器优化,你再怎么封装,最后 都是展开的
|
96
Inside 2020-09-27 11:30:54 +08:00 1
这波我站楼主,没有意识要做到 single point of truth 的还可以理解,但已经有这个意识了不想做、懒得做、嫌麻烦的,还是别写代码坑人了。
在我的团队里,这种问题第一次发现我会给个黄牌警告,再有下次直接红牌下场了。 |
97
myzyq 2020-09-27 11:33:21 +08:00
擦汗。忙起来还顾得了这么多。最少逻辑清楚,问题解决,后续其他人开发可以快速入场。
ps: 自己封装了,还要很多测试,不能保证功能正常,后续别人接手还要先搞清楚你的封装内容,理解也需要花时间。 不明白这个跟工作时间长短有什么关系。。。。 时间更长的人可能还会考虑,开发效率,接手难易,逻辑是否清晰。至于是否封装,不影响效率的情况下,封装不封装有区别? |
98
Reapper 2020-09-27 11:33:43 +08:00
非 php 人员,除了$tablist 没有抽出去,感觉其他问题不大,能看懂是什么意思
|
99
cumshot 2020-09-27 11:35:45 +08:00
六年的同事还这样写,你以为他在第一层,你在第四层,其实人家在平流层,自己琢磨去吧。
|
100
fenglangjuxu 2020-09-27 11:37:31 +08:00
@tabris17 #5 你是对 php 有多大偏见啊 语言无优劣 能力有高低
|