黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

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


新的研究發現,一個程序的核心功能僅在于一小部分封裝的代碼。

如果你是一個軟件開發人員,有人問你,你寫的代碼中有多少是真正在實現實際功能的,有多少是填充物、無價值的或者只是因為實際運行編程語言所需要的? 95%? 75%? 50%?都不是!新的研究發現,只有大約5%的代碼是真正在提供核心功能。

研究人員認為,就像自然語言一樣,一些——甚至可能是絕大多數——寫下的代碼其實對于功能是不起作用的。《stalks of wheat》一文的作者認為,只有一部分代碼代表了功能的語義核心,我們稱之為精華,而其他的則是糟粕。

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

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

以下為研究發現的主要結果

MINSETS出奇的小。方法的平均MINSET大小為1.55個關鍵字,最大值為6。

MINSET的大小并不隨方法規模的增加而變大。事實上,如果只看最大的1000個方法,其平均和最大MINSET關鍵字分別為降到1.12和4,這表明,正如作者所言:“即便是對于一些異常龐大的方法,MINSET也是一項既特殊又靈活的指標。”

大多數代碼幾乎盡是糟粕。平均來說,在一個方法中只有4.6%的獨特詞素可以位列MINSET。也就是說,95%以上的代碼都是糟粕。

不過有幾處關鍵的地方需要指出來。首先,MINSET本身是不可執行的:它只是表征了核心功能的代碼的最小集合。剩下95%中的一些代碼(前面稱之為糟粕)也不是無用的,因為還需要它們來運行程序。其次,盡管這項研究僅著眼于Java代碼,不過由于語言的相似性,作者表示這些發現應該也適用于其他語言,特別是C語言和C++。

關于此項工作的意義?研究人員指出了MINSETs的潛在應用:

潛在應用

改進代碼搜索——MINSETs可用于基于相似查詢的代碼搜索結果排名。

智能IDE——具備了MINSETs索引數據庫的IDE可用于提出類似的代碼,支持自動代碼填充,加快調試過程。

備選的編程形式——MINSETs可用于支持基于關鍵字的編程,也就是說,我們可以通過一個小型的關鍵字組來創建可用的代碼。

 

上一篇:護眼小妙招,讓你遠離眼疲勞的困擾
下一篇:Java程序員的四大忌,你知道嗎?

開班信息

主站蜘蛛池模板: 成人一级视频 | 久草视频中文 | 夜夜揉揉日日人人视频 | 国产精品日韩欧美在线 | 亚洲涩涩视频 | 亚洲国产成人久久综合一区77 | 日韩三级在线免费观看 | 美日韩免费视频 | 国产成人精品永久免费视频 | 97av视频 | 一级毛片ab片高清毛片 | 国产成人精品无缓存在线播放 | 男人搞女人视频 | 国产精品久久久久国产精品三级 | 日本伊人精品一区二区三区 | 添人人躁日日躁夜夜躁夜夜揉 | 国产精品福利影院 | 99re久久在热线播放最新地址 | 免费国产午夜高清在线视频 | 宅男午夜剧场 | 国产免费叼嘿在线观看 | 草草免费观看视频在线 | 天天操天天操天天操天天操 | 美女综合网| 小雪婷的性欢日记h全文 | 一二三四视频社区在线网 | 美国videos 18高清hd | 天堂网在线网站成人午夜网站 | 欧美国产日韩另类 | 日韩 三级 | 91最新网站免费 | 天天添| 日本特交大片免费观看 | 草视频在线观看 | 午夜影院免费在线观看 | 中国黄色毛片 | 精品国产无限资源免费观看 | 国产综合成人久久大片91 | 亚洲国产激情一区二区三区 | 国产成 人 综合 亚洲绿色 | 国产一级α片 |