一个工作了 6 年的同事写的代码,不看 git 记录我还以为是实习生写的

2020-09-27 09:58:01 +08:00
 garlics

第一次见到那么离谱的代码,完全没有封装的意思。

        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',
                    ]
                ];
            }
        }
29281 次点击
所在节点    程序员
298 条回复
xpfd
2020-09-27 10:10:44 +08:00
写的挺好的啊?逻辑清晰,易读,易维护,虽然我不会 php 但是也能快速抓住逻辑,反而是一些年轻小伙为了炫技用这个晦涩的方式实现让人很头大,rewiew 的时候经常要转换理解一下,等到过一段时间自己去看自己写的代码反而迷糊了,这样的见得多了
qqjt
2020-09-27 10:12:07 +08:00
问题不大,很可能的情况是,一开始就一种菜单,之后判断条件多了,慢慢出现了多种情况的判断。
屎山不是一天写成的。
cxxlxx
2020-09-27 10:12:11 +08:00
就算写的很烂 实习生也不背锅
northisland
2020-09-27 10:14:34 +08:00
有点慌,我也经常写这种代码。。。


2 个判断条件,对应 3 个条件。直接这么写。有毛病么?
ritaswc
2020-09-27 10:14:35 +08:00
其实通俗易懂也是个有点哦,我做讨厌在业务代码里面炫技了
a719031256
2020-09-27 10:15:00 +08:00
过度封装不好,如何简单明了的表达意思就好,业务代码讲究效率,谁 tm 的在乎好不好看,能 10 分钟写完的东西没必要花一个小时去弄
nicebird
2020-09-27 10:16:06 +08:00
改成表驱动就行了吧。
iFlicker
2020-09-27 10:16:28 +08:00
可能绩效考评参考 git 代码提交行数吧
foMM
2020-09-27 10:16:36 +08:00
有没有哪位可以说说如何在回复里面贴图和贴代码块? Markdown 很明显是不支持的
qq976739120
2020-09-27 10:16:52 +08:00
逻辑很清晰,接盘他的代码我不会抗拒
Sharuru
2020-09-27 10:17:14 +08:00
这种东西优化顶多把 URL 路由先预设好,然后直接 tablist 里引用。
但是如果碰到一个特别的业务,然后路由对象没接口的话,改自定义值就会头大。

业务代码写多了,最后还是觉得这种平铺直叙式的写法舒服,不要考虑什么优化,糙快猛干就完事儿了。
早点堆完早点摸鱼。

白衣老人表情包.jpg
kanepan19
2020-09-27 10:18:11 +08:00
我觉得没毛病,
瞎猜楼主的吐槽的原因是不是 ,对人不对事了
garlics
2020-09-27 10:18:15 +08:00
那么多人说写得好我还挺意外的,目前有个需求要按照判断加一个菜单,按照他这个逻辑,判断会变成 8 个,代码直接又长一倍。
binjoo
2020-09-27 10:18:44 +08:00
说不定人家 KPI 是算代码行数的。
eGlhb2Jhb2Jhbw
2020-09-27 10:18:56 +08:00
@garlics #20 你咋也是单引号双引号混用,末尾逗号爱加不加。PHP 都这么写的吗?
zhangjiafan
2020-09-27 10:19:10 +08:00
什么是事儿逼,你就是事儿逼,elseif 不是一天写出来的,而是隔了几天老板开始 else if 的,并且是晚上八点半冷不丁来一句加个需求,这个时候,你会继续 elseif 还是会想优化代码,然后优化几小时吗?从你发帖到优化花了 15 分钟,有这 15 分钟早点回家老婆孩子热炕头不香吗?
ginjedoad
2020-09-27 10:19:12 +08:00
这个是要早日起代码行数?保证占领版本库的代码百分比?
wangbudong
2020-09-27 10:19:28 +08:00
我还觉得写得挺好的
KyonLi
2020-09-27 10:20:17 +08:00
@foMM gist
xilixjd
2020-09-27 10:21:33 +08:00
@garlics else 里,tablist 的购物车需要换个 icon,雪崩

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

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

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

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

© 2021 V2EX