成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何命名:編程中最難的事

開發(fā) 后端 前端
如何命名,其實(shí)是編程中最難的事。

[[136262]]

喬治·奧威爾的命名規(guī)范

如何命名?簡言之,根據(jù)語意來選擇詞匯,別無它法……然而,有時(shí)我們會(huì)不知用什么詞匯更合適。

當(dāng)你想到某個(gè)抽象的東西,你更傾向于***想到的詞語,除非你故意不這樣,這些詞也會(huì)搶著出現(xiàn),直到模糊或改變你的想法。當(dāng)你想到一個(gè)具體的對象,你覺得詞窮,然后你想描述的已經(jīng)看到了,然后你繼續(xù)尋找更適合它的詞。

六條原則

以下是喬治給出的命名六原則:

1.  絕不要用隱喻,明喻或者是其他書本上看到的語言描述方式

2.  絕不要用太長的詞匯,如果一個(gè)短的詞匯已能說明問題

3.  如果可能縮短用語,就盡量縮短

4.  絕不要用被動(dòng)語態(tài)的詞,如果能用主動(dòng)語態(tài)的詞

5.  絕不要使用外來詞匯,學(xué)術(shù)術(shù)語,如果你能想到意思相近的日常用語

6.  打破上述任何規(guī)則,相比更加直接明了的說話方式

這些規(guī)則聽起來很條文,確實(shí)也是如此。但對于那些習(xí)慣了流行的寫作風(fēng)格的人來說,這幾點(diǎn)卻尤為重要。下面具體來解釋這六條原則。

1、絕不要用隱喻,明喻:以防過度使用慣用的設(shè)計(jì)模式,只是因?yàn)樵诖a中看慣了。如:

AbstractConfigurationFactory

2、只要能短就不要用長詞:如果一個(gè)短的詞匯已能說明問題,則盡量使用簡潔的變量命名,僅在有更好的理由的前提下才使用長的命名。如:

company_person_collection 

vs 

Staff

3、如果可能縮短用語,就盡量縮短:避免添加一些毫無意義的詞匯到命名中。如:

AbstractObjectFormatterProxy

……

org.springframework.web.servlet.support.

AbstractAnnotationConfigDispatcher

ServletInitializer

[[136264]]

這就像是同類療法。你所應(yīng)該做的就是簡化,直到什么都沒有。 ”By Kevlin Henney。

4、盡量用主動(dòng)語態(tài)的詞:能用主動(dòng)就絕不用被動(dòng)語態(tài)的詞,便于用戶理解,同時(shí)也遵守標(biāo)識(shí)符的語法規(guī)則。

如:

class PlanEvents

vs

class EventPlanner,或者甚至是 class Scheduler。

5、盡量用日常用語,避免使用外來詞匯或?qū)W術(shù)術(shù)語,不要讓來自某個(gè)庫的專用術(shù)語污染你的領(lǐng)域模型,同時(shí)也提防那些從其他語言導(dǎo)進(jìn)外來”命名的庫。

如:ShipmentMonad

6、打破上述任何規(guī)則,如果你有更簡單明了的表述方式。當(dāng)然,如果你的代碼正刊登在眾多知名的網(wǎng)站,如 The Daily WTF,你可以忽略我說的話。(The Daily WTF,美國著名丑陋代碼開發(fā)、災(zāi)難開發(fā)案例網(wǎng)站。)

注:許多取決于上下文; 

當(dāng)然,發(fā)布庫代碼和維護(hù)私有程序代碼是不一樣的。

[[136265]]

聽到這,是不是感覺寫代碼和寫散文一樣困難?

[[136266]]

作家們對于編程的啟發(fā)

關(guān)于偶編程——斯蒂芬·金(Stephen King)

“關(guān)著門寫,開著門重寫。”

[[136267]]

關(guān)于硬件開發(fā)——安妮·賴斯(Anne Rice)

“我發(fā)覺更大的顯示屏更易讓人專注。”

[[136268]]

關(guān)于用戶角色——厄內(nèi)斯特·海明威(Ernest Hemingway)

“當(dāng)寫小說的時(shí)候,作家應(yīng)該創(chuàng)造鮮活的人物;人物不是角色。角色是在漫畫里的。”

[[136269]]

關(guān)于企業(yè)架構(gòu) ——威廉·薩默塞特·毛姆

“寫小說有三條規(guī)則,不幸的是,沒人知道是什么。”

[[136270]]

