[請益] 變數命名技巧

看板Soft_Job (軟體人)作者 (wplace)時間5年前 (2020/06/14 21:47), 5年前編輯推噓38(38059)
留言97則, 48人參與, 5年前最新討論串1/2 (看更多)
想請益變數命名有什麼技巧嗎,有時候遇到多個單字在一起的變數或method 都不太會命名,我大部分都打上完整的單字,不過都會變得滿長的 如果想要縮寫,又怕縮寫寫不好到時候別人或者自己回過來看還看不出來 還是縮寫有什麼技巧 還請各位前輩提點 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.180.122.212 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1592142471.A.E10.html

06/14 21:50, 5年前 , 1F
省略母音?
06/14 21:50, 1F

06/14 21:50, 5年前 , 2F
06/14 21:50, 2F

06/14 21:53, 5年前 , 3F
舉個例子?
06/14 21:53, 3F
getFrimwareVersionByXXX (透過XXX取得韌體版本)

06/14 22:00, 5年前 , 4F
有些單字其實可以縮寫;駝峰式命名和加底線的方式,都
06/14 22:00, 4F

06/14 22:00, 5年前 , 5F
可以讓參數比較直觀
06/14 22:00, 5F
※ 編輯: wplace (175.180.122.212 臺灣), 06/14/2020 22:07:12

06/14 22:10, 5年前 , 6F
getFwVersionByXXX
06/14 22:10, 6F

06/14 22:21, 5年前 , 7F
GetFwVerByXXX
06/14 22:21, 7F

06/14 22:25, 5年前 , 8F
聞香一下 以前26同事取的 https://i.imgur.com/QdO4bqq.png
06/14 22:25, 8F

06/14 22:25, 5年前 , 9F
老實說method完全不建議縮寫,除了公認的縮寫有一點機會
06/14 22:25, 9F

06/14 22:25, 5年前 , 10F
可以使用外,建議還是寧願過長而不要造成看不懂或跟其他
06/14 22:25, 10F

06/14 22:25, 5年前 , 11F
單字的混淆機會
06/14 22:25, 11F

06/14 22:27, 5年前 , 12F
過長沒關係+1,看得懂比較重要。
06/14 22:27, 12F

06/14 22:27, 5年前 , 13F
如果推文的舉例,更多時候會像這樣實現:Framework.getV
06/14 22:27, 13F

06/14 22:27, 5年前 , 14F
ersionByXXXX(...)
06/14 22:27, 14F

06/14 22:28, 5年前 , 15F
建議分區加底線 如果你駝峰到底 你就知道痛苦...
06/14 22:28, 15F

06/14 22:28, 5年前 , 16F
通常會很長 都是後面 condition的緣故 前面用途應該是大類
06/14 22:28, 16F

06/14 22:29, 5年前 , 17F
method很長 滿常遇到的 因為條件不同的很多 但用途又類似
06/14 22:29, 17F

06/14 22:29, 5年前 , 18F
又或是getInfoByXXXX().framework
06/14 22:29, 18F

06/14 22:30, 5年前 , 19F
過長就善用Struct的作法
06/14 22:30, 19F

06/14 23:23, 5年前 , 20F
一堆ByXXX 應該是可以包成 class 的吧 單字縮寫誰
06/14 23:23, 20F

06/14 23:23, 5年前 , 21F
知道你的縮寫是不是其他人的縮寫
06/14 23:23, 21F

06/14 23:34, 5年前 , 22F
拜託不要亂縮寫
06/14 23:34, 22F

06/14 23:58, 5年前 , 23F
1. 縮寫要有限度 別縮過頭 2. 不要怕變數名稱太長
06/14 23:58, 23F

06/14 23:59, 5年前 , 24F
加底線是 Python idiomatic.. 有時你拿底線的變數名稱給
06/14 23:59, 24F

06/15 00:00, 5年前 , 25F
Java developer 看 他們其實也不習慣 重點是全文要統一
06/15 00:00, 25F

06/15 00:01, 5年前 , 26F
使用同一種命名方式
06/15 00:01, 26F

06/15 00:04, 5年前 , 27F
Clean Code:
06/15 00:04, 27F

06/15 00:07, 5年前 , 28F
不要只縮到只剩頭就好…看了就頭痛
06/15 00:07, 28F

