亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

代碼整潔之道—變量名

软件中随处可见命名,我们给变量,函数,参数,类,包。给源代码及源代码目录命名,给jar文件,war文件,ear文件命名,我们命名,命名,不断命名。既然有这么多命名,那么我们就有必要做好它。

选个好名字要花时间,但是节省下来的时间比花掉的多。注意,一旦有好的命名,就要替换掉原本旧的名称。认真对待每个变量名,你当用自己第一个孩子般的谨慎给变量命名。

给变量命名是开发的基础,看起来是小事,然成败在于细节之中,不要忽视它的重要性。

基本的命名法则

  • 不要定义一些与系统名称相冲突的变量名,比如定义数据库的order字段会报错。

  • 不要定义太长的变量名,比如XYZControllerForEfficientHandingOfStringsXYZControllerForEfficientStorageOfStrings区分起来的麻烦

  • 类名一般是名词,方法名一般是动词

  • 避免留下掩盖代码本意的错误线索,避免使用与本意相悖的词。

  • 尽量见名知意

做有意义的区分

废话是一种没意义的区分,假设你有一个Product类,如果还有一个ProductData和ProductInfo类,它们的名称虽然有区别,但是意思却无区别,info和data就像a,an和the一样,是意义含混的 废话。

如果缺少明确约定,变量moneyAmount就与money没区别,cusomerInfo与customer没区别,accountData与account没区别,theMessage与message没区别,要区分名称,就要以读者能鉴别不同之处的地方区分。

每个概念对应一个词

比如fetch,get,retrieve代表的都是获得的意思,但是如果在表达获得的时候三者混着使用,在当前文件的获得使用的是get,下个文件获得使用的是fetch,这样就容易造成混淆。

假设其余人看到你的程序,若同一个概念你使用的是同一个词,那么对自己对他人都是一种帮助。

避免思维映射

不要让读你代码的人把你所命名的变量在头脑中转换为另外一种概念。

单字母变量就是个问题,在作用域小,也没有名称冲突时,循环计数器,自然有可能被命名为i,j,k,这是因为传统上惯用单字母名称做循环计数器。
然而在多数情况下,单字母名称不是个好的选择,读的人必须要把它在脑中转换为真实的概念。

在你使用单字母做为变量的时候,在搜索这个名称的时候就出现了问题, 太多单词都会包含你所定义变量名的字母。

普通聪明程序员和专业程序员的区别在于,专业程序员了解到,明确才是王道

语境

添加有意义的语境,不要添加没有意义的语境。

设想你有名为firstName、lasiName、street、houseNu田ber、city·state和zipcode的变量。当它们在一块儿的时候,很明确是构成了一个地址。不过,如果只是在某个方法中看见孤零零一个state变量昵?你会理所当然推断那是某个地址的一部分吗?

可以添加前缀addrFirstName、addrLastName、addrstate等,以此提供语境。至少,读者会明白这些变量是某个更大结构的一部分。当然,更好的方案是创建名为Address的类。这样,即便是编译器也会知道这些变量隶属某个更大的概念了。

所谓不要添加无意义的语境,当你的名字也许短小,但是足够清楚的表达你想表达的意思的时候,就无需添加额外的语境。

Address是个好名称,不过若与Mac地址,端口地址,Web地址区别,可以考虑使用PostalAdress,MAC,URI来区别,因为大家虽代表的是地址,但意思上还是有区别的。

最后

这里没有展示案例,纯理论看起来理解起来相对费力一些,建议购买《代码整洁之道》

让自己的代码更好,通往编程大神之路。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
JAVA開發工程師
手記
粉絲
1.1萬
獲贊與收藏
1545

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消