作者AmosYang (泛用人型编码器)
看板Soft_Job
标题[心得][英文] 如何命名「次数」变数
时间Fri Aug 7 12:30:12 2020
之前谈过「数量」(参考
https://bit.ly/3elcZGT ),这次我想谈谈「次数」,
以及回答几个读者问题。
* 如何命名「次数」变数?
* 「次数」与「数量」有什麽不一样?
* 可以用 times 吗?
* 「计算」该用 calculate 还是 compute ?
* 「总和」 sum 与 total 有什麽不一样?
---
* Google 简报
https://bit.ly/3a1lDcO
* Facebook 相簿
https://bit.ly/2DHjNSx
* GitHub 讨论
https://bit.ly/321ResR
---
# 先说结论
*
名词 +
Count
*
numberOf +
名词
* quantity 不适合用在「次数」上
* "times" 可以用,但建议使用更准确的字
---
# 「数量」 vs. 「次数」
上次谈的「数量」聚焦在「实物」上,例如:
* 不可数名词 : 水
* 生物 : 猫
* 物品 : 包裹
而「次数」是针对「抽象」观念,例如:
* 动作 : 分享 (share)
* 事情 : 事故 (incident)
* 状态 : 成功 (success)
---
# 「次数」的语法与「数量」相似
就前端来说,有至少两种常见的格式:
*
数量 +
名词
*
1 view 1 次观看
*
2 shares 2 次分享(
复数)
*
动作(被动) +
数量 + time(s)
*
Viewed
1 time 被观看 1 次
*
Shared
2 time
s 被分享 2 次(
复数)
就後端来说,与以前谈过的「数量」语法很相似:
*
名词 +
Count
*
viewCount 观看次数
*
shareCount 分享次数
*
numberOf + 名词(
复数)
*
numberOf
Views 观看次数
*
numberOf
Shares 分享次数
「名词 + quantity」 比较适合用在「数量」上,比较不适合用在「次数」上。
---
# 可以用 "times" 吗?
可以。
然而,因为 "times" 除了「次数」,还有倍数、时间、时代的意思(倚赖上下文
脉络来区分),我建议试着使用更精准的字,例如说:
* 安装次数 : installCount
* (游戏设计)伤害倍数 : damageModifier
* 登入尝试次数上限 : loginAttemptMaxLimit
如果有不知道该怎麽叙述的「次数」,欢迎留言讨论,集思广益。
---
# 参考资料:「动作、事情、状态」等抽象概念的英文字汇
用英文命名变数时,常会需要把中文字汇翻译成英文。
而「翻译实物字汇」相对地简单,流程大致上是:
1. 列出中文字汇C
2. 利用汉英字典、机器翻译找到对应的英文字E
3. 用 Google Image 查英文字E,看看出来的图片是否与中文字汇C相符
然而,「翻译抽象字汇」时就不太容易用上述第 (3) 步「用 Google Image 辅助
确认翻译的精准度」。
这里列出一些「次数」会使用到的字,以供参考。
## 动作
* attempt 尝试
* click 点击
* crash 崩溃
* install 安装
* kill (游戏中)击杀
* review 评论
* revision 编修
* share 分享
* view 浏览、观看
## 事情、状态
* case 案例
* event 事件
* hit 命中
* miss 失误
* incident 事故
* instance 实例
* occurrence (事情的)发生、存在
* success 成功
* failure 失败
如果遇到不知道怎麽翻译的字词,或对某个字的使用情景有疑问,欢迎留言提问 :)
---
# 读者提问:计算该用 calculate 还是 compute ?
先说结论:
* 这是归纳了客观资讯,再加上主观见解得到的结论
* 能用「计算机( calculator )」算出来的,用 calculate
* 要用「电脑( computer ) / 图灵机」来算的,用 compute
从字典定义到语源学,我没有找到决定性的资料可以区分 calculate 、 compute
在「计算」这个意思上有什麽不同。
* calculate 的「计算」语意出现在 1560 年代
* 其「算计、策划」语意出现在 1650 年代
* 例如,会说 "a calculated decision" 「一个算计过的决定」,但不会说
"a computed decision"
* 其「思考、意欲、推测」语意出现在美国 1830 年代
* compute 的「计算」语意出现在 1630 年代
* 字典: make a calculation, especially using a computer 特指用电脑计算
* 非正式: 认为一件事合逻辑
* 例如,会说 "This does not compute." 「这件事不合逻辑」。
但在 calculator 与 computer 的字典定义上,有相当的分别:
* 计算机 calculator
> something used for making mathematical calculations, in particular a
> small electronic device with a keyboard and a visual display.
描述「小型电子仪器、有键盘、有显示装置」。
* 电脑 computer
> an electronic device for storing and processing data, typically in
> binary form, according to instructions given to it in a variable program.
「电脑」的字典定义提到了「计算机」没有的特点:「能储存资料、可变动程式指令」
是故,我的 *主观* 解读是:
* 能用「计算机( calculator )」算出来的,用 calculate
* 要用「电脑( computer ) / 图灵机」来算的,用 compute
---
# 读者提问:总和 sum 与 total 有什麽不一样?
## 语意
* sum 是「以加法算出来的总和」,例如:「 2 + 3 + 5 的总和是 10 」。
* total 是「由一连串计算得到的总数」,例如「主餐 $60, 饮料 $20, 合计後打
9 折,总共 $72 」。
## 应用
* sum 常用在数学计算上,例如 Microsoft Excel 的 SUM 函式。
* 可以做为「总和」的变数名称。
* total 常见於电商网站结帐时的「小计(subtotal)」或「总金额(total)」。
* 可以做为「总数」的变数名称。
* total 也可当作形容词,例如在游戏设计、计算伤害值时,从基本攻击、加乘、
抗性、命中率、暴击率最後算出「伤害总数 "totalDamage" 」。
---
# 结语
一周探索一个观念,一点一点学会用英文提昇程式的可读性。
每个人都是从零开始学起的;这些题目大多来自读者提问,我自己也学到了很多。
如果你在写程式时有遇到英文表达上的问题,欢迎留言讨论,或到《程式英文》
GitHub 讨论区
https://bit.ly/321ResR 提问。
这可以帮助我把这个列表整理的更完善,谢谢 :)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 136.56.13.184 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1596774617.A.BA6.html
1F:推 CaptPlanet: 推 08/07 12:32
2F:推 jasonwung: 推推 08/07 12:33
3F:推 kenneth52045: 推 08/07 12:36
谢谢 :)
4F:推 umum29: 推 命名好的话 程式就好维护 08/07 12:40
十分同意
有些人是卡在「用英文表达」这一关,希望我整理的这些资料能帮上忙 :)
※ 编辑: AmosYang (136.56.13.184 美国), 08/07/2020 13:16:48
5F:推 qq076qq076: 推 08/07 13:23
6F:推 kasimEnix: 推,学到好多 08/07 13:31
7F:→ jobintan: 顶一个先… 08/07 14:45
8F:推 summerleaves: 有看有推 08/07 14:53
9F:推 v86861062: 赞 08/07 15:26
10F:推 mushroom5566: 推推 实用 08/07 15:32
谢谢各位 :)
11F:推 windmax1: 推 常常有英文命名苦恼 08/07 16:09
有没有兴趣聊聊在英文上遇到的困境? :)
在这里推文留言, PTT 站内信,或从以下管道都可以:
*
https://github.com/EngTW/English-for-Programmers/issues
*
https://www.facebook.com/twy30
*
https://twitter.com/twy30
一样有英文苦恼的版友们,都可以来聊聊 :)
12F:→ tbpfs: 整理好其实可以出书了 08/07 16:18
目前还没想到那麽远 XD
目前的计画是一周解个 2~3 题,把蒐集到的题目 (*1) 解决掉,看能不能有系统
地把「程式写作常见英文问题」解决掉。
有任何程式写作、软体工程方面的英文题目都可以提出来讨论,一起把这个知识库
整理的更完善。
*1:
https://github.com/EngTW/English-for-Programmers/issues
13F:推 DCTmaybe: 推推 08/07 17:16
14F:推 ccvs: 推 08/07 18:01
15F:推 chenshin0719: 推推 08/07 18:47
16F:推 breccia: 推 很实用!! 08/07 19:02
17F:→ mick90207: 推 08/07 19:08
18F:推 now99: 推 08/07 19:27
19F:推 kenny0817: 推 08/07 19:27
20F:推 uopsdod: 推 08/07 19:34
21F:推 y956403: 推 感谢分享 08/07 19:42
22F:推 x246libra: 推 08/07 21:34
23F:推 smily134: 推 08/07 22:07
24F:推 automaton: 必须推 08/07 23:32
25F:推 tz5514: 推 08/07 23:47
26F:推 ekin1983: 谢谢分享 08/07 23:51
27F:推 ihavenosense: 学习了! 08/08 00:23
感谢各位的欣赏与鼓励 orz
※ 编辑: AmosYang (136.56.13.184 美国), 08/08/2020 03:21:02
28F:推 olycats: 谢谢分享 很用心很有帮助 08/08 06:45
29F:推 lmr3796: 推推推 08/08 08:02
30F:推 onegoman: 推 08/08 09:45
31F:推 evilplayer: 推~~ 08/08 09:48
32F:推 Talinwu: 推 08/08 09:51
33F:推 westercc: 大推! 08/08 10:43
34F:推 ttjerry0204: 推 08/08 10:48
35F:推 sharku: 推 08/08 11:32
36F:推 fanatics5566: 推个 觉得有趣 08/08 12:32
谢谢 :)
※ 编辑: AmosYang (136.56.13.184 美国), 08/08/2020 15:03:28
37F:推 EntHeEnd: 推 08/08 16:01
38F:推 ray13242000: 推 常遇到 08/08 20:45
39F:推 a9261020: 实用推 08/08 21:34
40F:推 nba887215: 感谢用心整理 08/08 21:34
41F:推 mirror0227: 三大难题之一XD 08/09 00:39
命名真的不容易 XD
42F:推 FY4: 推 08/09 00:50
43F:推 Nancy010006: 推 08/09 10:51
谢谢各位的鼓励 :)
44F:推 woopoo: I,J,K 08/09 18:57
变数三天王 XD
※ 编辑: AmosYang (136.56.13.184 美国), 08/10/2020 08:16:22
45F:推 elliotpvt: 感谢分享 08/10 08:40
46F:推 slowwalker: 推 08/10 10:05
47F:推 lestibournes: 推好文 08/11 09:54
48F:推 molopo: 推 08/11 10:10
49F:推 jerboaa: 棒 08/11 13:06
50F:推 thumbe31949: 推 08/11 15:59
51F:推 zxc6414189: 推 08/11 23:51
谢谢 :)
※ 编辑: AmosYang (136.56.13.184 美国), 08/12/2020 07:05:15
52F:推 zxd546123: 中推 08/12 20:25
53F:推 bmpss92196: 推 08/13 14:16
54F:推 ArJiE: 推 08/14 00:33
谢谢 :)
55F:→ marc47: 其实就後面Cnt即可,例如getCnt, releaseCnt, delCnt越简 08/15 22:29
56F:→ marc47: 单越好,而且func里面处理完就释放, 不要跳到别的func里, 08/15 22:29
57F:→ marc47: 变数越简单扼要越容易让人想看code 08/15 22:29
59F:→ marc47: type= 08/15 22:31
> 变数越简单扼要越容易让人想看code
十分同意。
60F:推 xiao2chen: cnt num size 有够烦XD 08/16 09:18
「缩写与否」的确是论战的热门题目 XD
※ 编辑: AmosYang (136.56.13.184 美国), 08/17/2020 05:57:37
61F:推 mickey94378: 推推 可以在每个介绍下面写点范例 像是 google Airb 08/18 06:36
62F:→ mickey94378: nb style guild 会有 good bad 的举例 08/18 06:36
同意,适当的好、坏例子能帮助读者掌握观念。
我会试着注意这方面,谢谢你的建议。 :)
※ 编辑: AmosYang (136.56.13.184 美国), 08/21/2020 12:27:15
63F:推 BlazarArc: 推 08/21 14:01
谢谢 :)
※ 编辑: AmosYang (136.56.13.184 美国), 08/29/2020 07:43:21