作者AmosYang (泛用人型编码器)
看板Soft_Job
标题[心得][英文] 如何命名「数量变数」
时间Fri Jul 10 14:47:45 2020
「英文」是不少人学写程式的一个关卡,而「命名」又是电脑科学最难的问题之一
。我正在整理几个最常见的「如何用英文命名程式里的某个东西?」的问题与答案
,在此与各位分享目前整理好的第一个题目:
* 如何命名「数量变数」?
* Count / Number / Quantity
* 什麽时候该用哪个字?该怎麽用?
---
* Google 简报版:
https://bit.ly/38OWoKf
* Google 简报原始档:
https://bit.ly/3elcZGT
* Facebook 相簿版:
https://bit.ly/3iNsgDO
* GitHub 讨论区:
https://bit.ly/321ResR
---
首先,可以试试看命名以下变数(文末有参考答案):
1. 玩家(player)数量
2. 弹药(ammo)数量
3. 子弹(bullet)质量(mass) (以克(gram)计)
4. 生命值(hit points)
如果这对你来说没有难度,或许你会有兴趣到 GitHub 讨论区看看其它我正在整理
的题目:
https://bit.ly/321ResR
---
# 命名「数量变数」的方法
1. 辨认变数名词词性
* 不可数名词
* 可数生物
* 可数非生物
2. 对应单字及格式(见後文)
* 可数生物、可数非生物: Count / Number
* 不可数名词、可数非生物: Quantity
---
# 不可数名词
## 推荐格式
*
不可数名词 + In +
单位(复数)
goldIn
Kilograms 黄金(以公斤计)
*
单位(复数) + Of +
不可数名词
kilogramsOf
Gold 黄金(以公斤计)
## 其它格式
* 不可数名词 + Amount : goldAmount 黄金数量
* 不可数名词 + Quantity : goldQuantity 黄金数量
* amountOf + 不可数名词 : amountOfGold 黄金数量
* quantityOf + 不可数名词 : quantityOfGold 黄金数量
这些格式无法清楚表达数量单位,其可读性在科学或金融计算上并不理想,但在其
它情景或许不是问题(例如,游戏设计)。
---
# 可数生物
## 推荐格式
*
生物(单数) +
Count
studentCount 学生人数
尤其适合为「用来计数的变数」命名
*
numberOf +
生物(复数)
numberOf
Employees 员工人数
## 常见问题
* 生物(单数) + Number
在语意上是「号码」的意思
studentNumber 学生号码
* countOf + 生物(复数)
在语法上通常不会这样写
---
# 可数非生物
## 推荐格式
*
非生物(单数) +
Count
bookCount 书本数量
尤其适合为「用来计数的变数」命名
*
非生物(单数) +
Quantity
bookQuantity 书本数量
尤其适合用在「货物」上
*
numberOf +
非生物(复数)
numberOf
Books 书本数量
*
quantityOf +
非生物(复数)
quantityOf
Books 书本数量
尤其适合用在「货物」上
## 常见问题
* 非生物(单数) + Number
在语意上是「号码」的意思
accountNumber 帐户号码
* countOf + 非生物(复数)
在语法上通常不会这样写
---
# 其它讨论
* 有的时候,程式可读性的确是 *相对地* 没那麽重要。
* 满足需求、解决问题、创造价值最重要。
* 提昇程式可读性的方法不止一种
* 要把程式码上下文脉络、使用情景、团队文化、产业领域也纳入考量。
---
相对於「写作风格」(驼峰式大小写、蛇式/烤肉串式、等等),我想从另一个角
度,聚焦於「学会用英文表达想法」,
学会用英文提昇程式可读性。
我很想知道读者在写程式时,遇到了怎麽样的英文表达问题。
我目前有蒐集到一些题目,例如:
* Count / Length / Size, 什麽时候该用哪个字?该怎麽用?
* Copy / Clone / Duplicate
* Sum 与 Total 的差别
* Validate vs. Verify
很欢迎读者推文(或到 GitHub 讨论区
https://bit.ly/321ResR )提出
* 问题
* 建议
* 感想
谢谢。
---
# 练习题 *参考* 答案
1. numberOfPlayers, playerCount
2. quantityOfAmmo, ammoQuantity
3. bulletMassInGrams
4. hitPoints
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 136.56.13.184 (美国)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1594363672.A.7D0.html
1F:推 chuegou: 这个有趣 07/10 14:56
2F:推 goodseeyou: 推 07/10 14:57
3F:推 sk6852: 实用 07/10 15:10
4F:推 devilkool: 实用推 07/10 15:14
5F:推 y2468101216: 推 07/10 15:21
谢谢各位的欣赏 :) 如果在程式写作上有任何与英文表达有关的问题,请让我知道
,这会是「用英文提昇程式可读性」很棒的研究题材。
6F:推 vi000246: 我喜欢台式英文 bulletWeight remainLife 07/10 15:31
完全能理解,解决问题优先。
语言能做到优雅当然是好,但最重要的功能还是沟通(人与人的沟通、人与机器的
沟通)。
我开了
https://github.com/EngTW/English-for-Programmers/issues/8 来追踪
这个题目,谢谢 :)
※ 编辑: AmosYang (136.56.13.184 美国), 07/10/2020 15:56:07
7F:推 jobintan: niceTutorial, it_is_very_useful. 07/10 15:52
XD
※ 编辑: AmosYang (136.56.13.184 美国), 07/10/2020 15:57:50
8F:→ askaleroux: magicNumber // do not erase this 07/10 15:58
9F:→ testPtt: 基本上不用Quantity 太长 07/10 16:06
完全能理解,缩写、简写、更短的字、更简洁的写法,只要能解决问题,都是好的
。
我开了
https://github.com/EngTW/English-for-Programmers/issues/7 来追踪
这个题目,谢谢 :)
10F:推 RedArmy95: 推 07/10 16:15
11F:推 chuegou: #define ZERO 0 07/10 16:31
12F:推 unmolk: 楼上是杀小xddd 07/10 16:52
13F:推 bowin: 推 AmosYang 好文! 07/10 16:59
14F:推 accessdenied: zero = 0 这个我真的看到! 还有 True = 1, False = 07/10 17:09
15F:→ accessdenied: 0 07/10 17:09
16F:推 alihue: 推 07/10 17:12
17F:推 sniper2824: 好文 07/10 17:12
18F:推 ben810514: bulletCount 07/10 17:27
19F:→ ben810514: 没事 是重量以为是数量 07/10 17:28
20F:→ sirius65482: 不管啦 通通用xxxNum 07/10 17:40
21F:→ bheegrl: ammoQty 07/10 17:40
我开了
https://github.com/EngTW/English-for-Programmers/issues/7 来追踪
「缩写、简写」这个题目;谢谢提供这个题目 :)
22F:推 paulshain04: 很赞欸 推一个 07/10 18:07
23F:推 Rm: amount跑去哪了 07/10 18:09
amount 整理在「不可数名词」的「其它格式」那段。 :)
amount 本身当主词时,常用来描述金钱上的「总金额(total amount)」,我开了
https://github.com/EngTW/English-for-Programmers/issues/9 来追踪这个题目
,谢谢 :)
24F:推 atpx: 好文, 不得不推 07/10 19:02
25F:→ pttano: 我都定arg1,arg2,var1,var2 07/10 19:10
26F:→ pttano: 我都定arg1,arg2,var1,var2 07/10 19:10
27F:推 kokolotl: a1, b1啊~~ 07/10 19:11
28F:→ pttano: 我都定arg1,arg2,var1,var2 07/10 19:12
29F:→ pttano: 我都定arg1,arg2,var1,var2 07/10 19:13
30F:→ pttano: 我都定arg1,arg2,var1,var2 07/10 19:14
31F:推 infixman: 推推 07/10 19:19
32F:推 chuegou: 楼上重复定义编译器不给过 07/10 19:21
33F:推 dks50217: Cnt 07/10 19:21
我开了
https://github.com/EngTW/English-for-Programmers/issues/7 来追踪
「缩写、简写」这个题目;谢谢提供这个题目 :)
34F:→ yyc1217: remove delete erase cancel dismiss 07/10 19:24
我开了
https://github.com/EngTW/English-for-Programmers/issues/10 来追踪
这个题目,谢谢 :)
35F:推 enthos: pn, an, bg, hp \ Forth(Write-only lang.) style. 07/10 19:35
我开了
https://github.com/EngTW/English-for-Programmers/issues/7 来追踪
「缩写、简写」这个题目;谢谢 :)
36F:推 goldflower: 看过中国人用拼音写扣 jin_jia_ki_si 07/10 19:46
我开了
https://github.com/EngTW/English-for-Programmers/issues/8 来追踪
这个题目,谢谢 :)
37F:→ leo5916267: 多查英文字典吧?有时候直接问英文好的人资XD超好笑 07/10 19:57
38F:→ leo5916267: ,写程式还会问到人资那边 07/10 19:57
我开了
https://github.com/EngTW/English-for-Programmers/issues/8 来追踪
这个题目,谢谢 :)
40F:推 jason90929: 赞 07/10 20:09
41F:推 Lhmstu: 推推 07/10 21:00
42F:推 negligence: 推 07/10 21:39
43F:推 invidia: 感谢分享 07/10 22:13
44F:→ abc0922001: 感谢分享,命名真的是难题 07/10 22:26
45F:推 jasonwung: 实用推 07/10 22:59
46F:→ labbat: qwertyyuiop 07/10 23:10
47F:推 CaptPlanet: 推 07/10 23:21
48F:推 dces4212: nr_student 07/10 23:28
我开了
https://github.com/EngTW/English-for-Programmers/issues/7 来追踪
「缩写、简写」这个题目;谢谢 :)
49F:→ OrzOGC: 用拼音真的...还有日文拼音的...冏... 07/10 23:46
我开了
https://github.com/EngTW/English-for-Programmers/issues/8 来追踪
这个题目,谢谢 :)
50F:推 Dracarys: foo bar baz 07/11 00:10
我开了
https://github.com/EngTW/English-for-Programmers/issues/11 来追踪
"metasyntactic variable" 这个题目,谢谢 :)
51F:推 Luke3723: 推 07/11 00:21
※ 编辑: AmosYang (136.56.13.184 美国), 07/11/2020 02:40:00
感谢各位的欣赏与提供题目 orz
如果我漏看了题目,请告诉我,谢谢 :)
※ 编辑: AmosYang (136.56.13.184 美国), 07/11/2020 02:44:32
52F:推 Bencrie: nr_ 这个是 Linux kernel 的命名 07/11 02:46
感谢指点 orz
53F:推 richard07250: 先推在看 07/11 03:39
54F:推 Ouranos: Amos 必推!!! 07/11 04:02
※ 编辑: AmosYang (136.56.13.184 美国), 07/11/2020 05:36:24
55F:推 ben4562002: 推 获益良多 07/11 08:32
56F:推 joy7658x348: 推!命名对新人工程师更是一个问题XD常常会看不懂那 07/11 09:45
57F:→ joy7658x348: 是啥 07/11 09:45
58F:推 NeCool: 推 07/11 09:57
59F:推 coder5566: 推 07/11 11:34
60F:推 believe91326: 实用推 07/11 15:08
61F:推 zxcv860513: 推,很怕看到需要通灵的命名 07/11 16:12
感谢各位的欣赏 :)
如果能想到「很难看懂、需要通灵」的命名案例,请让我知道;这可以帮助我把这
些资料整理得更完善,谢谢。
在这篇底下推文,或在 GitHub 或 Facebook 留言都可以 :)
* GitHub:
https://github.com/EngTW/English-for-Programmers/issues
* Facebook:
https://bit.ly/3iNsgDO
※ 编辑: AmosYang (136.56.13.184 美国), 07/12/2020 04:07:11
补上 Google 简报原始档:
https://bit.ly/3elcZGT
※ 编辑: AmosYang (136.56.13.184 美国), 07/12/2020 12:44:21
62F:推 klandakuei: 推 07/12 22:15
63F:推 visual: 推 07/14 18:55
64F:推 zelt: 推 07/17 10:20
65F:推 a8319: 有趣又实用 07/20 14:00
66F:推 beryah: 推 07/26 00:57
谢谢 :)
※ 编辑: AmosYang (136.56.13.184 美国), 08/08/2020 03:09:46
67F:推 Rmustang: 推推推 02/09 13:21