代碼命名習(xí)慣——信達(dá)雅

吟安一個(gè)字淮菠,捻斷數(shù)莖須移迫。

Two hard things :

  • cache invalidate
  • naming

一些個(gè)階段:

  • 功能 work 的代碼
  • 天花亂墜氓鄙, 炫技的代碼
  • 優(yōu)雅的代碼
  • 易被讀懂的代碼

代碼功底亦是一種修行璧坟, 摸索階段總是琢磨著將功能實(shí)現(xiàn)了

后面開(kāi)始接觸各大分支技術(shù)诚隙, 有了一定沉淀讶隐, 閱讀了一些源碼, 優(yōu)秀框架后

會(huì)寫(xiě)一些過(guò)度設(shè)計(jì)最楷, 天花亂墜整份, 炫技的代碼

而后大成待错, 寫(xiě)的是 優(yōu)雅口口傳頌, 易被讀懂的代碼烈评。

若將代碼比作武學(xué)火俄, 命名就是好內(nèi)功

張無(wú)忌獨(dú)步武林, 天賦異稟讲冠, 正是有九陽(yáng)神功內(nèi)功加持打底

如果你也開(kāi)始為一個(gè)命名思考了很久 瓜客?

文言翻譯講究: 信達(dá)雅, 命名類似竿开。

信: 信服
命名起碼應(yīng)該是準(zhǔn)確的谱仪。

如果寫(xiě)一個(gè) 回調(diào), 我們會(huì)命名為 XXXListener否彩, 然后定義 一個(gè) onXXX方法
而不會(huì)寫(xiě)一個(gè) XXXResponser, XXXReactor
命名是要傳達(dá) context 的疯攒, 要遵傳彼此的習(xí)慣。

類型 類名可選后綴
控制類 Processor列荔、Manager敬尺、Engine、Center贴浙、Core砂吞、Reaper
生產(chǎn)類 Factory、Pool崎溃、Maker蜻直、Builder
工具類 Util、Helper
數(shù)據(jù)類 Bean袁串、Request概而、Response、Query(名次表意即可)
回調(diào)類 Callback般婆、Trigger到腥、Listener、Handler
監(jiān)控類 Reporter蔚袍、Metric、Tracker
結(jié)構(gòu)類 Wrapper配名、Iterator啤咽、Batch
設(shè)計(jì)模式 Adapter、Action渠脉、Command宇整、Event、Delegate芋膘、Builder鳞青、Factory霸饲、Template、Proxy臂拓、Delegate

以上是一些常見(jiàn)的命名習(xí)慣厚脉, 可以讓程序員心心相通
InsertCommend : 立刻明白這是一個(gè)命令模式, 是一個(gè) insert 的原子操作胶惰,整套架構(gòu)應(yīng)該是設(shè)計(jì)為一些 commend 來(lái)驅(qū)動(dòng)執(zhí)行

除了這些常用的后綴傻工, 也要注意命名的詞性講究:
方法常用動(dòng)詞, 變量 :名詞/形容詞

如果是一個(gè)開(kāi)關(guān):
這里可選表達(dá)很多孵滞, 很多情況根據(jù)語(yǔ)境中捆, 最好使用形成規(guī)范, 統(tǒng)一個(gè)人風(fēng)格坊饶,閱讀起來(lái)爽很多

if (enableAFeature) {
  doAThing();
}

if (aFeatureEnable) {
  doAThing();
}

if (aFeatureValid) {
  doAThing();
}

if (isAFeature) {
  doAThing();
}

if (useAFeature) {
  doAThing();
}

if (aFeatureSwitchOn) {
  doAThing();
}

if (disableAFeature) {
  doAThing();
}

if (aFeatureDisable) {
  doAThing();
}

if (aFeatureInValid) {
  doAThing();
}

if (notAFeature) {
  doAThing();
}

if (aFeatureSwitchOff) {
  doAThing();
}