06/15 00:46, 5年前 , 29F
安卓resources只能小寫英文和0-9
06/15 00:46, 29F

06/15 01:23, 5年前 , 30F
method不要縮,method取得好裡面變數縮寫就行,一般人
06/15 01:23, 30F

06/15 01:23, 5年前 , 31F
應該都看得懂
06/15 01:23, 31F

06/15 01:27, 5年前 , 32F
一個方法60個字元,根本閱讀毒藥
06/15 01:27, 32F

06/15 01:27, 5年前 , 33F
以前罵縮過頭,現在一堆長過頭的
06/15 01:27, 33F

06/15 01:28, 5年前 , 34F
如果XXX是參數可以省略byXXX,但得視情況,不是很通用就
06/15 01:28, 34F

06/15 02:27, 5年前 , 35F
我都會上網查一下那個單字的公定縮寫abbreviation 是啥
06/15 02:27, 35F

06/15 02:28, 5年前 , 36F
寧可長 不要短看不懂
06/15 02:28, 36F

06/15 02:29, 5年前 , 37F
長的被看懂未來還有可被英文好的人refactor 自己沒照英文正
06/15 02:29, 37F

06/15 02:29, 5年前 , 38F
確的縮寫亂縮 以後真的只能靠通靈才知道意思了
06/15 02:29, 38F

06/15 02:30, 5年前 , 39F
我寫的縮寫有些比較少用的 我還會再後面註解一下縮寫是啥
06/15 02:30, 39F

06/15 02:31, 5年前 , 40F
最近回去看半年前自己寫的code 因為有正確命名與註解 3分鐘
06/15 02:31, 40F

06/15 02:31, 5年前 , 41F
就找到該找的地方 感到驕傲
06/15 02:31, 41F

06/15 02:34, 5年前 , 42F
反觀新公司中國外包的幹你娘程式碼 命名常數int HOST 跟HOS
06/15 02:34, 42F

06/15 02:34, 5年前 , 43F
T_ 幹你媽兩個值還存不一樣的 真的很想殺人
06/15 02:34, 43F

06/15 02:36, 5年前 , 44F
可怕的是我HOST 常數之前已經使用一堆了 冷汗直流
06/15 02:36, 44F

06/15 03:38, 5年前 , 45F

06/15 03:38, 5年前 , 46F
ons
06/15 03:38, 46F

06/15 03:38, 5年前 , 47F
之前跟同事討論過業界較通用的縮寫
06/15 03:38, 47F

06/15 03:38, 5年前 , 48F
歡迎大家參考 也歡迎發PR補充XD
06/15 03:38, 48F

06/15 04:10, 5年前 , 49F
不要縮寫
06/15 04:10, 49F

06/15 06:21, 5年前 , 50F
如果你有引數,那個by後面的通常可以省略
06/15 06:21, 50F

06/15 06:59, 5年前 , 51F
變數名稱長點會怎樣嗎
06/15 06:59, 51F

06/15 07:33, 5年前 , 52F
也可以參考一下我的心得 lionethan.com/2019/08/%e7
06/15 07:33, 52F

06/15 07:33, 5年前 , 53F

06/15 08:11, 5年前 , 54F
對英文不熟悉的看到超長變數很煩躁
06/15 08:11, 54F

06/15 08:19, 5年前 , 55F
另一個思路是 byXXX 這種程式可以改寫成 Factory M
06/15 08:19, 55F

06/15 08:19, 5年前 , 56F
ethod 或 Strategy 可以省下取名的困擾,又保持程
06/15 08:19, 56F

06/15 08:19, 5年前 , 57F
式的擴充性
06/15 08:19, 57F

06/15 09:03, 5年前 , 58F
個人最討厭的就是英文亂縮寫
06/15 09:03, 58F

06/15 09:19, 5年前 , 59F
EbiIwnTuSnpdNfToUiOmf();
06/15 09:19, 59F

06/15 10:02, 5年前 , 60F
by(XXX xxx)呢
06/15 10:02, 60F

06/15 10:03, 5年前 , 61F
不然原來的例子算OK吧 很好懂呀
06/15 10:03, 61F

06/15 10:04, 5年前 , 62F
By 省掉,可以看參數知道。此外應該選可讀性高的字體,長
06/15 10:04, 62F

