顯示廣告
隱藏 ✕
※ 本文為 layzer 轉寄自 ptt.cc 更新時間: 2020-07-16 11:13:18
看板 Soft_Job
作者 AmosYang (泛用人型編碼器)
標題 [心得][英文] 如何命名「數量變數」
時間 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
TW Yang | Facebook
[圖]
TW Yang is on Facebook. Join Facebook to connect with TW Yang and others you may know. Facebook gives people the power to share and makes the world more open and connected.
* GitHub 討論區: https://bit.ly/321ResR
Issues ·  EngTW/English-for-Programmers ·  GitHub
[圖]
《程式英文》:用英文提昇程式可讀性. Contribute to EngTW/English-for-Programmers development by creating an account on GitHub. ...

 

---
首先,可以試試看命名以下變數(文末有參考答案):

1. 玩家(player)數量
2. 彈藥(ammo)數量
3. 子彈(bullet)質量(mass) (以克(gram)計)
4. 生命值(hit points)

如果這對你來說沒有難度,或許你會有興趣到 GitHub 討論區看看其它我正在整理
的題目: https://bit.ly/321ResR
Issues ·  EngTW/English-for-Programmers ·  GitHub
[圖]
《程式英文》:用英文提昇程式可讀性. Contribute to EngTW/English-for-Programmers development by creating an account on GitHub. ...

 

---
# 命名「數量變數」的方法

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 )提出
Issues ·  EngTW/English-for-Programmers ·  GitHub
[圖]
《程式英文》:用英文提昇程式可讀性. Contribute to EngTW/English-for-Programmers development by creating an account on GitHub. ...

 

* 問題
* 建議
* 感想

謝謝。

---
# 練習題 *參考* 答案

1. numberOfPlayers, playerCount
2. quantityOfAmmo, ammoQuantity
3. bulletMassInGrams
4. hitPoints

--
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 136.56.13.184 (美國)
※ 文章代碼(AID): #1V20yOVG (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1594363672.A.7D0.html
chuegou: 這個有趣1F 07/10 14:56
goodseeyou: 推2F 07/10 14:57
sk6852: 實用3F 07/10 15:10
devilkool: 實用推4F 07/10 15:14
y2468101216: 推5F 07/10 15:21

謝謝各位的欣賞 :) 如果在程式寫作上有任何與英文表達有關的問題,請讓我知道
,這會是「用英文提昇程式可讀性」很棒的研究題材。

vi000246: 我喜歡台式英文 bulletWeight remainLife6F 07/10 15:31

完全能理解,解決問題優先。

語言能做到優雅當然是好,但最重要的功能還是溝通(人與人的溝通、人與機器的
溝通)。

我開了 https://github.com/EngTW/English-for-Programmers/issues/8  來追蹤
台式英文、漢語拼音、日文拼音的優缺點? ·  Issue #8 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 推 vi000246: 我喜歡台式英文 bulletWeight remainLife 推 goldflower: 看過中國人用拼音寫扣 jin_jia_ki_si 推 gasbomb: 上一份工作看到的 氣死 → OrzOGC: 用拼音真的...還有日文拼音的...冏... 完全能理解,解決問題 ...

 
這個題目,謝謝 :)

※ 編輯: AmosYang (136.56.13.184 美國), 07/10/2020 15:56:07
jobintan: niceTutorial, it_is_very_useful.7F 07/10 15:52

XD
※ 編輯: AmosYang (136.56.13.184 美國), 07/10/2020 15:57:50
askaleroux: magicNumber // do not erase this8F 07/10 15:58
testPtt: 基本上不用Quantity 太長9F 07/10 16:06

完全能理解,縮寫、簡寫、更短的字、更簡潔的寫法,只要能解決問題,都是好的


我開了 https://github.com/EngTW/English-for-Programmers/issues/7  來追蹤
縮寫、簡寫的優缺點 ? ·  Issue #7 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 → testPtt: 基本上不用Quantity 太長 → bheegrl: ammoQty 推 dks50217: Cnt 推 enthos: pn, an, bg, hp \ Forth(Write-only lang.) style. 推 dces4212: nr_student 推 Ben ...

 
這個題目,謝謝 :)

