Soft_Job 板


LINE

本週主題 * 如何命名「集合名詞」數量變數? * 「集合名詞」「整體」數量變數 * 「集合名詞」「成員個體」數量變數 * 如何命名「回傳值」? * 能不能用 books 代表書本數量? * Google 簡報 https://bit.ly/3m9PWDZ * GitHub 討論 https://bit.ly/321ResR --- # 如何命名「集合名詞(collective noun)數量變數」? 「集合名詞」是個很有趣的觀念,隨著使用情景不同,集合名詞表達的「整體、個 體」語意也不同,而美式、英式英文對於集合名詞的文法也不同,使得情況更為複 雜;這裡我們將聚焦在「集合名詞數量變數」上, ## 以 team 這個字為例 * 團隊 * team * teams (複數) * 團隊數 ← 有多少支隊伍 * teamCount * numberOfTeams * 團隊大小 ← 某特定隊伍裡有多少成員 * teamSize * teamMemberCount * numberOfTeamMembers ## 以 fleet 這個字為例 * 艦隊 * fleet * fleets (複數) * 艦隊數 ← 有多少支艦隊 * fleetCount * fleetQuantity * numberOfFleets * 艦隊大小 ← 某特定艦隊裡有多少船 * fleetSize * fleetShipCount * fleetShipQuantity * numberOfFleetShips 易言之,當把「集合名詞」視為「一體」時,多半可以沿用之前提過的「數量變數 」命名法則 ( https://bit.ly/3elcZGT ) 。 要數「集合名詞」中的「成員個體」時,多半可以用 Size 這個字來代表「成員個 體數」,例如: * team + sizeteamSize * fleet + sizefleetSize 或著,也可以把「數量變數」命名法則應用在「集合名詞 + 成員個體名詞」上, 例如: * team + member + countteamMemberCount * fleet + ship + quantityfleetShipQuantity ## 參考資料 * https://en.wikipedia.org/wiki/Collective_noun#Agreement_in_different_forms_of_English * https://en.wikipedia.org/wiki/American_and_British_English_grammatical_differences#Subject-verb_agreement * https://bit.ly/3elcZGT 如何命名「數量變數」 感謝參與 https://github.com/EngTW/English-for-Programmers/issues/6 討論的 網友。 --- # 如何命名「回傳值」? 以下提供兩個參考選項。 ## ret * 在 1979 年 Intel 8086 的指令集中就有 RET 指令;代表「從程序返回」 ( "Return from procedure" ) * 延伸版本 * returnValue * retVal ## result * 在 ASP.NET 框架裡,以 IActionResult 等類別代表回傳值 * 特定語意情景的「結果」 * 例如: 答案 answer; (總)和 sum, total; 差 difference; 積 product; 商 quotient; 平均 mean, average * 或著,在像是 `GetStorageQuota()` 這樣的方法中,傳回 `quota` * 在 `GetBookTitle()` 這樣的方法中,傳回 `title` ## 參考資料 * https://en.wikipedia.org/wiki/X86_instruction_listings * https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-3.1 * https://bit.ly/3a1lDcO ;第 7 頁,「讀者提問:總和 sum vs. total」 感謝參與 https://github.com/EngTW/English-for-Programmers/issues/3 討論 的網友。 --- # 能不能用 books 代表書本數量? "books" 在語意上是「一堆書 / 不只一本書 / 書的集合(collection) 」。 我傾向於用以下方式表達「書本數量」,語意會更清楚。 * bookCount * bookQuantity * numberOfBooks ## 參考資料 * https://bit.ly/3elcZGT 如何命名「數量變數」 感謝參考 https://github.com/EngTW/English-for-Programmers/issues/15 及原 臉書討論串的網友。 --- # 結語 適當的命名可以幫助你的讀者了解你的程式碼的意圖,降低溝通成本,減少誤會的 機率。 歡迎推文留言討論、提問 :) --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 136.56.13.184 (美國)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1599810784.A.DE2.html ※ 編輯: AmosYang (136.56.13.184 美國), 09/11/2020 15:53:54
1F:→ eva19452002: 光是變數命名就可以出一本書來討論了,也真的有出書 09/11 16:04
十分同意;有不少很棒的資料、前人留下的智慧結晶,論述「命名」的各種原則與 優點。 我希望這系列的文章能提供「方法、工具、零件、指引」,能幫助母語非英文的讀 者更近一步去掌握那些前人留下的智慧結晶。 :)
2F:推 summerleaves: 優文 09/11 16:22
3F:推 DCTmaybe: push 09/11 16:26
4F:→ Domos: 不可數名詞呢?如data, info 09/11 17:46
很有趣的問題,請看下面的回文。 :)
5F:推 Tiguru: 推 09/11 18:17
6F:推 goldie: 優文,推 09/11 22:04
7F:推 Ouranos: 推推! 謝謝分享~ 09/11 23:09
謝謝各位的欣賞 :) --- > → Domos: 不可數名詞呢?如data, info
8F:推 BlazarArc: 推 這種真的頭很痛 像上面說的 data 複數 XD 09/12 03:09
以 data 為例,我想到兩種情形: # "data" 另有其物 例如說 * dataFile 資料檔案 * dataPoint 資料點 * dataStream 資料流 而 file, point, stream 可以用 "count" 來數,就變成 * dataFileCount ← 有多少個資料檔案 * dataPointCount ← 有多少個資料點 * dataStreamCount ← 有多少個資料流 還可以有其它的 "data" 物件,例如 * dataEntry 資料條目 * dataCell 資料格 等等。 # 視 "data" 為一個整體 那就可能是 * dataLength 資料長度 (暗示著這資料是像是 array, list 這樣的結構) * dataSize 資料大小 (佔據的儲存空間) 也可以寫成 * dataInMegabytes 以 MB 計的資料量 --- 如果有其它的情形,請讓我知道,我來看看要怎麼用英文表達出來 :) ※ 編輯: AmosYang (136.56.13.184 美國), 09/12/2020 04:02:24
9F:→ eva19452002: 請問大大你怎麼看微軟所推出的匈牙利命名法? 09/12 07:50
我的看法是,「匈牙利命名法」是一種工具;每種工具有適合它的舞台、時空背景 。 若回到 1970, 1980 年代,我可以想像匈牙利命名法有它的好處。 來到 2020 年代,我會覺得我們有比匈牙利命名法更方便的工具。 匈牙利命名法 (又分成系統、應用兩個層面) 在技術上的優缺點,多年來已經累積 了相當透徹的討論,可以參考這個: * https://zh.wikipedia.org/zh-tw/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95 ※ 編輯: AmosYang (136.56.13.184 美國), 09/12/2020 18:54:10
10F:推 FRAXIS: 那 vector of vector, set of set 要怎麼命名? 09/12 21:59
很有趣的問題,請看下面的回文
11F:推 jasonwung: 推 09/12 22:20
12F:推 TWkobe: 推 很實用 09/13 00:08
謝謝 :) --- > 推 FRAXIS: 那 vector of vector, set of set 要怎麼命名?
13F:推 wulouise: nested verctor or set...不要寫這種資料結構 09/13 09:23
14F:推 wulouise: 應該用alias/typedef把內層定義有意義的名稱,比方vecto 09/13 09:28
15F:→ wulouise: r<point>定義成polygon, vector<polygon> 09/13 09:28
wulouise 給了很棒的例子,幫它排版一下: * vector<vector<point>> * vector<polygon> 我是從這兩個方向去想: * 「就這個程式的情境而言,什麼是實用的、有意義的?」 * 「如何與讀者大腦中既有的知識連結?」 例如說,假設現在是在測試「編譯器處理泛型的功能」,那麼, * setOfSets * setsInSet 這樣的名字就因為這個情境而實用、有意義;讀者大概也看得懂。 假設現在在寫 3D 影像相關的東西,那麼, * vectorOfPointVectors * PointVectorVectors 大概就沒有 * vector<polygon> polygons * vector<polygon> polygonVector 來得好。 易言之,我會這樣想:若能把情境也納入考量,會對命名更有幫助 :) ※ 編輯: AmosYang (136.56.13.184 美國), 09/13/2020 10:28:26
16F:推 wulouise: 感謝原po xd 建議不要有多層資料結構 除非就是x維矩陣 09/13 16:08
不客氣 XD > 建議不要有多層資料結構 除非就是x維矩陣 這讓我想到,我有次需要做到「把一個字串對應到多個字串」,例如, * 輸入 "app" * 輸出 "apple, application, apply" 我就用了個 `HashSet<string, List<string>>` 的資料結構,像這樣 * HashSet<string, List<string>> wordMappings 現在想想,的確可以運用 type aliasing 把程式碼改成像是這樣: * HashSet<string, WordList> wordMappings * HashSet<Word, WordList> wordMappings 很有趣的方向,我要再仔細想想 :) ※ 編輯: AmosYang (136.56.13.184 美國), 09/13/2020 20:18:24







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:iOS站內搜尋

TOP