来请教大家,这种算冗余代码吗?

2020-06-23 11:15:32 +08:00
 joooker
<template>
  <div>
    <button @click="tryAgain">点击重试</button>
  </div>
</template>

<script>
export default {
  data() {
    return {};
  },
  mounted() {
    this.unsubscribe();
  },
  methods: {
    unsubscribe() {
      // do something
    },
    tryAgain() {
      this.unsubscribe();
    },
  },
};
</script>

类似这么一段 Vue 代码,给同事 review 代码时候我指出tryAgain可以删掉,但他认为很直观没问题。

我觉得只是单纯再包一层函数直观但没啥意义,更倾向删掉。

5461 次点击
所在节点    程序员
39 条回复
UIXX
2020-06-23 14:33:46 +08:00
这是代码风格的问题,只要该程序员写的代码风格一致即可。
no1xsyzy
2020-06-23 14:37:11 +08:00
@xingyue #11 你这也不对,“我符合处理点击事件” 是 @click 表达的语义。
我觉得这里的问题是这个组件只用于 unsubscribe ?
难道不应该外层把 unsubscribe 函数和 “点击重试” 字符串作为 props 传进去吗?
sonice
2020-06-23 15:17:44 +08:00
点击重试和 unsubscribe 有逻辑关系吗?
如果根据上下文工作流程已经很确定了,重试就一定是 unsubscribe,那去掉没毛病。
还有其他人有提到的业务扩展的问题。

review 代码不都是走过场吗?只要功能保证,没有明显的逻辑错误就行,你这样搞是会没“朋友”的
swirling
2020-06-23 15:58:42 +08:00
Verbosity is not a bad thing.
atwoodSoInterest
2020-06-23 16:02:11 +08:00
不冗余
按钮的显示是“点击重试”,但是实际执行的方法是 unsubscribe,意义其实是不对等的。
这个调用的意义就在于说明,重试的内容是取消订阅。
yinjunjian0
2020-06-23 16:49:32 +08:00

按钮的方法名是 tryAgain,看方法名实质不知道重试什么
换成 unsubscribe 语义更明确
qwertyzzz
2020-06-23 17:20:20 +08:00
万一 tryagin 里后期还要加别的操作呢 不只是 unsubscribe 呢
PainAndLove
2020-06-23 17:36:50 +08:00
如果明天 PM 就给你提个需求让在 tryagain 里多一个操作, 就有意义了。
简单的说就是赌博。 老梗了。
cassyfar
2020-06-23 17:44:55 +08:00
不冗余。unsub 只是 try again 点下去后发生的一步。
tutou
2020-06-23 17:48:01 +08:00
不想删,因为不知道什么时候产品加奇怪的需求
djs
2020-06-23 18:11:00 +08:00
没问题吧,加入你这个 tryagain 又要加一堆奇怪的东西,就有用了,逻辑上也分离了
djs
2020-06-23 18:11:32 +08:00
听听你同事咋说,如果只是直观,我是觉得删了吧
GzhiYi
2020-06-23 18:19:17 +08:00
是我没法留下来,心里不爽。所以我选删。
ipwx
2020-06-23 18:33:28 +08:00
tryAgain => handleBtnTryAgain

我打赌这么重命名楼上的绝对会一致赞同。
ipwx
2020-06-23 18:35:00 +08:00
或者 tryAgain => onBtnTryAgainClick

本质上楼主的同事可能觉得 tryAgain 指的就是 tryagain 这个按钮,和 unsubscribe 不在同一层。但是楼主认为 tryAgain 语义上和 unsubscribe 在同一层。这么一种解读差别,所以带来了不同的判断。
sugars
2020-06-23 18:58:20 +08:00
支持语义化,我也这么写
未来点击按钮要加 loading 什么的就方便了,要想周到长远
lewinlan
2020-06-23 19:08:29 +08:00
我认为冗余。
代码少的时候看起来好像容易拓展,等代码多了层数多了就变得难以追踪。有好有坏所以优先简洁。
不过这点小事也没必要较真……
ShareManT
2020-06-23 21:09:36 +08:00
没用的代码就得删除
IvanLi127
2020-06-24 08:59:41 +08:00
取决于你们写不写注释咯,不写的话保留这个方法还是有必要的 emmm

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

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

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

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

© 2021 V2EX