色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

程序員最頭疼的事:命名

  原文鏈接: Don’t go into programming if you don’t have a good thesaurus

  許多程序員認(rèn)為編程時,如何命名不僅是他們面臨的老大難問題,也是最重要的事情之一。

  上周,我發(fā)起了一個“程序員編程中的老大難問題”的投票,主要是基于最近Quora上的跟帖討論。根據(jù)大家的反響和投票結(jié)果,有一項(xiàng)投票遙遙領(lǐng)先,穩(wěn)居第一——對于軟件開發(fā)人員來說,最大的難題是:如何命名(例如:給變量,類,函數(shù)和過程命名等等)。

  對于這個結(jié)果,我多少有點(diǎn)意外,因?yàn)樽鳛橐粋€多年的開發(fā)人員,我不會投給這一項(xiàng)(我想我會投給“修改或維護(hù)別人的代碼”)。但是真正讓我驚訝的是,看起來好像不怎么重要的命名居然排列第一,跟期待的結(jié)果實(shí)在差太遠(yuǎn)了。下面是投票結(jié)果的分布圖。

  該結(jié)果是來自Quora問答網(wǎng)站和更早的Ubuntu論壇跟帖的4500個開發(fā)者的投票。“如何命名”一項(xiàng)的選票幾乎是其它八項(xiàng)的投票結(jié)果的總和,哇!

  的確,這些基于自我篩選的群體的投票結(jié)果是完全不科學(xué)的。但是我認(rèn)為這個結(jié)果還是有一定意義的,換句話說,如何命名的確是個很棘手的問題,許多非編程人員可能會意識不到。

  幾年前在StackExchange社區(qū)里對于這個話題剛好有個跟帖,為了強(qiáng)調(diào)這一點(diǎn),我引用了一些內(nèi)容是關(guān)于程序員在編程中對于命名的的痛苦和糾結(jié)。

  “我確實(shí)在編程的時候花了很多時間在考慮如何命名。” 

  “我不得不同意命名是一門藝術(shù)。” 

  “如果你想要提高代碼的可讀性,命名的確很重要。” 

  我認(rèn)為最后一條抓住了部分核心,解釋了命名為什么會這么難,因?yàn)樗匾恕?zhǔn)確的命名可以提高代碼的可讀性,讓人容易理解,方便調(diào)試,也給以后修改和維護(hù)你的代碼的人帶來方便。一旦開始做了,很快你會發(fā)現(xiàn)要想出一個簡潔又準(zhǔn)確的名字沒那么容易。就像Jeff Atwood 所寫的:

  “想出好的命名的確很難,但是有難的道理,因?yàn)楹玫拿枰挥靡粌蓚€單詞出表達(dá)你的根本意思。” 

  而且,許多人認(rèn)為,正確的命名能幫你寫出好的代碼。如果不能為一個變量或者函數(shù)想出一個清晰又簡潔的名字,那可能是你的代碼有問題。那樣的話,你就得考慮重寫或者進(jìn)行代碼重構(gòu)了。

  “通常,如果你無法想出一個合適的名字,意味著你的設(shè)計(jì)可能有問題。你的一個方法里是不是實(shí)現(xiàn)了太多的功能?或者你的類的封裝,凝聚性不夠強(qiáng)?” 

  “我的經(jīng)驗(yàn)是如果無法給你的類想出一個合適的名字,大多數(shù)情況都是你的類有問題:你可能不需要這個類,它有點(diǎn)多余了” 

  “命名難也不見得是壞事兒,它可以迫使你去認(rèn)真思考你的類到底想要實(shí)現(xiàn)什么功能。”

  長話短說:如果你想要學(xué)習(xí)編程,一定要給自己準(zhǔn)備一本好詞典。 

  ——————

  原文鏈接: Phil Johnson    翻譯: 伯樂在線 - JingerJoe
  譯文鏈接: http://blog.jobbole.com/50708/

it知識庫程序員最頭疼的事:命名,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 大足县| 额尔古纳市| 时尚| 兴化市| 开封县| 临泽县| 喀什市| 伽师县| 金坛市| 巍山| 大城县| 湘乡市| 潼关县| 北安市| 通城县| 西宁市| 花莲市| 隆子县| 遂昌县| 湘阴县| 尉氏县| 宜黄县| 吉林省| 保定市| 峨山| 炉霍县| 随州市| 东乌珠穆沁旗| 壶关县| 开封县| 柯坪县| 宁武县| 通许县| 榕江县| 新营市| 专栏| 额尔古纳市| 眉山市| 中山市| 四会市| 武穴市|