糟糕的命名:編程最難的事3

如果你不知道一件事物叫什么嫉父,

你就不知道它是什么沛硅。

如果你不知道這是什么,

你就不可能坐下來寫代碼绕辖∫〖。”


文章轉(zhuǎn)載自杰微刊,是一個(gè)全新的技術(shù)原創(chuàng)平臺仪际,盡管在這里介紹容易招來推廣之嫌围小,但是,文章的每一個(gè)字弟头,都是經(jīng)過的細(xì)細(xì)雕琢吩抓,即使能引來大家的質(zhì)疑和批評涉茧,也樂意聽取赴恨,不斷改進(jìn)自己。

運(yùn)用正確意味著每一個(gè)詞都要用的恰到好處伴栓。

關(guān)于命名?——菲利普·卡爾頓(Phil?Karlton)

計(jì)算機(jī)科學(xué)有兩個(gè)艱難的事:

1.緩存失效?伦连;

2.命名。

關(guān)于不好的命名——?jiǎng)⒁姿埂た_爾(Lewis?Carroll)

當(dāng)我使用一個(gè)詞钳垮,胖墩兒說是一種輕蔑惑淳,當(dāng)然這也正是我本事的意思-不多也不少。

愛麗絲奇遇記中饺窿,透過鏡子歧焦,愛麗絲究竟發(fā)現(xiàn)了什么?(1871)

故意無意義的名稱

理論上講肚医,foo僅僅作為一個(gè)占位符名稱(因?yàn)樗鼰o任何含義)

關(guān)于命名——薩姆·加德納(Sam Gardiner)

“如果你不知道一件事物叫什么绢馍,

你就不知道它是什么。

如果你不知道這是什么肠套,

你就不可能坐下來寫代碼舰涌。”

什么是最糟糕的變量名你稚?

——data

什么是更糟糕的變量名瓷耙?

data2

什么是第三糟糕的變量名?

data_2

縮寫容易引起歧義

以英文為例刁赖, char?是?character(字符)?還是?characteristic(特點(diǎn))?

mod?的意思是?modify(修改)?還是?modulo?(模)搁痛?

acc,pos或者auth呢宇弛?

另外鸡典, fab?只是一個(gè)函數(shù),?:A?B涯肩。

而不是?fabulous?(傳說)


允許一個(gè)例外:ID?作為?“identity”?(身份)


一個(gè)字母太短

局部變量:它的含義是什么轿钠?

var?a?=?42巢钓;

這一個(gè)是例外:

for??(int??i??=??1;??i??< 42; ++i)

改成?ii,jj疗垛,kk?也并不好

函數(shù)式編程:一個(gè)字母仍然太短

def modp[C](f: B1 => (B2, C), a: A1): (A2, C) = {

val (b, c) = f(get(a)) (set(a, b), c)

}

代碼出處:第70行?


可以用特定含義的詞代替更多的詞

什么是appointment_list症汹?

A calendar?日歷贷腕?


什么是company_person背镇?

Employee普通職員 或者是owner老板?


什么是text_correction_by_editor泽裳?

只是一個(gè)edit-編輯瞒斩。


模糊語言是模糊的

艾倫·格林寫了一些模糊的詞,如:

InvoiceManager涮总、

TaskManager

‘Manager’?非常不準(zhǔn)確胸囱,

其含義之一可能是你想要的字:

Bucket,?Supervisor,?Planner,?Builder

原文地址:點(diǎn)擊查看


代碼里的模糊用語

get在方法名的開頭只用于返回一個(gè)字段值。

如果不是這樣瀑梗,或者從其他地方得到的數(shù)據(jù)烹笔,?用其他的詞:

fetch,?find,?lookup,?create,?calculate,?derive,?concoct.


錯(cuò)誤的詞是錯(cuò)的,同義詞易混淆

order?≠?shipment

carrier?≠?broker

shipment?≠?transport?leg

shipment?=?consignment

carrier?=?transporter

transport?leg?=?journey


Java企業(yè)中間件示例 -

Apache?Camel

JF杰微刊出品: Apache?Camel- http://camel.apache.org


再探屬性訪問器

在許多庫中抛丽,?這些方法名稱將是不可抗拒的谤职,但不建議使用:

getEven

getReal

getAround

getRoundTo

getRichQuick

getJoke


糟糕命名的總結(jié)


