国产美女一级毛片精品久久久|婷婷影院在线综合免费视频|最新国产午夜精品视频成人|久久精品九九无码免费

你的代碼糟粕比精華要多得多

來(lái)源:長(zhǎng)沙北大青鳥(niǎo)大計(jì)校區(qū)|發(fā)布時(shí)間:2015-08-19 10:39:45

新的研究發(fā)現(xiàn),一個(gè)程序的核心功能僅在于一小部分封裝的代碼。

如果你是一個(gè)軟件開(kāi)發(fā)人員,有人問(wèn)你,你寫的代碼中有多少是真正在實(shí)現(xiàn)實(shí)際功能的,有多少是填充物、無(wú)價(jià)值的或者只是因?yàn)閷?shí)際運(yùn)行編程語(yǔ)言所需要的? 95%? 75%? 50%?都不是!新的研究發(fā)現(xiàn),只有大約5%的代碼是真正在提供核心功能。

研究人員認(rèn)為,就像自然語(yǔ)言一樣,一些——甚至可能是絕大多數(shù)——寫下的代碼其實(shí)對(duì)于功能是不起作用的!秙talks of wheat》一文的作者認(rèn)為,只有一部分代碼代表了功能的語(yǔ)義核心,我們稱之為精華,而其他的則是糟粕。

 

 

該作者表示,一個(gè)功能的核心可以被封裝于一個(gè)小型的關(guān)鍵字集合中,這被稱為“minimum distinguishing subset” (“最小的區(qū)別化子集”)或MINSET。我們可以通過(guò)將方法分解為詞素(即,通過(guò)空格或標(biāo)點(diǎn)符號(hào)分隔代碼),丟棄那些對(duì)函數(shù)行為不重要的內(nèi)容,同時(shí)把剩下的映射到關(guān)鍵字中。然后將那些關(guān)鍵字導(dǎo)入到MINSET。

為了檢驗(yàn)此理論,即MINSET中的代碼只占全部代碼的一小部分,研究人員下載了1000個(gè)來(lái)自Apache、Eclipse、GitHub和SourceForge最受歡迎的Java項(xiàng)目。在合計(jì)超過(guò)10億行的Java代碼中,先剔除簡(jiǎn)單的方法( tokens低于50)。就只剩下不到190萬(wàn)的不同方法,然后從中隨機(jī)抽取10,000條,確定它們的MINSET。研究中使用的代碼和數(shù)據(jù)可從Bitbucket下載。

以下為研究發(fā)現(xiàn)的主要結(jié)果:

  • MINSETS出奇的小。方法的平均MINSET大小為1.55個(gè)關(guān)鍵字,最大值為6。
  • MINSET的大小并不隨方法規(guī)模的增加而變大。事實(shí)上,如果只看最大的1000個(gè)方法,其平均和最大MINSET關(guān)鍵字分別為降到1.12和4,這表明,正如作者所言:“即便是對(duì)于一些異常龐大的方法,MINSET也是一項(xiàng)既獨(dú)特又靈活有效的指標(biāo)。”
  • 大多數(shù)代碼幾乎盡是糟粕。平均來(lái)說(shuō),在一個(gè)方法中只有4.6%的獨(dú)特詞素可以位列MINSET。也就是說(shuō),95%以上的代碼都是糟粕。

不過(guò)有幾處關(guān)鍵的地方需要指出來(lái)。首先,MINSET本身是不可執(zhí)行的:它只是表征了核心功能的代碼的最小集合。剩下95%中的一些代碼(前面稱之為糟粕)也不是無(wú)用的,因?yàn)檫需要它們來(lái)運(yùn)行程序。其次,盡管這項(xiàng)研究?jī)H著眼于Java代碼,不過(guò)由于語(yǔ)言的相似性,作者表示這些發(fā)現(xiàn)應(yīng)該也適用于其他語(yǔ)言,特別是C語(yǔ)言和C++。

關(guān)于此項(xiàng)工作的意義?研究人員指出了MINSETs的潛在應(yīng)用:

  • 改進(jìn)代碼搜索——MINSETs可用于基于相似查詢的代碼搜索結(jié)果排名。
  • 智能IDE——具備了MINSETs索引數(shù)據(jù)庫(kù)的IDE可用于提出類似的代碼,支持自動(dòng)代碼填充,加快調(diào)試過(guò)程。
  • 備選的編程形式——MINSETs可用于支持基于關(guān)鍵字的編程,也就是說(shuō),我們可以通過(guò)一個(gè)小型的關(guān)鍵字組來(lái)創(chuàng)建可用的代碼。
  •  
上一篇:為什么程序員也能成為偉大的CEO
下一篇:返回列表

熱門話題

招生熱線: 4008-0731-86 / 0731-82186801

學(xué)校地址: 長(zhǎng)沙市天心區(qū)團(tuán)結(jié)路6號(hào)

Copyright © 2006 | 湖南大計(jì)信息科技有限公司 版權(quán)所有

湘ICP備14017520號(hào)-3

關(guān)注我們
在線咨詢
嘿,我來(lái)幫您!