RedArmy95: 推10F 07/10 16:15
chuegou: #define ZERO 011F 07/10 16:31
unmolk: 樓上是殺小xddd12F 07/10 16:52
bowin: 推 AmosYang 好文!13F 07/10 16:59
accessdenied: zero = 0 這個我真的看到! 還有 True = 1, False =14F 07/10 17:09
accessdenied:  0
alihue: 推16F 07/10 17:12
sniper2824: 好文17F 07/10 17:12
ben810514: bulletCount18F 07/10 17:27
ben810514: 沒事 是重量以為是數量
sirius65482: 不管啦 通通用xxxNum20F 07/10 17:40
bheegrl: ammoQty21F 07/10 17:40

我開了 https://github.com/EngTW/English-for-Programmers/issues/7  來追蹤
縮寫、簡寫的優缺點 ? ·  Issue #7 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 → testPtt: 基本上不用Quantity 太長 → bheegrl: ammoQty 推 dks50217: Cnt 推 enthos: pn, an, bg, hp \ Forth(Write-only lang.) style. 推 dces4212: nr_student 推 Ben ...

 
「縮寫、簡寫」這個題目;謝謝提供這個題目 :)

paulshain04: 很讚欸 推一個22F 07/10 18:07
Rm: amount跑去哪了23F 07/10 18:09

amount  整理在「不可數名詞」的「其它格式」那段。 :)

amount  本身當主詞時,常用來描述金錢上的「總金額(total amount)」,我開了
https://github.com/EngTW/English-for-Programmers/issues/9 來追蹤這個題目
,謝謝 :)

atpx: 好文, 不得不推24F 07/10 19:02
pttano: 我都定arg1,arg2,var1,var225F 07/10 19:10
pttano: 我都定arg1,arg2,var1,var2
kokolotl: a1, b1啊~~27F 07/10 19:11
pttano: 我都定arg1,arg2,var1,var228F 07/10 19:12
pttano: 我都定arg1,arg2,var1,var2
pttano: 我都定arg1,arg2,var1,var2
infixman: 推推31F 07/10 19:19
chuegou: 樓上重複定義編譯器不給過32F 07/10 19:21
dks50217: Cnt33F 07/10 19:21

我開了 https://github.com/EngTW/English-for-Programmers/issues/7  來追蹤
縮寫、簡寫的優缺點 ? ·  Issue #7 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 → testPtt: 基本上不用Quantity 太長 → bheegrl: ammoQty 推 dks50217: Cnt 推 enthos: pn, an, bg, hp \ Forth(Write-only lang.) style. 推 dces4212: nr_student 推 Ben ...

 
「縮寫、簡寫」這個題目;謝謝提供這個題目 :)

yyc1217: remove delete erase cancel dismiss34F 07/10 19:24

我開了 https://github.com/EngTW/English-for-Programmers/issues/10 來追蹤
這個題目,謝謝 :)

enthos: pn, an, bg, hp \ Forth(Write-only lang.) style.35F 07/10 19:35

我開了 https://github.com/EngTW/English-for-Programmers/issues/7  來追蹤
縮寫、簡寫的優缺點 ? ·  Issue #7 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 → testPtt: 基本上不用Quantity 太長 → bheegrl: ammoQty 推 dks50217: Cnt 推 enthos: pn, an, bg, hp \ Forth(Write-only lang.) style. 推 dces4212: nr_student 推 Ben ...

 
「縮寫、簡寫」這個題目;謝謝 :)

goldflower: 看過中國人用拼音寫扣 jin_jia_ki_si36F 07/10 19:46

我開了 https://github.com/EngTW/English-for-Programmers/issues/8  來追蹤
台式英文、漢語拼音、日文拼音的優缺點? ·  Issue #8 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 推 vi000246: 我喜歡台式英文 bulletWeight remainLife 推 goldflower: 看過中國人用拼音寫扣 jin_jia_ki_si 推 gasbomb: 上一份工作看到的 氣死 → OrzOGC: 用拼音真的...還有日文拼音的...冏... 完全能理解,解決問題 ...

 
這個題目,謝謝 :)

leo5916267: 多查英文字典吧?有時候直接問英文好的人資XD超好笑37F 07/10 19:57
leo5916267: ,寫程式還會問到人資那邊
gasbomb: 上一份工作看到的 氣死https://i.imgur.com/x9GmljV.jpg39F 07/10 19:59
[圖]

