如何优雅的抄袭代码?天下代码一大抄,这才是正确的姿势

你们知道程序员最熟悉,最熟练,最常用的两个快捷键是哪两个吗?没错,估计你现在心中所想的就是:ctrl+c 和 ctrl+v ,俗名为:复制和粘贴。对于大部分程序员来说:复制和粘贴就是他敲代码,写程序创造伟大产品的左膀和右臂,而复制和粘贴更是形影不离的好兄弟。

所谓,天下代码一大抄,亦不过在程序员心中就是复制和粘贴。更何况我们是身处在一个热爱开源的世界,而程序员更是创造和开创开源世界的积极分子呢。目前,我们身处在共享经济当中,可是殊不知我们这是一个伪共享的时代。共享单车,共享汽车,乃至共享充电宝都不是真正的共享,所谓共享就是把闲置和剩余资源利用起来,进行分享,以达到资源利用,资源价值的最大化。现在的共享经济,都不是把闲置和剩余资源的重复再利用,而是花钱买好的,每天,每月正在造成更大的资源浪费。

但是,代码的开源,技术的开源可以说是真正的共享,但是还不属于经济,毕竟开源太多都是免费的,所以,我们技术开源才是真正的共享鼻祖。有点扯远了,我尽量拉回来。之所以谈这个话题是因为近日加州大学欧文分校、捷克技术大学、微软研究院和美国东北大学的研究人员组成的一个团队开展了一项调查,结果发现,GitHub 上托管的大多数源代码文件实际上是以前所创建的文件的复制版

八名研究人员组成的这个国际团队起初倒不是想研究 GitHub 的重复现象。最初的目标是试图定义代码复制的 “精细度”(即不同的复制版之间多少文件发生了变化),但后来他们发现了 “高得惊人的文件重复率”,于是他们改变了研究方向。

研究人员查看了 450 万个原创(非分支)的 GitHub 项目,这些项目共有 4.28 亿个不同的文件。他们发现,只有 8500 万个文件是独特的,在所有分析的文件中约占 17.63%。

其实 GitHub 的一个使命就是共享代码,所以在 GitHub 平台上发现代码重复率高并不是一个令人吃惊的事情。但是有一点是非常让你警醒的,那就是:

用来构建 GitHub 的源代码控制系统 Git 鼓励项目分支(forking)。然而,GitHub 中出现了大量的代码重复现象,这些代码并没有经历过 fork 机制,而是通过复制粘贴文件、甚至复制粘贴整个库进入的。

很多研究人员也表示了疑问,明明可以 fork 或者依赖使用的,现在大部分人都是复制粘贴文件、甚至复制粘贴整个库到自己的项目,再共享出来,真的是让人有点吃惊。

开源库的正确用法

由此,我们应该得感觉和意识到一些开源许可证的使用,应该正确使用开源库以及开源代码才可以。不知道有多少开发者意识到了开源库的正确使用方法?我相信现在几乎每个程序员开发的项目中都使用了 GitHub 上的开源库,但是你们尊重开源和版权了吗?一般在应用中应该声明一下使用了哪些开源库,以开源许可证等信息。我发现支付宝在这方面做的就挺好的。比如人家就在应用中有个版权信息模块,专门声明使用了哪些开源库。例如:

WechatIMG75副本

看到了吗?支付宝这个应用程序用到的开源库是不是很多,大家也可以研究一下,支付宝用的这些开源库应该都是非常不错,有保证的,以后说不定你也能够用到,这就是学习。我相信大家都没有正确使用和声明开源库这种做法和行为。

总结

其实通过研究其实我们可以发现:首先,GitHub 本身似乎可以大幅压缩代码库,不至于现在这么庞大。其次,如今在使用从 GitHub 唾手可得的一大批开源项目,开展越来越多的研究工作。但是我们在研究和使用的时候,应该正确使用,而不是乱用

image

你们知道哪种语言在 GitHub 上代码重复率最高吗?JavaScript 项目含有的重复文件最多,研究团队只查看了用 C++、Java、JavaScript 和 Python 编写的源代码项目。在这四种项目中,JavaScript 项目所含的重复代码最多,94% 的文件是与 GitHub 上托管的另一个文件百分之百相同的克隆版(基于文件哈希)。C++ 排名第二,所有文件中 73% 是其他文件的复制版,而 Python 的代码重用率也有 71%, Java 只有 40%。其实JavaScript 包含最多的重用代码示例,原因很容易解释,那就是 NPM,这是所有客户端和服务器端 JavaScript 项目的事实上的软件包管理器。

所谓天下代码一大抄,但是抄也应该正确的抄,也应该正确的用,在规则和许可下玩才行。不要在没声明的情况下,整体的复制粘贴到你的代码库里,不尊重作者,感觉是你做的似的。

特别声明:未经允许,禁止任何形式的转载。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 82,587评论 1 181
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 29,411评论 1 149
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 34,341评论 0 105
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 18,870评论 0 90
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 24,188评论 0 150
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 20,024评论 1 90
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 12,687评论 2 168
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 12,083评论 0 83
  • 想象着我的养父在大火中拼命挣扎,窒息,最后皮肤化为焦炭。我心中就已经是抑制不住地欢快,这就叫做以其人之道,还治其人...
    爱写小说的胖达阅读 10,611评论 5 116
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 13,868评论 0 132
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 12,550评论 1 130
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 13,421评论 0 135
  • 白月光回国,霸总把我这个替身辞退。还一脸阴沉的警告我。[不要出现在思思面前, 不然我有一百种方法让你生不如死。]我...
    爱写小说的胖达阅读 8,177评论 0 18
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 10,999评论 2 122
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 14,185评论 3 131
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 9,787评论 0 3
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 10,134评论 0 81
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 14,765评论 2 140
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 15,240评论 2 136

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 169,383评论 25 706
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 21,784评论 8 183
  • 它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、...
    廖马儿阅读 849评论 0 0
  • 商人说:我是一名客商,需要一匹年轻能干的马,长途跋涉来为我运送货物,不知道你愿意跟我走吗? 马很不情愿的说:我可是...
    铁臂阿童YAO_阅读 189评论 0 10
  • 不知道你看这篇文章会是在什么时候,是晨起 午时还是半夜 都不重要了,反正无论什么时候,你都无法逃离你那该死的朋友圈...
    左手老师阅读 239评论 0 0