06/15 10:04, 5年前 , 63F
度不是問題,看不懂命名才是問題
06/15 10:04, 63F

06/15 10:24, 5年前 , 64F
我覺得長度沒什麼問題
06/15 10:24, 64F

06/15 10:25, 5年前 , 65F
之前看過會縮成GFVBX這種恐怖的縮寫
06/15 10:25, 65F

06/15 10:37, 5年前 , 66F
XXX().Get().Firmware().Version()
06/15 10:37, 66F

06/15 11:02, 5年前 , 67F
看語言吧 像Swift幾乎都不縮寫 cocoa api一堆20-30字母的m
06/15 11:02, 67F

06/15 11:02, 5年前 , 68F
ethod Go的話很多api就一堆縮寫
06/15 11:02, 68F

06/15 11:10, 5年前 , 69F
曾經跟對岸工程師合作 他寫一個method叫getNBvalue()
06/15 11:10, 69F

06/15 11:11, 5年前 , 70F
我一直不懂什麼NB? 筆電嗎? 還是什麼特殊單字的縮寫??
06/15 11:11, 70F

06/15 11:11, 5年前 , 71F
後來問他才知道 NB=牛逼 ....
06/15 11:11, 71F

06/15 11:13, 5年前 , 72F
XDDDDDDDDDDDDDDDDDD 太牛啦
06/15 11:13, 72F

06/15 11:39, 5年前 , 73F
getSBValue()
06/15 11:39, 73F

06/15 12:05, 5年前 , 74F
這樣看起來 那位對岸人士也沒什麼問題 取的真牛XDD
06/15 12:05, 74F

06/15 12:45, 5年前 , 75F
getSBvalue
06/15 12:45, 75F

06/15 12:57, 5年前 , 76F
getNMSLvalue()
06/15 12:57, 76F

06/15 13:07, 5年前 , 77F
我都打全名,用簡寫的會被誤判。
06/15 13:07, 77F

06/15 13:11, 5年前 , 78F
例:creditCardInformation()之類的。
06/15 13:11, 78F

06/15 14:14, 5年前 , 79F
名稱過長會不會是需要在切一層結構的警示呢
06/15 14:14, 79F

06/15 16:09, 5年前 , 80F
最好是駝峰跟底線兩種一起混用,然後避開password
06/15 16:09, 80F

06/15 16:09, 5年前 , 81F
account login之類的單字,因為弱掃軟體會不管三七二
06/15 16:09, 81F

06/15 16:09, 5年前 , 82F
十一直接判為弱點
06/15 16:09, 82F

06/15 16:24, 5年前 , 83F
fwver@ fwver! /* FORTH get and set */
06/15 16:24, 83F

06/15 17:45, 5年前 , 84F
abcdefghihklmn...
06/15 17:45, 84F

06/15 17:46, 5年前 , 85F
用完一輪就 aa ab ac ad
06/15 17:46, 85F

06/15 17:46, 5年前 , 86F
寫牛逼的我會打死他 XDDD
06/15 17:46, 86F

06/15 18:14, 5年前 , 87F
用沒看過縮寫真的很靠北
06/15 18:14, 87F

06/15 18:14, 5年前 , 88F
getCNMValue(0
06/15 18:14, 88F

06/15 18:16, 5年前 , 89F
寫log也不要用縮寫
06/15 18:16, 89F

06/15 18:39, 5年前 , 90F
我不寫log4都寫2
06/15 18:39, 90F

06/15 19:38, 5年前 , 91F
最好
06/15 19:38, 91F

06/16 02:30, 5年前 , 92F
getNBValue XDDDD
06/16 02:30, 92F

06/16 08:07, 5年前 , 93F
JS我用駝峰,Python用底線,CSS用減號。
06/16 08:07, 93F

06/16 08:59, 5年前 , 94F
長就給他長啊 縮到看不懂跟aaa bbb有啥差
06/16 08:59, 94F

06/16 11:05, 5年前 , 95F
aaabbb的真的是災難,有時候用日文Romaji與內地的漢語拼
06/16 11:05, 95F

06/16 11:05, 5年前 , 96F
音搞的命名都好多了。
06/16 11:05, 96F

06/17 10:27, 5年前 , 97F
感謝2樓,推影片
06/17 10:27, 97F
文章代碼(AID): #1UvYg7uG (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1UvYg7uG (Soft_Job)