一个工作了 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',
                    ]
                ];
            }
        }
29397 次点击
所在节点    程序员
298 条回复
northisland
2020-09-27 12:10:20 +08:00
再看了一遍,还是觉得你同事写的没问题。dead simple 风格。
ytmsdy
2020-09-27 12:11:20 +08:00
问题的重点是在变量的封装上,如果哪一天“首页”的 icon 要改,那要改好多地方。
判断逻辑上每个人都有每个人的书写习惯,无可厚非!
loginbygoogle
2020-09-27 12:19:04 +08:00
不算糟
ruike007
2020-09-27 12:19:34 +08:00
这。。没啥吐槽吧。代码工整,逻辑清晰。业务需求问题,人家当初没那个需求啊
Nicoco
2020-09-27 12:21:08 +08:00
红利期还在,能允许这样的乐色存在,
红利期不再,这样的乐色就是裸泳被拍死在沙滩上的。
shiny
2020-09-27 12:21:23 +08:00
赶紧进来看看是不是我自己的代码,一看不是,又放心的关掉了
robotdiy
2020-09-27 12:36:34 +08:00
一般没做过啥有技术难度的,喜欢挑小问题*来寻找存在感。
小问题* 我更感觉是随着业务变化而变化的,再怎么会优化也就是个雕虫小技,无非就是每个人的风格差异而已。
Kirsk
2020-09-27 12:37:26 +08:00
码农 没毛病 工程师 不行 维护性是向前兼容 可见预期
YAHIKO0
2020-09-27 12:40:29 +08:00
代码重复太多了。
wfd0807
2020-09-27 12:40:43 +08:00
笑而不语
reus
2020-09-27 12:57:38 +08:00
看这里的回复就知道,说什么 35 岁失业,还是这个行业红利太多了,太宽容了,认为这样的代码没问题的,居然还能混日子到 35 岁?
完全一样的对象,就写成变量,这种基本的技巧都不会?这都算不上封装,纯粹的 don't repeat yourself 而已。基本的原则都抵制,我认为本帖很多人都是不合格的开发者。
这样的人,到了一定年龄就失业,我喜闻乐见!
baozijun
2020-09-27 13:00:06 +08:00
@kera0a #56 哈哈,最后的 goto1 笑了
ifoolish
2020-09-27 13:04:11 +08:00
吐槽之前最好先在 git 上看看这段代码的变更记录,从中也许可以了解到人家的心路历程
WilliamYang
2020-09-27 13:06:53 +08:00
大部分码农的水平都很低,你跟他们说可维护性,他们怎么能理解呢,不喷你的就很好了,有些人还会攻击你代码洁癖呢
EscYezi
2020-09-27 13:11:58 +08:00
我觉得封一个简单的函数就可以少很多代码行数,搞不懂楼里怎么有这么多喷的?
sonyxperia
2020-09-27 13:12:12 +08:00
人家工资比你高吧。
darknoll
2020-09-27 13:12:35 +08:00
工作头两年,我也看不惯这种代码,现在我写得比他"离谱"
NeoMatrix
2020-09-27 13:23:41 +08:00
以前看不惯,现在更多的是想问问当时给这位同事多少时间? 讲个自己亲身经历的事情:之前一直做基础架构相关工作。18 年的时候
NeoMatrix
2020-09-27 13:31:14 +08:00
18 年的时候接到了个任务,让一个月内一个人搞个功能还算复杂的 web 后端上到生产环境并且商用(为 xxx 大会做 PR )。语言不是常用的语言,PRD 过了一周才给出来。最后倒是真的上了线,代码写的跟屎一样,还辛苦后面接手的同学重构了下。问题是:让我两天给你建个桥过河,那只能是简易桥;让我一年给你建个桥过河,情况肯定不一样。
love
2020-09-27 13:35:23 +08:00
哈哈看过类似的。
一般是一开始选项少,就用暴力方式手工直接写出结果数组就行了,省得写代码计算了。
直到后来选项越来越多就崩了。。。

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

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

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

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

© 2021 V2EX