[請益] 一個變數命名的小問題

看板Soft_Job作者 (水晶尼克)時間9年前 (2014/12/05 21:19), 9年前編輯推噓34(34080)
留言114則, 45人參與, 最新討論串1/1
寫程式常常會遇到 要用一個變數來代表某種東西的 "數目" "量" 遇到這種情況大家一般會用什麼命名法 有看過一些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

12/05 21:22, , 1F
可以去參考一下google coding style, +s應該是不太清楚
12/05 21:22, 1F
我也覺得不太清楚 不過是在蠻有名的原始碼看到的

12/05 21:23, , 2F
nodeNum node_num
12/05 21:23, 2F
我自己以前是這樣用 不過number意思好像比較接近 數字 號碼 後來自己用的有點彆扭 還是說蠻多人這樣用的 ※ 編輯: CrystalNik (1.174.184.100), 12/05/2014 21:26:43

12/05 21:36, , 3F
num再怎麼說也比加s好吧@@ s感覺比較像一個collection
12/05 21:36, 3F

12/05 21:53, , 4F
nodeCount, nodeSize (?)
12/05 21:53, 4F

12/05 21:57, , 5F
加個s只讓我覺得是不是英文沒學好...
12/05 21:57, 5F

12/05 21:58, , 6F
我們家的rd貌似習慣用nNode之類的來表示數量...
12/05 21:58, 6F

12/05 22:10, , 7F
命名跟英文沒學好有關?所以一定要取個非菜市場中文名才
12/05 22:10, 7F

12/05 22:10, , 8F
算有把中文學好?
12/05 22:10, 8F

12/05 22:13, , 9F
這時候就要推薦這本書 http://ppt.cc/dlKG
12/05 22:13, 9F

12/05 22:16, , 10F
我是用int countNode; nodes是放node的collection
12/05 22:16, 10F

12/05 22:17, , 11F
我取過 howManyNodes
12/05 22:17, 11F

12/05 22:17, , 12F
眾數命名是表示collection +1, EF的POCO class就是這樣
12/05 22:17, 12F

12/05 22:18, , 13F
來命名的.
12/05 22:18, 13F

12/05 22:20, , 14F
傾向用numOfNode, nodes會用來指collection.
12/05 22:20, 14F

12/05 22:21, , 15F
要更清楚會用nodeList, nodeMap之類的把collection型式標出
12/05 22:21, 15F

12/05 22:21, , 16F
page_num ≠ num_pages,num_ 放前面比較安全
12/05 22:21, 16F

12/05 22:22, , 17F
放後面 智慧提示比較方便@@
12/05 22:22, 17F

12/05 22:23, , 18F
加S不叫眾數 那是複數
12/05 22:23, 18F

12/05 22:24, , 19F
統一風格就好
12/05 22:24, 19F

12/05 22:50, , 20F
我都用count nodeCount
12/05 22:50, 20F

12/05 22:51, , 21F
+s用在collection
12/05 22:51, 21F

12/05 23:20, , 22F
num千萬不要用,和No有什麼差?數字代表的意義是總數就
12/05 23:20, 22F

12/05 23:20, , 23F
用total,代表索引,就用index,如果用來計數就用count
12/05 23:20, 23F

12/05 23:20, , 24F
能夠一眼看的懂該變數意義,且符合命名原則就行
12/05 23:20, 24F

12/05 23:33, , 25F
推NumberOfNode,一眼明瞭的變數名稱
12/05 23:33, 25F

12/05 23:35, , 26F
集合我會加s
12/05 23:35, 26F

12/06 00:07, , 27F
這問題我正想問,唉,變數命名好難。
12/06 00:07, 27F

12/06 02:00, , 28F
當然是 count 啊, 會加 s 真的是英文沒學好無誤
12/06 02:00, 28F

12/06 02:00, , 29F
講正格的, 要學好命名請多看優質程式碼, 開源專案好多
12/06 02:00, 29F

12/06 03:02, , 30F
參考語言標準函式庫命名,e.g.c++:size, python:len, etc
12/06 03:02, 30F

12/06 03:09, , 31F
count 不過這是習慣 因為int我習慣的方式是 int nBooks
12/06 03:09, 31F

12/06 03:10, , 32F
類似這樣的命名法 變數前會加個n 結尾再加s的話就很有
12/06 03:10, 32F

12/06 03:10, , 33F
計數的感覺 這時就不會用count了 太長 XD
12/06 03:10, 33F

12/06 04:52, , 34F
還無誤?我都傻惹~不過就是命名~硬要扯到英文好不好~名稱
12/06 04:52, 34F

12/06 04:54, , 35F
要能一眼辨別嫌太長~縮又覺得你縮得詞不達意~為了個命名
12/06 04:54, 35F

12/06 04:57, , 36F
花一堆時間還一堆聲音~有意義嗎?倒不如把架構弄好~寫好文
12/06 04:57, 36F

12/06 04:58, , 37F
件和註解就好...
12/06 04:58, 37F
還有 37 則推文
12/06 19:06, , 75F
C# 有 TreeView.Node"s"...頗呵 XDDD
12/06 19:06, 75F

