前辈写的代码,要不你来解释一下?

2023-06-18 00:11:16 +08:00
 x77
String get string {
  return switch (this) {
    Gender.male => "Male",
    Gender.female => "Female",
  };
}
4438 次点击
所在节点    程序员
38 条回复
angrylid
2023-06-18 00:17:27 +08:00
你周日发这个贴钓不到老前辈的。
dode
2023-06-18 01:11:32 +08:00
const obj = {
log: ['a', 'b', 'c'],
get latest() {
return this.log[this.log.length - 1];
}
};

console.log(obj.latest);
// Expected output: "c"
way2explore2
2023-06-18 03:55:18 +08:00
`if (a===1 && user.role==='admin') return true;`

我同事写的,我 review 时候建议,改成

`return a===1 && user.role==='admin'`
他说这样太复杂,另一个同事附议,太复杂,保留原样。


我无语😑
HaroldFinchNYC
2023-06-18 05:24:04 +08:00
@way2explore2 你可以跑路了
xuanbg
2023-06-18 08:11:09 +08:00
代码本身没什么毛病,逻辑清晰。获取枚举的名称嘛,这样写也不是不行啦。。。
sadfQED2
2023-06-18 08:40:09 +08:00
又不是不能用,那你说怎么写
JasonLaw
2023-06-18 09:34:11 +08:00
@xuanbg 更加好的设计不应该是 Gender 的一个属性吗?比如叫 desc ,male 的 desc 是 Male ,而 female 的是 Female 。

代码没问题,但是很难维护。
hhjswf
2023-06-18 09:48:40 +08:00
@JasonLaw 性别还有什么拓展空间吗
Finnn
2023-06-18 09:57:51 +08:00
@hhjswf 你不重视 LGBTQ... (逃
JasonLaw
2023-06-18 10:04:02 +08:00
@hhjsw desc 跟 gender 是非常紧密的东西,弄得这么远真的好吗?
fregie
2023-06-18 11:07:23 +08:00
@way2explore2 说明你同事比你想的更全面。
从自己写的爽的角度思考,代码越少越精简越好
从软件工程角度思考,代码越一目了然越好,语法越少越好,代码多少是其次
JasonLaw
2023-06-18 11:40:21 +08:00
@way2explore2 #3 这段代码更大的问题是命名,对我来说,我根本不知道 a 是什么。

BTW ,这个函数的名称是什么?
terrytw
2023-06-18 11:47:00 +08:00
这类问题不是很理解为何来回的讨论
正常公司不是应该有代码规范么
常见的逻辑如何处理,应该是标准化的呀?
x77
2023-06-18 12:43:43 +08:00
水贴。不过好像没人完全看懂啊
Yunsheng
2023-06-18 12:49:21 +08:00
你觉得精简的好,那你就写精简的。我觉得可读性好的我就写我认为可读性好的。有时候精简后的读起来其实需要在脑子里面转一下,可能我个人愚笨,如果只是写法的不同,我偏向可读性更高的。因为理解起来更顺畅。
x77
2023-06-18 13:04:52 +08:00
结帖,我应该说明这是 dart 代码。

- 这是一个 get 属性,属性名称 string ,返回类型 String 。
- switch 表达式根据 case 的内容判断 this 是 enum 实例。
- 返回“Male”和“Female”,而不用 enum 成员本身的名称( Gender.male.name ),说明别的地方需要用 enum 得到特定 字符串。

所以,这是个 enum 扩展,类似于 enum Gender {male = "Male", female = "Female"},为什么需要这个扩展,因为 Dart 不支持指定 enum 成员的值。
Alalajiyh
2023-06-18 13:10:09 +08:00
@way2explore2 还是有区别的。在不满足条件的时候第一种写法会返回 undefined ,第二种返回 false
star7th
2023-06-18 19:36:53 +08:00
我觉得,在不影响性能的前提下,永远是 可读性 比 代码量少 重要。
star7th
2023-06-18 19:37:55 +08:00
@way2explore2

我同意你同事的看法。

我觉得,在不影响性能的前提下,永远是 可读性 比 代码量少 重要。
afx
2023-06-18 23:30:02 +08:00
@way2explore2 哈哈哈,让我想起这个话题的原始话题下一堆人赞同前辈,只因为他们看不懂这种表达方式。写代码就像写文章,能否写出简洁优雅的代码考验的是程序员的表达能力。

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

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

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

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

© 2021 V2EX