相比之下 switchOn 泄伪, switchOff 是 if 語(yǔ)句開(kāi)關(guān)語(yǔ)境很合適的通用表達(dá),
理論上以上都可以匿级, 但是 個(gè)人代碼風(fēng)格一致性尤為重要臂容, 習(xí)慣統(tǒng)一尤為重要。
最好形成固定的表達(dá)方式根蟹, 來(lái)寫(xiě)代碼脓杉。

請(qǐng)不要在 if 中寫(xiě)很多邏輯, 取很多反

達(dá)

達(dá): 不拘简逮,通達(dá)明白

達(dá)這里有一點(diǎn)球散, 最小化信息傳遞原則, 如果你也害怕接受很多信息散庶。

信息傳遞越多決策越難

我們的思維是 層層封裝蕉堰,暴露最少信息, 彼此隔離悲龟, 借口層業(yè)務(wù)層屋讶。

怎么在代碼中做到傳遞最少信息:
比如: project aa; module: bb; 包目錄: article/query/ 下
寫(xiě)請(qǐng)求相關(guān)Bean 類:
AABBArticleQuery
AABBArticleResponse
AABBArticleRequest

這就是浪費(fèi): 直接寫(xiě):
Query
Response
Request

project 包目錄 會(huì)傳遞很多 context
不要在命名中傳遞很多無(wú)用信息:
AABBArticleQuery

一個(gè) Bean 類, 長(zhǎng)命名须教, 導(dǎo)致的是對(duì)Bean類中成員的 調(diào)用 變得很惡心
表現(xiàn)在: 很長(zhǎng)串皿渗, 產(chǎn)生 厭煩

保持 clean , 使代碼看起來(lái) 清晰明了

雅: 雅致

雅致的命名使得代碼變得文雅轻腺, 讀起來(lái)不容易 wtf

記得高中英語(yǔ)老師將莎士比亞十四行詩(shī)來(lái)作為大家晨讀英語(yǔ)的材料

Shall I compare thee to a summer's day? 
Thou art more lovely and more temperate. 
Rough winds do shake the darling buds of May, 
And summer's lease hath all too short a date.

韻腳

枯藤老樹(shù)昏鴉乐疆,
小橋流水人家,
古道西風(fēng)瘦馬贬养。

夕陽(yáng)西下挤土,
斷腸人在天涯。

每句末尾均壓一個(gè) a 韻

寫(xiě)一個(gè)分支可以這樣:
feature_feed_fling_flavor

這個(gè)是意識(shí)形態(tài)的培養(yǎng)误算, 并不是需要在代碼中這樣做仰美。

用詞

組件迷殿, 開(kāi)源組件命名可以具像化, 具像化的實(shí)物

飛書(shū)命名: Lark 云雀

Kotlin: 一個(gè)島名: Kotlin Island

sladar: 斯拉達(dá)(Slardar)是Dota2中的一位力量英雄咖杂。(字節(jié)系組件庆寺,網(wǎng)上可搜到避免敏感不闡述)

libra: 天秤座(字節(jié)系組件,網(wǎng)上可搜到避免敏感不闡述)

仔細(xì)品味下這幾個(gè)命名翰苫, 感覺(jué)還是很妙止邮, 很有巧思。

動(dòng)植物奏窑、地點(diǎn)导披、人物名字、名畫(huà) 等

這里貼上 古希臘眾神:

古希臘眾神:

宙斯:(羅馬又稱朱庇特)Zeus埃唯,天神之父撩匕,地上萬(wàn)物的最高統(tǒng)治者。

赫拉:(羅馬又稱朱諾)Hera墨叛,宙斯的姐姐與妻子止毕。是女性的代表,掌管婚姻和生育漠趁。性格特征是嫉妒扁凛。

波塞冬:(羅馬又稱尼普東)Poseidon,海王闯传,海洋和水域的一切主宰谨朝。

得墨忒耳:(羅馬又稱賽爾斯)Demeter,大地女神甥绿,司豐收字币。

哈底斯:(羅馬又稱普魯通)Hades,冥王共缕,司掌冥界洗出,統(tǒng)治陰暗的世界。

