[心得][英文] 如何命名「次數」變數

看板Soft_Job (軟體人)作者 (泛用人型編碼器)時間3年前 (2020/08/07 12:30), 3年前編輯推噓54(5408)
留言62則, 57人參與, 3年前最新討論串1/1
之前談過「數量」(參考 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 times 被分享 2 次(複數) 就後端來說,與以前談過的「數量」語法很相似: * 名詞 + Count * viewCount 觀看次數 * shareCount 分享次數 * numberOf + 名詞(複數) * numberOfViews 觀看次數 * numberOfShares 分享次數 「名詞 + 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://www.ptt.cc/bbs/Soft_Job/M.1596774617.A.BA6.html

08/07 12:32, 3年前 , 1F
08/07 12:32, 1F

08/07 12:33, 3年前 , 2F
推推
08/07 12:33, 2F

08/07 12:36, 3年前 , 3F
08/07 12:36, 3F
謝謝 :)

08/07 12:40, 3年前 , 4F
推 命名好的話 程式就好維護
08/07 12:40, 4F
十分同意 有些人是卡在「用英文表達」這一關,希望我整理的這些資料能幫上忙 :) ※ 編輯: AmosYang (136.56.13.184 美國), 08/07/2020 13:16:48

08/07 13:23, 3年前 , 5F
08/07 13:23, 5F

08/07 13:31, 3年前 , 6F
推,學到好多
08/07 13:31, 6F

08/07 14:45, 3年前 , 7F
頂一個先…
08/07 14:45, 7F

08/07 14:53, 3年前 , 8F
有看有推
08/07 14:53, 8F

08/07 15:26, 3年前 , 9F
08/07 15:26, 9F

08/07 15:32, 3年前 , 10F
推推 實用
08/07 15:32, 10F
謝謝各位 :)

08/07 16:09, 3年前 , 11F
推 常常有英文命名苦惱
08/07 16:09, 11F
有沒有興趣聊聊在英文上遇到的困境? :) 在這裡推文留言, PTT 站內信,或從以下管道都可以: * https://github.com/EngTW/English-for-Programmers/issues * https://www.facebook.com/twy30 * https://twitter.com/twy30 一樣有英文苦惱的版友們,都可以來聊聊 :)

08/07 16:18, 3年前 , 12F
整理好其實可以出書了
08/07 16:18, 12F
目前還沒想到那麼遠 XD 目前的計畫是一週解個 2~3 題,把蒐集到的題目 (*1) 解決掉,看能不能有系統 地把「程式寫作常見英文問題」解決掉。 有任何程式寫作、軟體工程方面的英文題目都可以提出來討論,一起把這個知識庫 整理的更完善。 *1: https://github.com/EngTW/English-for-Programmers/issues

08/07 17:16, 3年前 , 13F
推推
08/07 17:16, 13F

08/07 18:01, 3年前 , 14F
08/07 18:01, 14F

08/07 18:47, 3年前 , 15F
推推
08/07 18:47, 15F

08/07 19:02, 3年前 , 16F
推 很實用!!
08/07 19:02, 16F

08/07 19:08, 3年前 , 17F
08/07 19:08, 17F

08/07 19:27, 3年前 , 18F
08/07 19:27, 18F

08/07 19:27, 3年前 , 19F
08/07 19:27, 19F

08/07 19:34, 3年前 , 20F
08/07 19:34, 20F

08/07 19:42, 3年前 , 21F
推 感謝分享
08/07 19:42, 21F

08/07 21:34, 3年前 , 22F
08/07 21:34, 22F

08/07 22:07, 3年前 , 23F
08/07 22:07, 23F

08/07 23:32, 3年前 , 24F
必須推
08/07 23:32, 24F

08/07 23:47, 3年前 , 25F
08/07 23:47, 25F

08/07 23:51, 3年前 , 26F
謝謝分享
08/07 23:51, 26F

08/08 00:23, 3年前 , 27F
學習了!
08/08 00:23, 27F
感謝各位的欣賞與鼓勵 orz ※ 編輯: AmosYang (136.56.13.184 美國), 08/08/2020 03:21:02

