自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

變量名字,怎么命名更好?

開發(fā)
當研發(fā)人員沒有寫注釋時,這就要求在寫變量名稱的時候,需要讓其他研發(fā)同學(xué)看得懂這是什么意思,它的用途是什么。

一、話題背景

在軟件開發(fā)領(lǐng)域,代碼的可讀性是一個不容忽視的問題。一個常見的挑戰(zhàn)是變量命名的規(guī)范性。不規(guī)范的定義和隨意的命名習(xí)慣常常使得研發(fā)人員難以理解變量的具體含義及其用途。

那當研發(fā)人員沒有寫注釋時,這就要求在寫變量名稱的時候,需要讓其他研發(fā)同學(xué)看得懂這是什么意思,它的用途是什么。如果看不懂的情況下,亂猜的場景下,就可能導(dǎo)致傳錯參數(shù),出現(xiàn)bug。

那么就有同事提出了這幾種變量命名選項:

  • 方式一:英文直譯,直觀,但是一旦遇到復(fù)雜的定義時,命名的名稱就可能很長了。
  • 方式二:一定程度的縮寫,大概率能猜測出來,感覺不怎么好看。
  • 方式三:完整縮寫,如果不寫注解,完全看不出意思;大部分代碼都不寫注解的。

所以面對這些命名選項,大家認為哪種方式更為合適,或者是否有其他更好的命名方式呢?

二、鵝廠工程師的看法

1.

 miey-S1安全規(guī)劃中心應(yīng)用研究員 

駱駝命名法挺好使的,混合使用 拼音/英文單詞/單詞縮寫 構(gòu)成變量和函數(shù)的名字。StudentNum、student_num,如果不是 num、cnt、idx、len、avg、obj、pkg、func、info 等等耳聞能詳?shù)目s寫,就沒必要強行縮寫了

另外,這個方式三....真的有被笑到

2.

 

lakhdar-TEG應(yīng)用開發(fā)工程師

studentNum,太長的話用縮寫+注釋。

3.

 chuan-CDG應(yīng)用開發(fā)工程師 

num 和 number 是一個有二義性的詞匯,不要使用。 它既可以表示總數(shù),也可以表示序號。

有人會認為 studentNumber 天然是學(xué)生數(shù)量的意思,但是通常 idNumber 就不是id數(shù)量的意思,而是身份證號。

那么 carNumber是汽車數(shù)量的意思,還是汽車號碼的意思呢?這就讓代碼復(fù)雜化了。

studentCount 是一個一般好的名字,studentCnt是一個更好的名字。

All you need is Code Complete(《代碼大全》)

4.

 krisjc-TEG運營開發(fā)工程師 

studentCount。

我個人覺得變量名不怕你起得長,就怕你起得短。不然后來人看你的代碼一臉懵,可讀性才是第一位的。

“我們要規(guī)避過于罕見或者根本不常用的單詞,甚至是自己創(chuàng)造的詞語,那更是禁忌,畢竟代碼是給人讀的,而不是什么過于抽象的藝術(shù)作品?!?/p>

5.

 kernbin-WXG客戶端開發(fā)工程師

視情況而定吧,如果上下文給足了信息,比如這是一個局部變量,在一個很短的名為 CountNumberOfStudent 的小函數(shù)里,那么我覺得可以短一些,二或者三都可以,因為信息足夠了。

如果這是個全局變量(先不談全局變量是否要加 g_ 之類的前綴)或者某個很復(fù)雜很大的函數(shù)里,那么我覺得名字應(yīng)該足夠長足夠完整。因為在這個變量用到的上下文中信息不一定充足。

6.

 n-TEG后臺開發(fā)工程師

除非是業(yè)界習(xí)俗或公認,一個單詞截一部分的應(yīng)該排斥。

以下是幾個壞例子:

  • stNum
  • stuNum
  • studNum
  • studeNum
  • studenNum

7.

 langdon-IEG運營開發(fā)工程師

變量名長度和作用域正相關(guān)。可以參考《代碼整潔之道》clean code。

另外, IDE+AI時代,似乎沒有必要用numStuds這種不節(jié)約幾個字母,還容易造成歧義的縮寫,除非stud的寫法取得局部共識。

8.

 kairee-IEG UI開發(fā)工程師

studentCount, studentNumber。

為什么要在意變量名稱長?難道是用紙和筆寫代碼嗎?

9.

kael-TEG運營開發(fā)工程師

變量取名實際上服務(wù)于代碼閱讀人。這個代碼閱讀人可以是你是你的團隊,也可以是只有你自己。

通常來說,為了保障團隊的閱讀,應(yīng)使用描述足夠準確和無歧義的名字。

如果存在某段代碼,后續(xù)永遠不用修改和維護,或者只用運行一次,那么名稱的長短就不那么重要了。例如臨時編寫的腳本,用完就刪的那種。

還有一種極端的情形,在類似ACM的競賽中,通常就會把名字取成和題目描述中一致,包括x,y,z,n,m,q,p這種。一方面是能夠在爭分奪秒的比賽中快速打碼,另一方面是與原題中變量語義保持一致,減少反復(fù)讀題的變量轉(zhuǎn)換理解的開銷,本身也可以增加閱讀效率。

責任編輯:趙寧寧 來源: 騰訊技術(shù)工程
相關(guān)推薦

2020-05-08 14:45:00

JS代碼變量

2010-12-10 14:37:01

PHP可變變量名

2020-08-23 18:08:29

JavaScript命名參數(shù)位置參數(shù)

2012-05-17 11:04:18

匈牙利命名法

2021-01-13 15:19:27

Python中文變量

2009-11-10 15:52:20

VB.NET變量名

2021-10-15 10:27:42

變量命名

2024-10-09 11:43:42

2015-04-20 17:12:53

變量變量名最糟糕變量名

2012-08-08 09:12:01

程序員

2011-07-22 17:14:53

java

2024-05-15 08:20:08

GradleMaven工具

2009-11-23 19:50:12

PHP6.0

2019-08-13 16:27:12

前端命名JavaScript

2009-05-26 12:23:56

Linux變量文件命名

2019-12-18 08:58:39

代碼變量名函數(shù)

2020-04-02 10:36:43

JS代碼函數(shù)

2015-11-18 11:34:39

吃貨餐館起名

2009-09-21 08:50:42

.NET中文變量

2011-11-16 16:18:38

程序員
點贊
收藏

51CTO技術(shù)棧公眾號