1
BlueBing 2023-06-16 10:10:52 +08:00 6
写的蛮好,一眼懂。
|
2
LeegoYih 2023-06-16 10:12:13 +08:00 249
嘲讽前辈,理解前辈,成为前辈。
|
3
Moyyyyyyyyyyye 2023-06-16 10:12:42 +08:00 1
简单逻辑简单写,还整个设计模式吗
|
4
Jxnujason 2023-06-16 10:14:19 +08:00
如果 webstorm 估计会提示,还能一键转掉
|
5
751327 2023-06-16 10:14:20 +08:00
所有这个应该怎么写?
|
7
iyiluo 2023-06-16 10:16:19 +08:00 7
没毛病,鬼知道 type 有多少种
|
8
iapplebear 2023-06-16 10:17:38 +08:00 14
没啥毛病,逻辑清晰,用三元逼格会高点?
|
9
qwertyzzz 2023-06-16 10:18:07 +08:00 1
又不是不能跑
|
10
tsohgdivil 2023-06-16 10:18:08 +08:00 2
有啥好笑的
|
11
sockball07 2023-06-16 10:18:58 +08:00
好奇 前端都不定义常量吗 也没注释这个 2 是什么东西
|
12
meteor957 2023-06-16 10:20:24 +08:00 2
以前我还会看看,现在感觉好无聊... 可能是我岁数大了
|
13
lowett 2023-06-16 10:20:32 +08:00 2
代码配色挺好啊,看着很舒服
|
14
taotaodaddy 2023-06-16 10:20:39 +08:00 1
三元倒不至于,无非是
this.isSms = (channelType == 2); 说实话如果贵司考核代码行数,宁愿像你前辈那样写... |
15
Xbluer 2023-06-16 10:21:20 +08:00 1
挺好的。多了几行,把逻辑运算和赋值分开,简单明了。
|
16
Helsing 2023-06-16 10:21:22 +08:00 via iPhone 1
有什么问题吗,除了没有把 2 定义为不可变常量
|
17
lilei2023 OP 主要是想起来自己刚学的时候,也是这样写的,猜测应该是刚入门的前辈的代码
|
18
taotaodaddy 2023-06-16 10:21:48 +08:00 3
魔法数字确实应该重构
|
19
vdrapb 2023-06-16 10:22:28 +08:00 1
整挺好,一眼就知道他要干嘛
|
20
xujinkai 2023-06-16 10:23:11 +08:00 via Android 3
说不定是以前有好几个 if else 现在删的就剩这个了 每一段历史代码都有一段故事
|
21
cwWqjBJJRPak 2023-06-16 10:25:12 +08:00 via Android
难道你还想让他用 channelType===2 吗?!
|
22
jsrunner 2023-06-16 10:27:37 +08:00
自从自己写了烂代码太多了,现在小弟不喷其他人了
|
23
thorneLiu 2023-06-16 10:27:46 +08:00 via Android 6
@iapplebear 用得着三元?😂😂😂😂
|
25
gosansam 2023-06-16 10:28:39 +08:00
应该是删了别的 else 吧
|
26
isno 2023-06-16 10:28:41 +08:00 1
真没必要笑话人家,也没必要在这种小技巧上争强好胜!
|
28
lyxeno 2023-06-16 10:29:18 +08:00
成为前辈!
|
29
javen73 2023-06-16 10:29:19 +08:00
绩效按代码行数吗?😂
|
30
ixixi 2023-06-16 10:30:14 +08:00 9
并不是几行所谓的不优雅代码 就能看出别人水平
写一堆自认为风骚的代码 对下个人来说可能就是屎山 多写几行没问题 |
31
shyrock 2023-06-16 10:31:40 +08:00
OP 把自己的版本发出来,让 v2er 对两者打分看看。
|
32
Ricardoo 2023-06-16 10:32:04 +08:00 1
其实挺好的。
如果是自己的私有代码,随便使用利用语言特性,一行代码搞定. 但是如果是项目代码,一眼能让人看懂的代码就是好代码,而且这种代码方便在分支中增加逻辑,想想善变的需求,你以为前辈在初学层级,实际人家是懂业务懂代码的=。=! |
33
angrylid 2023-06-16 10:33:05 +08:00 1
那么比较优雅的写法是下面这样吗?
isSms = computed( () => channelType === 2 ) |
34
lilei2023 OP 嘲笑谈不上,谁不是从 0-1 开始的,只是感慨,项目这么久了也没人加注释,没人优化
|
35
ksco 2023-06-16 10:33:37 +08:00 6
楼上都给我看傻了,这都能洗?😨
|
36
Yukiteru 2023-06-16 10:33:49 +08:00 1
简单易懂,没毛病。
|
38
miaotaizi 2023-06-16 10:34:18 +08:00 1
代码写再好, 跟业务不匹配有什么用?
|
39
Huelse 2023-06-16 10:35:12 +08:00
硬要说的话也就判等和枚举有问题,而且我记得会被编译成 this.isSms = ...
|
40
erwin985211 2023-06-16 10:38:02 +08:00
现在公司好多这样的代码 主要搞得一个组件就有 4 、500 行,看着很难受
|
41
iOCZ 2023-06-16 10:38:03 +08:00 2
能一眼看懂的都是好代码
|
42
Vegetable 2023-06-16 10:38:45 +08:00 33
这个有很多改进的方法,但这种代码并不值得嘲笑。
这个代码足够简单,虽然写的不优雅,但是也没带来什么问题,甚至可以非常简单的改写成 computed 。写多了业务代码就会意识到,庞大的项目中,类似这种缺乏设计的细节肯定会非常多,代码最关键的是可靠而不是漂亮。如果一段不太好的代码并没有带来理解上的困难和性能上的问题,他就是标准的,合格的代码。 |
43
caqiko 2023-06-16 10:39:00 +08:00 1
@taotaodaddy #14 这个比 33 楼更直观
|
44
fisherman0459 2023-06-16 10:39:46 +08:00
@angrylid 只是 watch 变动, 不能 computed 依赖吧
|
45
wulili 2023-06-16 10:39:50 +08:00 8
虽然一行代码能搞定
但是这种写法其实更好,不明白 OP 在笑啥。。。。。 |
46
lincanbin 2023-06-16 10:40:35 +08:00 1
可能考核代码行数,我这边就是这样,代码都成屎山了。
还在坚持少写没必要代码的人可能只有我了。 |
47
zjw7sky 2023-06-16 10:41:16 +08:00 4
虽然一行代码能搞定
但是这种写法其实更好,不明白 OP 在笑啥。。。。。 |
48
zsc8917zsc 2023-06-16 10:41:17 +08:00 1
写成#33 楼的好处是什么呢?
|
49
zj9495 2023-06-16 10:41:36 +08:00
this.isSms = channelType == 2 ? true : false
你怕是没有见过这种写法的 🐶 |
50
ksco 2023-06-16 10:43:22 +08:00 1
这段代码暴露出的最大的问题,是贵司根本没有任何实际意义上的 code review 。一个允许将这样的代码提交到主线的项目,我有理由详细其他的地方也是屎山,为了身心健康,快跑吧。
|
51
oatw 2023-06-16 10:44:16 +08:00
楼主是不是想说用 computed ?
|
52
343 2023-06-16 10:44:38 +08:00 2
这么写很好,甚至推荐所有开发这样写。
因为不知道后面产品会增加什么需求,可能在这个判断条件下,还会增加非常多的代码。 |
53
wei2629 2023-06-16 10:46:21 +08:00
楼主能不能贴个标准答案,我想学习下怎么写。
|
54
loveumozart 2023-06-16 10:46:23 +08:00 2
程序员不应该抠这些细节,这种思维方式不好
|
55
MangoCloud 2023-06-16 10:46:39 +08:00 via Android 9
程序员就是喜欢喷别人的代码,这代码不好吗,小小年纪以为懂一点代码技巧就可以纵横江湖了
|
56
Narcissu5 2023-06-16 10:47:30 +08:00 2
评论区居然这么多人没有看出问题在哪儿。。。
|
57
superedlimited 2023-06-16 10:47:44 +08:00 via iPhone
@iapplebear 这是半前辈
|
58
westoy 2023-06-16 10:48:00 +08:00 1
这代码挺好的啊
等增加需求出来一个 chanelType = 3/4/5/6 , 处理的东西可能不止一个 this.isSms 这段代码只需要根据情况增加块 用三元或者 map 就需要大改了 |
59
evil0harry 2023-06-16 10:48:20 +08:00
我觉得是删了 else
|
60
cwWqjBJJRPak 2023-06-16 10:48:23 +08:00 via Android
@zsc8917zsc 好处就是传进来一个'2'直接死逼
|
61
Hilong 2023-06-16 10:48:58 +08:00
如果是我肯定不会写成这样,但是,别人的就随别人去吧
|
62
HENQIGUAI 2023-06-16 10:49:39 +08:00 1
你以为人家在第一层,其实人家在第三层
|
63
RobbySSLu 2023-06-16 10:51:11 +08:00 1
尊重前辈,因为你终究会成为前辈。
|
64
Marven 2023-06-16 10:51:16 +08:00
如果你觉得有问题,你给改了就行,发到网上来,意义在哪呢,不明白 OP 在笑啥
|
65
jin7 2023-06-16 10:51:27 +08:00 1
简单易懂没毛病
|
66
Xianmua 2023-06-16 10:51:57 +08:00 via iPhone
|
67
7gugu 2023-06-16 10:52:43 +08:00 3
工资就这么多,工期就这么多,能用就行,又不是不能跑,说不定还没开发完,项目就倒闭了
|
68
wu67 2023-06-16 10:53:13 +08:00 1
上面说三元的真是没眼看
this.isSms = (channelType === 2) 还有说需求增加 3 4 5 6 的, isSms 这么大个布尔值你硬是当他透明呀... |
69
murmur 2023-06-16 10:54:51 +08:00 1
|
70
alanhe421 2023-06-16 10:54:56 +08:00 1
这个并没有问题
|
71
shyrock 2023-06-16 10:55:23 +08:00 2
@lilei2023 说实话#33 的箭头函数什么的引入了更多的语法约定,且因为这些约定不符合自然语言,反而增加了阅读者的心智负担。
比方一段使用说明,用白话现代文写出来 100 字,精炼成文言文 25 字。但是文言文版本并不能说就是好的。 |
72
incheon 2023-06-16 10:55:29 +08:00
楼主没博到认同, 有点遗憾
|
74
cwWqjBJJRPak 2023-06-16 10:56:32 +08:00 via Android
@wu67 我发现很多人都没弄清一个等号两个等号三个等号的含义
|
75
GzhiYi 2023-06-16 10:56:54 +08:00 1
楼上没说到重点,不过 OP 想说的重点可能也是 if else 应该换为三元运算符。但这里最重要的是没把 channelType 的值设置为常量,如果在 TS 中,应该设置为 enum ,这给接手的人怎么理解 2 是什么意思。
|
76
Smilencer 2023-06-16 10:56:57 +08:00 1
简单易懂没毛病
代码炫技都是得啊施啊波 |
77
westoy 2023-06-16 10:57:31 +08:00 1
|
78
coolzjy 2023-06-16 10:57:32 +08:00 3
工作经验三年内,鉴定完毕。
|
79
dbow 2023-06-16 10:59:07 +08:00
业务代码是经常要改的, 给未来修改留下方便, 这是基操。
|
80
Anarchy 2023-06-16 10:59:31 +08:00 1
不觉得这是烂代码,ChannelType 的隐藏意义就是可能存在多种。设计这个结构是未来这段逻辑需要演变成这个结构,预先写成这样后面加功能的时候一眼就能找到位置在哪里并做修改。关于直接用数字 2 就是犯懒了,有时候逻辑简单并且后续也大概率是自己主导的代码容易这样,这算是不好的习惯吧。
|
81
MuSeCanYang 2023-06-16 10:59:56 +08:00 1
简单易懂没毛病
|
82
dudubaba 2023-06-16 11:00:42 +08:00 1
以前觉得这种多余,直接等于 channelType === 2 这种多好,但是这个条件下还有其他赋值,代码就得改成 if else 那还不如最早就用这种。
|
83
danhua 2023-06-16 11:01:34 +08:00 1
感觉没什么毛病,简单易懂。或者说可以写简单点但是难懂增加不可替代性。
|
84
LaGeNanRen 2023-06-16 11:01:45 +08:00
我约了个 meeting ,下班你待一下我们聊聊
@lilei2023 |
85
xyjincan 2023-06-16 11:01:51 +08:00
改个变量名称 this.sms 咋样
|
86
rivercherdeeeeee 2023-06-16 11:02:47 +08:00 1
写的没有问题,记住工作和打工二码事
|
87
hideonwhere 2023-06-16 11:04:48 +08:00
弄不好原本还有别的业务然后删掉了
但是这种也不影响就是了 |
88
kuaner 2023-06-16 11:04:56 +08:00 1
不明白 OP 在笑啥
|
89
fresco 2023-06-16 11:06:16 +08:00 via Android 1
op 刚上班可能
|
90
twofox 2023-06-16 11:07:24 +08:00
我朋友在的公司,他们的后端提供的接口是中文的
炸裂 |
91
HFX3389 2023-06-16 11:09:53 +08:00
笑完记得改代码,别只顾着笑
|
92
sl0000 2023-06-16 11:11:55 +08:00
用 switch 效率高点
|
93
LawlietZ 2023-06-16 11:11:55 +08:00 1
你在嘲笑啥呢 我觉得是你年轻了。。。
|
94
liprais 2023-06-16 11:12:51 +08:00
以前不只有 channelType == 2 这一个条件吧
|
95
Aviciii 2023-06-16 11:13:19 +08:00 1
虽然一行代码能搞定
但是这种写法其实更好,不明白 OP 在笑啥。。。。。 |
96
GzhiYi 2023-06-16 11:13:48 +08:00 2
多写一些,可能存在的问题:
1. == 符号尽量少用,这会让类型变得模糊难定,尽可能用全等。 2. channelType 应该使用常量替代,让 2 这个值更具有可读性(这个重要)。 至于楼上说了那么多的拿三元运算符替换,我觉得是不应该的。强行将逻辑 if else 变更为三元运算符,是个坏主意。 再看这个是 vue 的 watch ,除开 channelType 不一定为 2 之外,还可能在后续判断 channelType 后做一些其余的在 channelType 变更后的逻辑。 所以我的看法是,尽管有优化,但写法 if else 没毛病。 |
97
lilei2023 OP 刚才在捋 n 个前辈的代码,还是继续堆💩山把,跑起来就行,不管那么多了
|
98
fao931013 2023-06-16 11:15:06 +08:00
可以改 但没有必要
|
99
newmlp 2023-06-16 11:15:46 +08:00 1
简单易懂
|
100
finab 2023-06-16 11:16:04 +08:00 7
菜鸟程序员会这样写
中等程序员会直接赋值 经验丰富的程序员会回到这种写法,这样是理解成本最低阅读障碍最小甚至不用思考就能看懂的写法 这段代码里魔法数字的问题,比这个要严重的多,最应该改的不是 if else 而是这个 |