關(guān)于代碼效率——尼爾·蓋曼(Neil Gaiman)

“寫作。一個(gè)字接著一個(gè)字。找到正確的詞匯,運(yùn)用它。完成你正在寫的東西。無論如何都請完成,一定要完成。”

[[136271]]

關(guān)于代碼審查——尼爾·蓋曼

“把它放在一邊。仔細(xì)閱讀,假裝之前從未閱讀過。展示給你的朋友,并聽取他們的意見和觀點(diǎn)。”

關(guān)于反饋——尼爾·蓋曼

“當(dāng)人們告訴你哪是可能出錯(cuò)了,或者沒有正常的運(yùn)行,他們幾乎總是對的。” 

“當(dāng)他們告訴你他們認(rèn)為什么是錯(cuò)的,并如何解決它,他們幾乎總是錯(cuò)的。”

關(guān)于重構(gòu)——尼爾·蓋曼

“處理它。請銘記,它能達(dá)到***之前,遲早你都要放下并且繼續(xù)前進(jìn),開始寫后面的東西。***就是像追逐地平線。 不斷繼續(xù)前進(jìn)。”

關(guān)于代碼里的幽默 ——尼爾·蓋曼

"Laugh at your own jokes." “笑你自己的笑話。”

關(guān)于開源——尼爾·蓋曼

"The main rule of writing is that if you do it with enough assurance and confidence, you’re allowed to do whatever you like."

“寫作的主要規(guī)則是,如果你有足夠的擔(dān)當(dāng)和自信來做這件事情,你將被允許做任何你想做的事。”

[[136272]]

來自作家們建議的總結(jié)

來自作家的建議是有用的,不僅僅是對于編程中的命名。作家已經(jīng)存在幾個(gè)世紀(jì)、而編程僅僅有幾十年的歷史。此外,如果你真正理解了,他們的建議其實(shí)是更好的寫作和更多快樂。

責(zé)任編輯:王雪燕 來源: 杰微刊
相關(guān)推薦

2017-11-14 11:40:18

編程語言數(shù)據(jù)博客

2013-11-01 17:24:39

程序員命名

2018-07-19 19:07:33

語言編程語言程序

2011-04-27 09:12:14

PHPjavascriptjava

2024-10-06 14:01:47

Python裝飾器對象編程

2021-12-29 10:18:46

編程語言PythonJava

2017-01-10 13:33:51

iOS編程throttle

2009-07-17 14:02:20

程序員編程效率

2013-06-17 09:54:17

Python程序代碼

2010-09-14 14:28:58

Scala

2020-11-12 19:02:43

命名編程編碼

2015-12-30 10:33:12

2021-01-24 09:11:29

編程語言PythonJava

2021-12-29 22:08:17

編程語言CPython

2015-05-27 10:34:56

Java編程常見問題

2009-09-01 16:12:41

C#命名指南

2009-08-27 16:30:08

C#編程命名規(guī)范

2022-10-30 14:22:25

Python編程模塊

2019-08-02 14:47:39

編程語言程序員C語言

2009-06-16 10:34:38

編程命名
點(diǎn)贊
收藏

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

主站蜘蛛池模板: 国产精品一区二区在线播放 | 成人影院网站ww555久久精品 | 国产精品美女久久久久久免费 | 久久久久久久国产精品 | 丁香久久 | 成人午夜激情 | 欧美精品在线播放 | 一级片毛片 | 亚洲精品1区 | 观看av | 色婷婷久久综合 | 在线播放亚洲 | 黄视频网站免费观看 | 91在线网 | 日韩一区二区av | 影视先锋av资源噜噜 | 国产精品永久在线观看 | 日本免费一区二区三区 | 一区二区日韩精品 | 亚洲麻豆| 国产精品国产三级国产aⅴ浪潮 | 久久综合一区二区三区 | 国内91在线 | 久久九 | 欧美日韩国产在线观看 | 在线观看黄色 | 亚洲第1页| 91精品国产91久久久久久吃药 | 久在草 | 91社区在线观看高清 | 全部免费毛片在线播放网站 | 成人av资源在线 | 成人欧美一区二区三区色青冈 | 成人妇女免费播放久久久 | 久久一区视频 | 国产精品日本一区二区在线播放 | 亚洲激情综合 | 精品久久九九 | 亚洲欧美在线一区 | 在线亚洲人成电影网站色www | 91精品国产综合久久婷婷香蕉 |