一个工作了 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',
                    ]
                ];
            }
        }
29403 次点击
所在节点    程序员
298 条回复
garlics
2020-09-27 13:38:14 +08:00
@qqjt
@zhangjiafan
@hauzi
@ifoolish
@love
如果他一开始就是这样写的呢?https://imgchr.com/i/0FL7sf
anxiousPumpkin
2020-09-27 13:41:41 +08:00
不知道说写得好的人是真这样想的还是抖机灵

既然你做的是这个行业,工作内容就是与别人协同开发,那最起码要负点责任,让别人维护起来不那么难。楼上都是些💩山代码贡献者?
charlie21
2020-09-27 13:41:45 +08:00
学习了
iyangyuan
2020-09-27 13:42:55 +08:00
曾经我写了一段自以为漂亮的代码,但是需求每天都在变,很多所谓的公共封装都变得难以复用,最后发现还是重复写多次简单,需求再怎么变,逻辑也不乱,因为分开处理互不影响。重复代码并不一定不好,要分项目,分场景。
zr8657
2020-09-27 13:46:32 +08:00
你是管理者吗?你的的职责包括维护代码质量吗?把这份代码重构好对你来说比早点下班更重要吗?
我曾经也遇到过类似的问题并且也来发了个贴,后来我跑了
abersheeran
2020-09-27 13:48:08 +08:00
请不要侮辱实习生……
zhuweiyou
2020-09-27 13:50:00 +08:00
就我一个人觉得挺好的吗?
虽然你可以优化得短一点,但是面对复杂需求的时候,还是他的比较清晰明了
Niphor
2020-09-27 13:50:43 +08:00
从头开始写和 review 代码,心态是不同的

说不定这段代码是几个越黑风高的 996 晚上,和产品吵了十几遍出来的....
back0893
2020-09-27 13:53:57 +08:00
你把你的代码贴出来比比
Niphor
2020-09-27 13:54:17 +08:00
P.S. 周末的瓜 真香
tairan2006
2020-09-27 13:59:27 +08:00
就改成表驱动嘛…
hauzi
2020-09-27 14:00:05 +08:00
@garlics 那确实是懒省事
samgentlem
2020-09-27 14:02:31 +08:00
我竟然感觉这段代码逻辑异常清楚。。。我是不是没救了
i4oolish
2020-09-27 14:05:35 +08:00
too young too simple. 别只订着别人展现出来的代码看,要看问题背景和最后结果。
soulmt
2020-09-27 14:06:16 +08:00
带点脑子的实习生 也不会这么写吧,难道不是轻微的封装一下更方便快捷吗???还是说这里大部分人粘贴复制习惯了改不过来了?请问封装一个映射关系能花多久?在动刀之前就把尽可能的配置写好,最后就算改,也只是改一改配置和映射关系吧?到底是一改改 4 次好还是改一次,维护映射好?
0703wzq
2020-09-27 14:07:28 +08:00
这种代码长期下去 if 就会越来越多,每个 if 都要包含一段其他 if 已有的代码, 一旦要增加需求,就是个灾难。竟然有那么多人觉得没毛病....
sugars
2020-09-27 14:07:30 +08:00
@Niphor 或者那晚加上还被戴绿帽了,真是心酸啊,脑海中也只剩 if else 了
onebyone
2020-09-27 14:10:11 +08:00
你觉得不好 改成自己觉得好的就是了 何必这样 显得自己比较优秀?
KuroNekoFan
2020-09-27 14:10:40 +08:00
我说有的人是不是没搞清楚什么叫复用什么叫封装啊
leafre
2020-09-27 14:10:45 +08:00
你们公司是以代码行数做 KPI 的吧

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

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

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

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

© 2021 V2EX