08/08 06:45, 3年前 , 28F
謝謝分享 很用心很有幫助
08/08 06:45, 28F

08/08 08:02, 3年前 , 29F
推推推
08/08 08:02, 29F

08/08 09:45, 3年前 , 30F
08/08 09:45, 30F

08/08 09:48, 3年前 , 31F
推~~
08/08 09:48, 31F

08/08 09:51, 3年前 , 32F
08/08 09:51, 32F

08/08 10:43, 3年前 , 33F
大推!
08/08 10:43, 33F

08/08 10:48, 3年前 , 34F
08/08 10:48, 34F

08/08 11:32, 3年前 , 35F
08/08 11:32, 35F

08/08 12:32, 3年前 , 36F
推個 覺得有趣
08/08 12:32, 36F
謝謝 :) ※ 編輯: AmosYang (136.56.13.184 美國), 08/08/2020 15:03:28

08/08 16:01, 3年前 , 37F
08/08 16:01, 37F

08/08 20:45, 3年前 , 38F
推 常遇到
08/08 20:45, 38F

08/08 21:34, 3年前 , 39F
實用推
08/08 21:34, 39F

08/08 21:34, 3年前 , 40F
感謝用心整理
08/08 21:34, 40F

08/09 00:39, 3年前 , 41F
三大難題之一XD
08/09 00:39, 41F
命名真的不容易 XD

08/09 00:50, 3年前 , 42F
08/09 00:50, 42F

08/09 10:51, 3年前 , 43F
08/09 10:51, 43F
謝謝各位的鼓勵 :)

08/09 18:57, 3年前 , 44F
I,J,K
08/09 18:57, 44F
變數三天王 XD ※ 編輯: AmosYang (136.56.13.184 美國), 08/10/2020 08:16:22

08/10 08:40, 3年前 , 45F
感謝分享
08/10 08:40, 45F

08/10 10:05, 3年前 , 46F
08/10 10:05, 46F

08/11 09:54, 3年前 , 47F
推好文
08/11 09:54, 47F

08/11 10:10, 3年前 , 48F
08/11 10:10, 48F

08/11 13:06, 3年前 , 49F
08/11 13:06, 49F

08/11 15:59, 3年前 , 50F
08/11 15:59, 50F

08/11 23:51, 3年前 , 51F
08/11 23:51, 51F
謝謝 :) ※ 編輯: AmosYang (136.56.13.184 美國), 08/12/2020 07:05:15

08/12 20:25, 3年前 , 52F
中推
08/12 20:25, 52F

08/13 14:16, 3年前 , 53F
08/13 14:16, 53F

08/14 00:33, 3年前 , 54F
08/14 00:33, 54F
謝謝 :)

08/15 22:29, 3年前 , 55F
其實就後面Cnt即可,例如getCnt, releaseCnt, delCnt越簡
08/15 22:29, 55F

08/15 22:29, 3年前 , 56F
單越好,而且func裏面處理完就釋放, 不要跳到別的func裏,
08/15 22:29, 56F

08/15 22:29, 3年前 , 57F
變數越簡單扼要越容易讓人想看code
08/15 22:29, 57F

08/15 22:31, 3年前 , 58F

08/15 22:31, 3年前 , 59F
type=
08/15 22:31, 59F
> 變數越簡單扼要越容易讓人想看code 十分同意。

08/16 09:18, 3年前 , 60F
cnt num size 有夠煩XD
08/16 09:18, 60F
「縮寫與否」的確是論戰的熱門題目 XD ※ 編輯: AmosYang (136.56.13.184 美國), 08/17/2020 05:57:37

08/18 06:36, 3年前 , 61F
推推 可以在每個介紹下面寫點範例 像是 google Airb
08/18 06:36, 61F

08/18 06:36, 3年前 , 62F
nb style guild 會有 good bad 的舉例
08/18 06:36, 62F
文章代碼(AID): #1VBDZPkc (Soft_Job)
文章代碼(AID): #1VBDZPkc (Soft_Job)