12/06 19:28, , 76F
TreeView.Nodes 不就是集合嗎? 它可不是數量
12/06 19:28, 76F

12/06 19:28, , 77F
我沒寫過C#的 只是不敢相信MS會這樣命名所以去查文件
12/06 19:28, 77F

12/06 19:29, , 78F
12/06 19:29, 78F

12/06 19:29, , 79F
某人不是根本搞不清楚大家在討論什麼 就是太想被打臉
12/06 19:29, 79F

12/06 19:35, , 80F
我回的是s大~"別拿來當多個"~也根本沒什麼打不打臉的問題
12/06 19:35, 80F

12/06 19:36, , 81F
換家公司就是換個coding style~命名也永遠會有人有意見~
12/06 19:36, 81F

12/06 19:36, , 82F
說說看~C# 的 List 和 Java 的 List 到底誰才取得好?
12/06 19:36, 82F

12/06 19:52, , 83F
公司怎麼訂就怎麼跟啊~會引起多大風波~版上也討論過了...
12/06 19:52, 83F

12/06 20:55, , 84F
numberOfXxx / xxxQuantity
12/06 20:55, 84F

12/06 21:57, , 85F
你沒搜尋過 node 跟 nodes吧? 不是說有沒有的問題 是在
12/06 21:57, 85F

12/06 21:58, , 86F
實務上遇過多次這種 取名nodes當大容器 處理過程用node當
12/06 21:58, 86F

12/06 21:59, , 87F
現在在處理的當下node 整個很亂 當然 有的人又說 那不要
12/06 21:59, 87F

12/06 21:59, , 88F
取node當目前處理的那個...這樣不是無窮迴圈? 命名只差
12/06 21:59, 88F

12/06 22:00, , 89F
一個字母在人腦本來就是很難辨別的資料....
12/06 22:00, 89F

12/06 22:01, , 90F
你去看你說的那部份code 一定有用別的方法辨別 而不是只
12/06 22:01, 90F

12/06 22:02, , 91F
用"s"來辨別 ....搞死人也不是這樣...
12/06 22:02, 91F

12/06 22:04, , 92F
還有nodes意義是總數量, nodes是代表array/list/map
12/06 22:04, 92F

12/06 22:05, , 93F
nodes代表單一個的都有 code又不是只有一個人在看
12/06 22:05, 93F

12/06 22:06, , 94F
別把情緒帶到命名規則之爭 這根本還不到那邊...純粹很難
12/06 22:06, 94F

12/06 22:07, , 95F
辨識而已 要不然idxes 什麼都只加s試試看
12/06 22:07, 95F

12/06 22:09, , 96F
已存在的也不代表沒有可以動的地方...QT實作都改過多次
12/06 22:09, 96F

12/06 22:11, , 97F
很多人戰了老半天 到了有名大公司整個不敢用 頗ㄏ 看多了
12/06 22:11, 97F

12/06 22:12, , 98F
或是自己被陰到才慢慢接受..總之自己說要多人認同 蠻想
12/06 22:12, 98F

12/06 22:13, , 99F
知道多加"s"就好的方式是哪邊比較好
12/06 22:13, 99F

12/06 22:27, , 100F
XD 先說好~我可從來沒說怎麼寫才算好~不同公司不同見解~
12/06 22:27, 100F

12/06 22:28, , 101F
大家統一就是好~在公司也不一定是不"敢"用~而是不"能"用
12/06 22:28, 101F

12/06 22:31, , 102F
"為什麼"應該也不用解釋了吧...
12/06 22:31, 102F

12/06 23:19, , 103F
用nodeCount Nodes會誤認為是Node的集合 尤其又是大寫開頭
12/06 23:19, 103F

12/07 12:51, , 104F
註解才是王道...
12/07 12:51, 104F

12/07 13:21, , 105F
NumOfNode 我不知道是 `node數量`還是`node 的編號`
12/07 13:21, 105F

12/07 18:01, , 106F
有時候寫程式花很多時間在想命名要怎麼取會比較好
12/07 18:01, 106F

12/07 20:25, , 107F
xxx_Cnt
12/07 20:25, 107F

12/08 09:05, , 108F
count +1,表示正在計數比較生動
12/08 09:05, 108F

12/08 19:16, , 109F
用 nodes 表示 node 的量很怪吧,當你說 I have 3 dogs
12/08 19:16, 109F

12/08 19:17, , 110F
的時候, dogs 的意思是 3 嗎? 當然不是啊!
12/08 19:17, 110F

12/08 22:39, , 111F
dog_3s
12/08 22:39, 111F

12/11 07:51, , 112F
偷請教一下各位陣列會怎麼命名 XD
12/11 07:51, 112F

12/13 22:14, , 113F
mat_xxx
12/13 22:14, 113F

12/13 23:18, , 114F
matrix mtx_
12/13 23:18, 114F
文章代碼(AID): #1KWR3uON (Soft_Job)