雅典娜:(羅馬又稱米諾娃)Athena图谷,起初被視為女戰(zhàn)神翩活,后逐漸變?yōu)橹腔叟窈脱诺涑堑氖刈o(hù)女神。

阿波羅:(羅馬也稱阿波羅)Apollo蜓萄,在詩(shī)與藝術(shù)中表現(xiàn)為光明隅茎、青春和音樂(lè)之神,又是太陽(yáng)神嫉沽,與阿爾忒彌斯是孿生姐弟。

阿爾忒彌斯:(羅馬又稱狄安娜)Artemis 俏竞,月神绸硕,又是狩獵之神堂竟、婦女之神,是女性純潔的化身玻佩,與阿波羅是孿生姐弟出嘹。

狄俄尼索斯:(羅馬又稱巴克科斯)Dionysus,酒神與狂飲歡樂(lè)之神咬崔。

阿佛洛狄德:(羅馬又稱維納斯)Aphrodite税稼,愛(ài)情女神。她的忠實(shí)隨從小愛(ài)神愛(ài)羅斯Eros(羅馬又稱邱比特)手持弓箭垮斯,被其金箭射中者即與隨后見(jiàn)到的第一個(gè)人墜入情網(wǎng)郎仆,而被其鉛箭射中者會(huì)對(duì)另一個(gè)人產(chǎn)生莫名的仇恨。

赫斐斯托斯:(羅馬又稱烏爾肯)Hephaestus兜蠕,火神和鍛冶之神扰肌。

阿瑞斯:(羅馬又稱瑪爾斯)Ares ,戰(zhàn)神熊杨。

星座

水瓶座 ? Aquarius Water Carrier / Water Bearer
雙魚(yú)座 ? Pisces Fish / Fishes
牧羊座 ? Aries Ram
金牛座 ? Taurus Bull
雙子座 ? Gemini Twins
巨蟹座 ? Cancer Crab
獅子座 ? Leo Lion
處女座 ? Virgo Virgin
天秤座 ? Libra Scales / Balance
天蠍座 ? Scorpio Scorpion
射手座 ? Sagittarius Archer
摩羯座 ? Capricorn Goat / Sea Goat

參考: https://juejin.cn/post/6995342820512890893#heading-14

最后曙旭, 命名是一個(gè)過(guò)程,是 life long journey 晶府。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末桂躏,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子川陆,更是在濱河造成了極大的恐慌剂习,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件书劝,死亡現(xiàn)場(chǎng)離奇詭異进倍,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)购对,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)猾昆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人骡苞,你說(shuō)我怎么就攤上這事垂蜗。” “怎么了解幽?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵贴见,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我躲株,道長(zhǎng)片部,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任霜定,我火速辦了婚禮档悠,結(jié)果婚禮上廊鸥,老公的妹妹穿的比我還像新娘。我一直安慰自己辖所,他們只是感情好惰说,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著缘回,像睡著了一般吆视。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酥宴,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天啦吧,我揣著相機(jī)與錄音,去河邊找鬼幅虑。 笑死丰滑,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的倒庵。 我是一名探鬼主播褒墨,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼擎宝!你這毒婦竟也來(lái)了郁妈?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤绍申,失蹤者是張志新(化名)和其女友劉穎噩咪,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體极阅,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡胃碾,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筋搏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仆百。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奔脐,靈堂內(nèi)的尸體忽然破棺而出俄周,到底是詐尸還是另有隱情,我是刑警寧澤髓迎,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布峦朗,位于F島的核電站,受9級(jí)特大地震影響排龄,放射性物質(zhì)發(fā)生泄漏波势。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望艰亮。 院中可真熱鬧闭翩,春花似錦挣郭、人聲如沸迄埃。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)侄非。三九已至,卻和暖如春流译,著一層夾襖步出監(jiān)牢的瞬間逞怨,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工福澡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叠赦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓革砸,卻偏偏與公主長(zhǎng)得像除秀,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子算利,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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