我開了 https://github.com/EngTW/English-for-Programmers/issues/8  來追蹤
台式英文、漢語拼音、日文拼音的優缺點? ·  Issue #8 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 推 vi000246: 我喜歡台式英文 bulletWeight remainLife 推 goldflower: 看過中國人用拼音寫扣 jin_jia_ki_si 推 gasbomb: 上一份工作看到的 氣死 → OrzOGC: 用拼音真的...還有日文拼音的...冏... 完全能理解,解決問題 ...

 
這個題目,謝謝 :)

jason90929: 讚40F 07/10 20:09
Lhmstu: 推推41F 07/10 21:00
negligence: 推42F 07/10 21:39
invidia: 感謝分享43F 07/10 22:13
abc0922001: 感謝分享,命名真的是難題44F 07/10 22:26
jasonwung: 實用推45F 07/10 22:59
labbat: qwertyyuiop46F 07/10 23:10
CaptPlanet: 推47F 07/10 23:21
dces4212: nr_student48F 07/10 23:28

我開了 https://github.com/EngTW/English-for-Programmers/issues/7  來追蹤
縮寫、簡寫的優缺點 ? ·  Issue #7 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 → testPtt: 基本上不用Quantity 太長 → bheegrl: ammoQty 推 dks50217: Cnt 推 enthos: pn, an, bg, hp \ Forth(Write-only lang.) style. 推 dces4212: nr_student 推 Ben ...

 
「縮寫、簡寫」這個題目;謝謝 :)

OrzOGC: 用拼音真的...還有日文拼音的...冏...49F 07/10 23:46

我開了 https://github.com/EngTW/English-for-Programmers/issues/8  來追蹤
台式英文、漢語拼音、日文拼音的優缺點? ·  Issue #8 ·  EngTW/English-for-Programmers ·  GitHub
[圖]
 推 vi000246: 我喜歡台式英文 bulletWeight remainLife 推 goldflower: 看過中國人用拼音寫扣 jin_jia_ki_si 推 gasbomb: 上一份工作看到的 氣死 → OrzOGC: 用拼音真的...還有日文拼音的...冏... 完全能理解,解決問題 ...

 
這個題目,謝謝 :)

Dracarys: foo bar baz50F 07/11 00:10

我開了 https://github.com/EngTW/English-for-Programmers/issues/11 來追蹤
"metasyntactic variable"  這個題目,謝謝 :)

Luke3723: 推51F 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
Bencrie: nr_ 這個是 Linux kernel 的命名52F 07/11 02:46

感謝指點 orz

richard07250: 先推在看53F 07/11 03:39
Ouranos: Amos 必推!!!54F 07/11 04:02
※ 編輯: AmosYang (136.56.13.184 美國), 07/11/2020 05:36:24
ben4562002: 推 獲益良多55F 07/11 08:32
joy7658x348: 推!命名對新人工程師更是一個問題XD常常會看不懂那56F 07/11 09:45
joy7658x348: 是啥
NeCool: 推58F 07/11 09:57
coder5566: 推59F 07/11 11:34
believe91326: 實用推60F 07/11 15:08
zxcv860513: 推,很怕看到需要通靈的命名61F 07/11 16:12

感謝各位的欣賞 :)

如果能想到「很難看懂、需要通靈」的命名案例,請讓我知道;這可以幫助我把這
些資料整理得更完善,謝謝。

在這篇底下推文,或在 GitHub 或 Facebook 留言都可以 :)

* GitHub: https://github.com/EngTW/English-for-Programmers/issues
Issues ·  EngTW/English-for-Programmers ·  GitHub
[圖]
《程式英文》:用英文提昇程式可讀性. Contribute to EngTW/English-for-Programmers development by creating an account on GitHub. ...

 
* Facebook: https://bit.ly/3iNsgDO
TW Yang | Facebook
[圖]
TW Yang is on Facebook. Join Facebook to connect with TW Yang and others you may know. Facebook gives people the power to share and makes the world more open and connected.
※ 編輯: 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
klandakuei: 推62F 07/12 22:15
visual: 推63F 07/14 18:55

--
※ 看板: layzer 文章推薦值: 0 目前人氣: 0 累積人氣: 215 
分享網址: 複製 已複製
r)回覆 e)編輯 d)刪除 M)收藏 ^x)轉錄 同主題: =)首篇 [)上篇 ])下篇