好的程序员“借”,伟大的程序员“偷”( 二 )


在艺术界,“偷”是伟大作品产生的一部分 。我记得去阿姆斯特丹的梵高博物馆看他的一些早期作品的时候 。我被震惊了,但当时我不知道的是,这些早期的作品实际上是对日本艺术和木版画的研究 。我所认为的在那个时代独居一格的风格,实际上是一个连续统一体的一部分,而且也不是我所认为的连续统一体 。梵高并没有沿着荷兰大师们摆在他面前的道路前进,而是从他在巴黎发现的日本版画中汲取构图和笔法的思想,并将其融合进他的绘画作品中 。
毕加索有句名言:“好的艺术家‘借’,伟大的艺术家‘偷’” 。毕加索本人从非洲和波利尼西亚艺术中汲取了许多思想,并将其与自己的研究结合起来 。“偷”听起来是不对的,但是事实上,把别人的作品声称是你自己的才是剽窃 。毕加索的这句名言是用“偷”这个词表达了一些不同的意思 。一个“借”来的东西仍然属于他人;你复制了一种风格,这种风格仍然属于他人 。然而,“偷”是把这个想法变成你自己的想法 。把别人的想法拿来自己用是“借”;理解一个想法并将其融入自己的作品,这就是他所说的“偷” 。史蒂夫·乔布斯是这句名言的粉丝,苹果在他的领导下获得了成功,因为他们“偷”来了一个好主意,并其它融合和改良 。
当你克隆代码时,你冒着仅仅“借”用它的风险 。“借”来的代码会大量进入项目中,虽然它能够成功编译或者不抛出错误,但是它可能有你不知道的错误或恶意意图 。错误地复制代码或代码复制后进行修改的风险是巨大的 。事实上,大多数关于克隆代码的投诉都可以追溯到“借”用人身上 。如果你不理解代码,你可能会在原本只是一个概念演示的地方留下安全漏洞 。因为即使是从Stack Overflow上复制一个被复制最多的代码片段也可能有一个bug在其中 。
另一方面,当你“偷”代码时,你了解代码的作用 。代码的核心和它的不同寻常的思路,都将和你自己的代码无缝地融合在一起 。如果你可以依靠你的记忆再写一次,那就是一个很好的“偷”的迹象;一次重写给你留下的不仅仅是一个克隆,还有一些原创的东西 。
所以是的,我们要学会“偷”代码 。接受它,理解它,并在自己的项目中实现它 。让它成为你自己的代码 。这样做可以让你变得更高效,可以改进你的项目,甚至可以充实你的简历(亦即你自己的ctrl+C和ctrl+V) 。但是,如果你没有完全理解你新复制的代码和它的功能,你就有可能让你的代码变得更糟 。
原文链接:
https://stackoverflow.blog/2020/05/20/good-coders-borrow-great-coders-steal/?cb=1
本文为CSDN翻译文章,转载请注明出处 。

【好的程序员“借”,伟大的程序员“偷”】


推荐阅读