[心得][英文] 如何命名「數量變數」
「英文」是不少人學寫程式的一個關卡,而「命名」又是電腦科學最難的問題之一
。我正在整理幾個最常見的「如何用英文命名程式裡的某個東西?」的問題與答案
,在此與各位分享目前整理好的第一個題目:
* 如何命名「數量變數」?
* 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 + 單位(複數)
goldInKilograms 黃金(以公斤計)
* 單位(複數) + Of + 不可數名詞
kilogramsOfGold 黃金(以公斤計)
## 其它格式
* 不可數名詞 + Amount : goldAmount 黃金數量
* 不可數名詞 + Quantity : goldQuantity 黃金數量
* amountOf + 不可數名詞 : amountOfGold 黃金數量
* quantityOf + 不可數名詞 : quantityOfGold 黃金數量
這些格式無法清楚表達數量單位,其可讀性在科學或金融計算上並不理想,但在其
它情景或許不是問題(例如,遊戲設計)。
---
# 可數生物
## 推薦格式
* 生物(單數) + Count
studentCount 學生人數
尤其適合為「用來計數的變數」命名
* numberOf + 生物(複數)
numberOfEmployees 員工人數
## 常見問題
* 生物(單數) + Number
在語意上是「號碼」的意思
studentNumber 學生號碼
* countOf + 生物(複數)
在語法上通常不會這樣寫
---
# 可數非生物
## 推薦格式
* 非生物(單數) + Count
bookCount 書本數量
尤其適合為「用來計數的變數」命名
* 非生物(單數) + Quantity
bookQuantity 書本數量
尤其適合用在「貨物」上
* numberOf + 非生物(複數)
numberOfBooks 書本數量
* quantityOf + 非生物(複數)
quantityOfBooks 書本數量
尤其適合用在「貨物」上
## 常見問題
* 非生物(單數) + 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://www.ptt.cc/bbs/Soft_Job/M.1594363672.A.7D0.html
推
07/10 14:56,
3年前
, 1F
07/10 14:56, 1F
推
07/10 14:57,
3年前
, 2F
07/10 14:57, 2F
推
07/10 15:10,
3年前
, 3F
07/10 15:10, 3F
推
07/10 15:14,
3年前
, 4F
07/10 15:14, 4F
推
07/10 15:21,
3年前
, 5F
07/10 15:21, 5F
謝謝各位的欣賞 :) 如果在程式寫作上有任何與英文表達有關的問題,請讓我知道
,這會是「用英文提昇程式可讀性」很棒的研究題材。
推
07/10 15:31,
3年前
, 6F
07/10 15:31, 6F
完全能理解,解決問題優先。
語言能做到優雅當然是好,但最重要的功能還是溝通(人與人的溝通、人與機器的
溝通)。
我開了 https://github.com/EngTW/English-for-Programmers/issues/8 來追蹤
這個題目,謝謝 :)
※ 編輯: AmosYang (136.56.13.184 美國), 07/10/2020 15:56:07
推
07/10 15:52,
3年前
, 7F
07/10 15:52, 7F
XD
※ 編輯: AmosYang (136.56.13.184 美國), 07/10/2020 15:57:50
→
07/10 15:58,
3年前
, 8F
07/10 15:58, 8F
→
07/10 16:06,
3年前
, 9F
07/10 16:06, 9F
完全能理解,縮寫、簡寫、更短的字、更簡潔的寫法,只要能解決問題,都是好的
。
我開了 https://github.com/EngTW/English-for-Programmers/issues/7 來追蹤
這個題目,謝謝 :)
推
07/10 16:15,
3年前
, 10F
07/10 16:15, 10F
推
07/10 16:31,
3年前
, 11F
07/10 16:31, 11F
推
07/10 16:52,
3年前
, 12F
07/10 16:52, 12F
推
07/10 16:59,
3年前
, 13F
07/10 16:59, 13F
推
07/10 17:09,
3年前
, 14F
07/10 17:09, 14F
→
07/10 17:09,
3年前
, 15F
07/10 17:09, 15F
推
07/10 17:12,
3年前
, 16F
07/10 17:12, 16F
推
07/10 17:12,
3年前
, 17F
07/10 17:12, 17F
推
07/10 17:27,
3年前
, 18F
07/10 17:27, 18F
→
07/10 17:28,
3年前
, 19F
07/10 17:28, 19F
→
07/10 17:40,
3年前
, 20F
07/10 17:40, 20F
→
07/10 17:40,
3年前
, 21F
07/10 17:40, 21F
推
07/10 18:07,
3年前
, 22F
07/10 18:07, 22F
推
07/10 18:09,
3年前
, 23F
07/10 18:09, 23F
amount 整理在「不可數名詞」的「其它格式」那段。 :)
amount 本身當主詞時,常用來描述金錢上的「總金額(total amount)」,我開了
https://github.com/EngTW/English-for-Programmers/issues/9 來追蹤這個題目
,謝謝 :)
推
07/10 19:02,
3年前
, 24F
07/10 19:02, 24F
→
07/10 19:10,
3年前
, 25F
07/10 19:10, 25F
→
07/10 19:10,
3年前
, 26F
07/10 19:10, 26F
推
07/10 19:11,
3年前
, 27F
07/10 19:11, 27F
→
07/10 19:12,
3年前
, 28F
07/10 19:12, 28F
→
07/10 19:13,
3年前
, 29F
07/10 19:13, 29F
→
07/10 19:14,
3年前
, 30F
07/10 19:14, 30F
推
07/10 19:19,
3年前
, 31F
07/10 19:19, 31F
推
07/10 19:21,
3年前
, 32F
07/10 19:21, 32F
推
07/10 19:21,
3年前
, 33F
07/10 19:21, 33F
→
07/10 19:24,
3年前
, 34F
07/10 19:24, 34F
推
07/10 19:35,
3年前
, 35F
07/10 19:35, 35F
推
07/10 19:46,
3年前
, 36F
07/10 19:46, 36F
→
07/10 19:57,
3年前
, 37F
07/10 19:57, 37F
→
07/10 19:57,
3年前
, 38F
07/10 19:57, 38F
推
07/10 19:59,
3年前
, 39F
07/10 19:59, 39F
推
07/10 20:09,
3年前
, 40F
07/10 20:09, 40F
推
07/10 21:00,
3年前
, 41F
07/10 21:00, 41F
推
07/10 21:39,
3年前
, 42F
07/10 21:39, 42F
推
07/10 22:13,
3年前
, 43F
07/10 22:13, 43F
→
07/10 22:26,
3年前
, 44F
07/10 22:26, 44F
推
07/10 22:59,
3年前
, 45F
07/10 22:59, 45F
→
07/10 23:10,
3年前
, 46F
07/10 23:10, 46F
推
07/10 23:21,
3年前
, 47F
07/10 23:21, 47F
推
07/10 23:28,
3年前
, 48F
07/10 23:28, 48F
→
07/10 23:46,
3年前
, 49F
07/10 23:46, 49F
推
07/11 00:10,
3年前
, 50F
07/11 00:10, 50F
我開了 https://github.com/EngTW/English-for-Programmers/issues/11 來追蹤
"metasyntactic variable" 這個題目,謝謝 :)
推
07/11 00:21,
3年前
, 51F
07/11 00:21, 51F
※ 編輯: AmosYang (136.56.13.184 美國), 07/11/2020 02:40:00
感謝各位的欣賞與提供題目 orz
如果我漏看了題目,請告訴我,謝謝 :)
※ 編輯: AmosYang (136.56.13.184 美國), 07/11/2020 02:44:32
推
07/11 02:46,
3年前
, 52F
07/11 02:46, 52F
感謝指點 orz
推
07/11 03:39,
3年前
, 53F
07/11 03:39, 53F
推
07/11 04:02,
3年前
, 54F
07/11 04:02, 54F
※ 編輯: AmosYang (136.56.13.184 美國), 07/11/2020 05:36:24
推
07/11 08:32,
3年前
, 55F
07/11 08:32, 55F
推
07/11 09:45,
3年前
, 56F
07/11 09:45, 56F
→
07/11 09:45,
3年前
, 57F
07/11 09:45, 57F
推
07/11 09:57,
3年前
, 58F
07/11 09:57, 58F
推
07/11 11:34,
3年前
, 59F
07/11 11:34, 59F
推
07/11 15:08,
3年前
, 60F
07/11 15:08, 60F
推
07/11 16:12,
3年前
, 61F
07/11 16:12, 61F
感謝各位的欣賞 :)
如果能想到「很難看懂、需要通靈」的命名案例,請讓我知道;這可以幫助我把這
些資料整理得更完善,謝謝。
在這篇底下推文,或在 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
推
07/12 22:15,
3年前
, 62F
07/12 22:15, 62F
推
07/14 18:55,
3年前
, 63F
07/14 18:55, 63F
推
07/17 10:20,
3年前
, 64F
07/17 10:20, 64F
推
07/20 14:00,
3年前
, 65F
07/20 14:00, 65F