看板 Soft_Job 關於我們 聯絡資訊
寫程式常常會遇到 要用一個變數來代表某種東西的 "數目" "量" 遇到這種情況大家一般會用什麼命名法 有看過一些code 是在物件名稱後面加個s 例如: int Nodes; int blocks; 來表示Node和block的數目 也有看到一種說法是使用Quantity(數量)的縮寫Qty int PageQty; 想請問一下對於這種代表數量的變數命名有什麼建議嗎? 還有如果大家有什麼比較好的"意思的表達"的命名法也可以提出來討論 因為網路上好像比較難找到關於"意思的表達"的命名法的指南 大多都是針對"型式"的命名說明 例如會大多會說明 class 成員函式 成員變數 一般變數... 該怎麼命名 可是比較少提到例如 表達數量該怎麼命名 表達size該怎麼命名 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.174.184.100 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1417785592.A.617.html
CHNR: 可以去參考一下google coding style, +s應該是不太清楚 12/05 21:22
我也覺得不太清楚 不過是在蠻有名的原始碼看到的
carlcarl: nodeNum node_num 12/05 21:23
我自己以前是這樣用 不過number意思好像比較接近 數字 號碼 後來自己用的有點彆扭 還是說蠻多人這樣用的 ※ 編輯: CrystalNik (1.174.184.100), 12/05/2014 21:26:43
hungys: num再怎麼說也比加s好吧@@ s感覺比較像一個collection 12/05 21:36
ping1777: nodeCount, nodeSize (?) 12/05 21:53
meowyih: 加個s只讓我覺得是不是英文沒學好... 12/05 21:57
cybelia: 我們家的rd貌似習慣用nNode之類的來表示數量... 12/05 21:58
andymai: 命名跟英文沒學好有關?所以一定要取個非菜市場中文名才 12/05 22:10
andymai: 算有把中文學好? 12/05 22:10
givemepass: 這時候就要推薦這本書 http://ppt.cc/dlKG 12/05 22:13
Ayukawayen: 我是用int countNode; nodes是放node的collection 12/05 22:16
yyc1217: 我取過 howManyNodes 12/05 22:17
leicheong: 眾數命名是表示collection +1, EF的POCO class就是這樣 12/05 22:17
leicheong: 來命名的. 12/05 22:18
atst2: 傾向用numOfNode, nodes會用來指collection. 12/05 22:20
atst2: 要更清楚會用nodeList, nodeMap之類的把collection型式標出 12/05 22:21
purpose: page_num ≠ num_pages,num_ 放前面比較安全 12/05 22:21
GoalBased: 放後面 智慧提示比較方便@@ 12/05 22:22
robler: 加S不叫眾數 那是複數 12/05 22:23
PoorLoser: 統一風格就好 12/05 22:24
sing10407: 我都用count nodeCount 12/05 22:50
Eior: +s用在collection 12/05 22:51
Zephyr750: num千萬不要用,和No有什麼差?數字代表的意義是總數就 12/05 23:20
Zephyr750: 用total,代表索引,就用index,如果用來計數就用count 12/05 23:20
followmeyo: 能夠一眼看的懂該變數意義,且符合命名原則就行 12/05 23:20
sonor0517: 推NumberOfNode,一眼明瞭的變數名稱 12/05 23:33
kiii210: 集合我會加s 12/05 23:35
ACMANIAC: 這問題我正想問,唉,變數命名好難。 12/06 00:07
uranusjr: 當然是 count 啊, 會加 s 真的是英文沒學好無誤 12/06 02:00
uranusjr: 講正格的, 要學好命名請多看優質程式碼, 開源專案好多 12/06 02:00
rodion: 參考語言標準函式庫命名,e.g.c++:size, python:len, etc 12/06 03:02
Ekmund: count 不過這是習慣 因為int我習慣的方式是 int nBooks 12/06 03:09
Ekmund: 類似這樣的命名法 變數前會加個n 結尾再加s的話就很有 12/06 03:10
Ekmund: 計數的感覺 這時就不會用count了 太長 XD 12/06 03:10
andymai: 還無誤?我都傻惹~不過就是命名~硬要扯到英文好不好~名稱 12/06 04:52
andymai: 要能一眼辨別嫌太長~縮又覺得你縮得詞不達意~為了個命名 12/06 04:54
andymai: 花一堆時間還一堆聲音~有意義嗎?倒不如把架構弄好~寫好文 12/06 04:57
andymai: 件和註解就好... 12/06 04:58
x000032001: +sz 12/06 05:21
leacks: 看的懂+提示為主 12/06 08:29
leacks: 寫到後來一堆變數,用型態在前面往往顯得麻煩 12/06 08:29
mrbigmouth: 記得之前有篇"程式工程師覺得最難的十件事".... 12/06 08:42
mrbigmouth: naming something 排在第一 XD 12/06 08:42
hungys: C# 的 List 元素個數就是用 Count,取 Count 其實不錯清 12/06 10:30
hungys: 楚 12/06 10:30
andymai: 但是到 Java 就變成 size 了~C# 的 Dictionary變成 Map 12/06 10:45
andymai: C# 的 List 是類別~而 Java 的 List 是介面~所以是不是換 12/06 10:47
andymai: 個人就換個想法?在這上面琢磨著好壞~不是無聊至極嗎? 12/06 10:47
Change: iNode 12/06 13:53
ACMANIAC: 一點也不無聊,不如 andymai 說說你怎麼命名的吧 lol 12/06 14:26
kiii210: 我也覺得命名一點也不無聊, 反而很重要 12/06 15:38
kiii210: 好的命名可以讓人一眼看出這是要幹麻, 而不用去猜, 12/06 15:38
kiii210: 去翻這個命名到底是什麼意思, 我就維護過這種code 12/06 15:38
kiii210: 大部分時間都花在找變數是什麼意思, 這樣有效率嗎? 12/06 15:39
kiii210: 一眼看出變數命名的意思跟看完變數名稱再去看comment 12/06 15:40
kiii210: 後者會比較快嗎 12/06 15:40
kiii210: 推薦去看看Apple的Cocoa coding guidelines 12/06 15:44
kiii210: http://goo.gl/OkNGzl 從變數命名到函數命名到類別prefix 12/06 15:44
kiii210: 都有它的一套規則,我寫到現在快3年了還是不時回去翻 12/06 15:45
kiii210: 再去看看其他open source的library,你會發現他們的style 12/06 15:46
kiii210: 幾乎都差不多 12/06 15:47
KASUGAOSAKA: 取名蠻花時間的 12/06 15:59
cha122977: numOfNode +1 複數型通常用在collection或array @@ 12/06 16:56
uranusjr: 衷心希望我這輩子都不會維護到 andymai 寫的程式 12/06 18:04
andymai: 都覺得命名很無聊了~我怎麼可能再拿我自己的命名出來說呢 12/06 18:11
andymai: ?拿出來一定會有不同聲音的啊!說它無聊是因為就算你想得 12/06 18:12
andymai: 再好~都會有人覺得不好~不然何必大家都在搞coding style 12/06 18:13
andymai: 你能一眼看出不代表別人可以~關鍵在於雙方思想有沒有達到 12/06 18:14
andymai: 共識~所以才要寫註解和文件~不是嗎?架構都尚且要考慮半天 12/06 18:16
andymai: 才能兩權相害取其輕了~名字取個還算滿意的就好了~要不然 12/06 18:17
andymai: 請問到底是取成size還是Count好?複數加個s~不也看出它就 12/06 18:18
andymai: 代表多個嗎?與其在這上面做文章~倒不如想想架構設計問題 12/06 18:19
andymai: 說它無聊不代表我就會取個無意義的名稱~這是兩件事~可以 12/06 18:28
andymai: 看清楚再說嗎?雖然我也早就習慣一堆人總是隨便看看隨便回 12/06 18:28
saladim: 千萬別用"s"來當多個 數量等等...node跟nodes你絕對分不 12/06 18:43
andymai: C# 有 TreeView.Node"s"...頗呵 XDDD 12/06 19:06
Goog1e: TreeView.Nodes 不就是集合嗎? 它可不是數量 12/06 19:28
Goog1e: 我沒寫過C#的 只是不敢相信MS會這樣命名所以去查文件 12/06 19:28
Goog1e: http://goo.gl/NmKMeS 12/06 19:29
Goog1e: 某人不是根本搞不清楚大家在討論什麼 就是太想被打臉 12/06 19:29
andymai: 我回的是s大~"別拿來當多個"~也根本沒什麼打不打臉的問題 12/06 19:35
andymai: 換家公司就是換個coding style~命名也永遠會有人有意見~ 12/06 19:36
andymai: 說說看~C# 的 List 和 Java 的 List 到底誰才取得好? 12/06 19:36
andymai: 公司怎麼訂就怎麼跟啊~會引起多大風波~版上也討論過了... 12/06 19:52
ou9810: numberOfXxx / xxxQuantity 12/06 20:55
saladim: 你沒搜尋過 node 跟 nodes吧? 不是說有沒有的問題 是在 12/06 21:57
saladim: 實務上遇過多次這種 取名nodes當大容器 處理過程用node當 12/06 21:58
saladim: 現在在處理的當下node 整個很亂 當然 有的人又說 那不要 12/06 21:59
saladim: 取node當目前處理的那個...這樣不是無窮迴圈? 命名只差 12/06 21:59
saladim: 一個字母在人腦本來就是很難辨別的資料.... 12/06 22:00
saladim: 你去看你說的那部份code 一定有用別的方法辨別 而不是只 12/06 22:01
saladim: 用"s"來辨別 ....搞死人也不是這樣... 12/06 22:02
saladim: 還有nodes意義是總數量, nodes是代表array/list/map 12/06 22:04
saladim: nodes代表單一個的都有 code又不是只有一個人在看 12/06 22:05
saladim: 別把情緒帶到命名規則之爭 這根本還不到那邊...純粹很難 12/06 22:06
saladim: 辨識而已 要不然idxes 什麼都只加s試試看 12/06 22:07
saladim: 已存在的也不代表沒有可以動的地方...QT實作都改過多次 12/06 22:09
saladim: 很多人戰了老半天 到了有名大公司整個不敢用 頗ㄏ 看多了 12/06 22:11
saladim: 或是自己被陰到才慢慢接受..總之自己說要多人認同 蠻想 12/06 22:12
saladim: 知道多加"s"就好的方式是哪邊比較好 12/06 22:13
andymai: XD 先說好~我可從來沒說怎麼寫才算好~不同公司不同見解~ 12/06 22:27
andymai: 大家統一就是好~在公司也不一定是不"敢"用~而是不"能"用 12/06 22:28
andymai: "為什麼"應該也不用解釋了吧... 12/06 22:31
v7q4: 用nodeCount Nodes會誤認為是Node的集合 尤其又是大寫開頭 12/06 23:19
rupcj8: 註解才是王道... 12/07 12:51
ot32em: NumOfNode 我不知道是 `node數量`還是`node 的編號` 12/07 13:21
eva19452002: 有時候寫程式花很多時間在想命名要怎麼取會比較好 12/07 18:01
ckaha: xxx_Cnt 12/07 20:25
howdiun: count +1,表示正在計數比較生動 12/08 09:05
bisconect: 用 nodes 表示 node 的量很怪吧,當你說 I have 3 dogs 12/08 19:16
bisconect: 的時候, dogs 的意思是 3 嗎? 當然不是啊! 12/08 19:17
domototice: dog_3s 12/08 22:39
chan15: 偷請教一下各位陣列會怎麼命名 XD 12/11 07:51
goldflower: mat_xxx 12/13 22:14
domototice: matrix mtx_ 12/13 23:18