网站克隆 源码-能仿形,巧匠窃意:论克隆码的正确坐姿

作者|瑞恩·多诺万

译者| 三菩提

策划与编辑| 柳岩

抄袭其形,盗取其髓。 齐白石曾说过:“学我者生,似我者死”。 作为一名优秀的程序员,克隆代码的正确坐姿是什么?

作为 StackOverFlow 答案的一部分发布的一些示例代码最终会出现在生产代码中,这在程序员中是一个公开的秘密。 事实上,您提出了一个关于 for 循环的问题并得到了完美的答案。 事实上,您找到了一个非常好的答案,它已经有适合您的应用程序的 asyncawait 实现。

因此,当我在 Facebook 上看到这条推文称赞掠夺代码的好处时,我想知道复制粘贴代码实际上有什么作用吗?

复制粘贴的行为可能很危险,但话又说回来,软件开发的许多方面又如何呢? 在本文中,我将探讨代码重复对软件开发的实际意义、好的代码“窃取”意味着什么,以及不良代码重复的陷阱。

根据记录,我并不提倡您只是从我们的公共问答网站复制并粘贴代码,在某些情况下网站克隆 源码,这可能会给您带来麻烦。 而且,正如我们的播客嘉宾 AnnaLytical 向我们展示的那样,复制和粘贴非常适合快速生成功能原型。

如果您复制代码示例,请记住注明来源。 根据代码在StackOverFlow上最后编辑的时间,它是在知识共享许可合同版本下获得许可的,最新版本是CCBY-SA4.0,需要归属。

一次编程,永远运行

从 StackOverflow 复制代码是代码克隆的一种形式; 也就是说,从项目内部或项目之间复制代码并重用该代码。 根据您询问的对象,从其他地方克隆的代码范围从 5% 到 10% 到多达 7% 到 23%。 这种克隆是好是坏还有待争论。

无论具体数量如何,代码克隆都是一种非常常见的做法。 样板代码本质上是在整个项目中定期重复的代码。 很可能这个样板代码不是程序员逐个手动输入这些内容的。 像 Lombok 这样的工具试图减少对样板文件的需求,但事实仍然是:

话虽如此,库和外部依赖项是在不重用代码的情况下重用功能的有效方法。 这几乎就像复制代码,只不过您不负责维护它。 哎呀,当今的大多数网络都运行在各种框架和插件库上,这些框架和插件库简化了开发。 以库的方式重用代码非常有效,并且使每个专用库都非常擅长它的工作,仅此而已。 与学术界不同,许多图书馆甚至不需要任何东西来表明您正在使用或构建其他人的代码。

JavaScript 包管理器 npm 将这一点发挥到了极致。 您可以通过命令行将小型单功能库(有些小至一行代码)安装到您的项目中。 您还可以选择超过 100 万个开源软件包中的任何一个,并开始将其功能构建到您的应用程序中。

事实上,就像所有工作方式一样,这些方式也有缺点。 通过安装软件包,您放弃了对代码的一些控制。 一些恶意程序员创建合法拥有的软件包,并在获得不错的采用率后,更新代码以窃取比特币钱包。 值得赞扬的是,npm 工作人员能够非常快速地阻止此类攻击,但外部依赖项越多,攻击面就越大。

尽管 StackOverFlow 的答案本身并不能免受代码克隆的影响。 一位独立研究人员发现 StackOverFlow 答案中的某些代码是从其他地方复制的。 在 40 多个答案中找到了一段 Java 代码。

巧匠复制造型,巧匠窃取创意

在艺术界,掠夺是创造伟大作品的一部分。 记得有一次去伦敦梵高博物馆,看到了梵高的一些早期作品。 我很惊讶,但当时我不知道的是,虽然这幅早期作品是梵高对台湾艺术和木刻的研究。 我认为那个时代的独特风格实际上是一个连续体的一部分,而不是我认为的连续体。 他没有沿着德国大师铺就的道路,而是从他在伦敦发现的法国油画中汲取灵感——构图、笔法——并将它们融合在一起。

毕加索有句名言:“笨拙的工匠复制,熟练的工匠偷窃”。 毕加索本人从南非和波利尼西亚艺术中汲取了许多想法,并将其与自己的研究相结合。 窃听似乎是错误的。 事实上,将别人的作品据为己有就是抄袭。 但这句话用了“偷”字来表达不同的意思。 借来的物品总是属于别人的; 即使你复制了一种风格,它也总是属于别人的。 但偷窃就是将这种看法变成你自己的。 借用别人的想法就是借用; 理解一个想法并将其融入到自己的作品中就是毕加索所说的“盗窃”。 史蒂夫·乔布斯是这句话的拥护者,苹果在他的领导下取得了成功,因为他们抢劫、整合并不断改进。

当您克隆代码时,您只是冒着借用代码的风险。 只要借用的代码编译或运行没有错误,就会被大量复制到项目中,但它可能存在您不知道的错误或恶意意图。 无法复制代码或更改后复制代码的风险是巨大的。 事实上,大多数关于克隆代码的投诉都可以追溯到抄袭代码的人。 如果您不理解代码网站克隆 源码,则可能会在仅用于概念演示的内容中留下安全漏洞。 尽管从 StackOverFlow 复制最多的代码片段也有一个 bug。

另一方面,当你窃取代码时,你必须确切地知道代码的作用。 它的核心,它的怪癖,所有这些都成为您自己的代码的无缝部分。 如果你能凭记忆重写它,那就是一次成功的抢劫; 返工后,你得到的不再只是克隆,而是原创。

是的,抢码。 接受它,理解它,并在自己的项目中实施它。 让它成为你自己的代码。 您可以提高工作效率、改进您的项目,甚至改进您的简历(也称为 Ctrl+C、Ctrl+V)。 而且,如果您在没有完全理解新获取的代码及其用途的情况下大量复制,则可能会面临使代码看起来更糟的风险。

关于作者:

Ryan Donovan,StackOverFlow 博客编辑。 一位技术作家,在多个行业的软件开发团队工作了超过十五年。 住在洛杉矶。

原文链接:

你也在“看”吗?

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 网站源码 网站克隆 源码-能仿形,巧匠窃意:论克隆码的正确坐姿 https://www.wkzy.net/game/153326.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务