無意義:foo;

太一般:data亿鲜;

太短:a允蜈;

太長:text_correction_by_editor;

縮寫:acc蒿柳;

模糊:InvoiceManager饶套;

錯(cuò)誤:order;

只是不好笑:startCamel


未完待續(xù)其馏。


原文地址:JF杰微刊出品


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末凤跑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子叛复,更是在濱河造成了極大的恐慌仔引,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,366評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件褐奥,死亡現(xiàn)場離奇詭異咖耘,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)撬码,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評論 3 395
  • 文/潘曉璐 我一進(jìn)店門儿倒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事夫否〕估纾” “怎么了?”我有些...
    開封第一講書人閱讀 165,689評論 0 356
  • 文/不壞的土叔 我叫張陵凰慈,是天一觀的道長汞幢。 經(jīng)常有香客問我,道長微谓,這世上最難降的妖魔是什么森篷? 我笑而不...
    開封第一講書人閱讀 58,925評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮豺型,結(jié)果婚禮上仲智,老公的妹妹穿的比我還像新娘。我一直安慰自己姻氨,他們只是感情好钓辆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哼绑,像睡著了一般岩馍。 火紅的嫁衣襯著肌膚如雪碉咆。 梳的紋絲不亂的頭發(fā)上抖韩,一...
    開封第一講書人閱讀 51,727評論 1 305
  • 那天,我揣著相機(jī)與錄音疫铜,去河邊找鬼茂浮。 笑死,一個(gè)胖子當(dāng)著我的面吹牛壳咕,可吹牛的內(nèi)容都是我干的席揽。 我是一名探鬼主播,決...
    沈念sama閱讀 40,447評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼谓厘,長吁一口氣:“原來是場噩夢啊……” “哼幌羞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起竟稳,我...
    開封第一講書人閱讀 39,349評論 0 276
  • 序言:老撾萬榮一對情侶失蹤属桦,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后他爸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體聂宾,經(jīng)...
    沈念sama閱讀 45,820評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評論 3 337
  • 正文 我和宋清朗相戀三年诊笤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了系谐。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,127評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡讨跟,死狀恐怖纪他,靈堂內(nèi)的尸體忽然破棺而出鄙煤,到底是詐尸還是另有隱情,我是刑警寧澤茶袒,帶...
    沈念sama閱讀 35,812評論 5 346
  • 正文 年R本政府宣布馆类,位于F島的核電站,受9級特大地震影響弹谁,放射性物質(zhì)發(fā)生泄漏乾巧。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評論 3 331
  • 文/蒙蒙 一预愤、第九天 我趴在偏房一處隱蔽的房頂上張望沟于。 院中可真熱鬧,春花似錦植康、人聲如沸旷太。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,017評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽供璧。三九已至,卻和暖如春冻记,著一層夾襖步出監(jiān)牢的瞬間睡毒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,142評論 1 272
  • 我被黑心中介騙來泰國打工冗栗, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留演顾,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評論 3 373
  • 正文 我出身青樓隅居,卻偏偏與公主長得像钠至,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子胎源,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 《裕語言》速成開發(fā)手冊3.0 官方用戶交流:iApp開發(fā)交流(1) 239547050iApp開發(fā)交流(2) 10...
    葉染柒丶閱讀 26,837評論 5 19
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理棉钧,服務(wù)發(fā)現(xiàn),斷路器涕蚤,智...
    卡卡羅2017閱讀 134,668評論 18 139
  • TCP協(xié)議里窗口機(jī)制有2種:一種是固定的窗口大邢芮洹;一種是滑動(dòng)的窗口赞季。這個(gè)窗口大小就是我們一次傳輸幾個(gè)數(shù)據(jù)愧捕。對所有數(shù)...
    元素周期表的十七君閱讀 822評論 0 1
  • 麻木不仁 停休第八天 依稀記得接到停休的消息伊始,微笑著和其他部門的同事說著“沒關(guān)系申钩、習(xí)慣了”等寬慰的話次绘,內(nèi)心卻有...
    狼_左瞳_冷色調(diào)閱讀 186評論 0 2
  • 我們說好的,麥子熟了我們便去麥城。這話說了很多遍邮偎,似乎我早忘記是夢里發(fā)生過的場景還是電影里的某句臺詞管跺,但麥子熟了很...
    蔻濰稱閱讀 288評論 0 1