如今这个时代,Google 和 Stack Overflow 已经成为了很多开发者不可或缺的工具。但是最近,后者貌似名声坏了。一方面,是因为表面上特别、有时候会偏离适度的原则。说得更中肯些,取笑别人是「十足 的 Stack Overflow 式的开发者」的现象,明显增多了。
说简单点儿,有些人在 Stack Overflow 上扔代码、还大肆拷贝、粘贴回答里的代码示例,他们最应该得到这个称号。他们干起活来可能相当麻利,但是对于他们所面对的问题、以及他们乐于使用的解决方案,缺乏应有的理解。
当然,代码的拷贝粘贴不应该都被鄙视。我敢肯定,大部分阅读本文的读者(当然包括写本 文的我!)耻于把 Stack Overflow 上的代码片段、原封不动地拷贝到他们自己的代码库里。那又能怎样呢,人家的代码为什么要这样写,我们或许根本没有兴趣去了解。从本质上讲,不是每一项技术 都让人着迷,毕竟,deadline 有时过于急迫。
但是,果真如此的话,是不是意味着,我们渐渐就变成了十足的 Stack Overflow 式的开发者?对头!我们肯定不希望走到这一步!
缓解对策
每当你想把 Stack Overflow 的一段代码拷贝到项目里时,别急着断网,而要考虑下面的技巧。
不要使用剪贴板。不要拷贝和粘贴。而是把你找到的代码,重新敲一遍。
是的,这要多花些时间。和你简单地敲击 Ctrl+C/Ctrl+V 相比,这肯定笨拙不堪。或许没有多少意义:如果最终结果是一样的,那么,代码的转移是否通过了剪贴板,又有多大的关系呢?
理由
无论如何,我坚持认为,敲一遍代码,意义十分深远。按照重要程度,下面列出我的理由:
重新敲一遍,要比拷贝粘贴慢,这实际上非常好。如果你发誓不再使用剪贴板了,就不会只是寻找 Google 给出的第一条 Stack Overflow 的结果。你将权衡不同的解决方案,正常情况下,你将倾向于更短、更简洁的方案。
在你敲代码时,你不可能完全无意识地敲着。不管你是否愿意,你都将潜移默化地吸收一部 分知识,因为当代码从浏览器转移到编辑器或 IDE 时,也是在你的眼睛和大脑之间流动。你下意识地会对部分信息感兴趣,并梳理清楚,便于今后使用。即使你不想这样做,你也会学到点儿东西。
最重要的、也是几乎可以肯定的是,你自己敲的东西不等同于原始代码片段的完全拷贝。在 你敲代码的过程中,只要你遵从项目正在采用的、特定的风格规范,那么,你将不可避免地偏离原始代码。更有可能发生的是,你也会做出更大的修改。你将替换调 用工具函数的常见模式。为了更好的可阅读性,你将重新组织代码。你将添加注释、或抽出功能,让其更加自文档化(self-documenting)。甚至 改善并个性化,这样,你就能抽象并多次复用。
此后,你刚才敲好的代码,就不只是你从网上找到的代码。它成了你自己的代码。
推荐阅读:
相关推荐
暴力帧拷贝粘贴脚本工具,可以直接从MAX1的东西直接拷贝粘贴到MAX2里面信息一致就不需要导进来一节一节骨骼去对齐了
标题“GEF实现拷贝粘贴”涉及到的是在软件开发中使用Graphical Editing Framework(GEF)进行图形界面编辑时,如何实现复制和粘贴功能的技术。GEF是Eclipse平台下用于构建图形化编辑器的框架,它提供了一套完整的...
3. **粘贴操作**:在完成拷贝后,可以将复制的数据粘贴到另一个位置。同样,你需要指定目标范围并调用`Paste`方法: ```delphi Worksheet.Range['D1', 'E2'].Select; Worksheet.Paste; ``` 4. **格式与值的拷贝与...
标题 "程序实用工具多记录拷贝粘贴" 暗示了我们正在讨论的是一款能够增强传统复制和粘贴功能的软件工具。这类工具通常具备一个特性,即能够存储和管理用户在过去操作中复制的多条文本或数据,以便在需要时方便地再次...
防源代码拷贝.彻底屏蔽鼠标右键 取消选取、防止复制 IE地址栏前换成自己的图标 不准粘贴 网页将不能被另存为
5. 粘贴到有道云笔记:最后一步,打开你的有道云笔记账户,新建一个笔记或编辑一个已有的笔记,在其中粘贴之前复制的带有语法高亮的代码。这样,你就可以在有道云笔记中保存和分享你的Java代码了。 除了上述步骤,...
例如,在给定的文件列表`cutcopy.aps`、`cutcopy.cpp`等中,可能包含了一个示例项目,用于演示如何在自定义应用程序中实现类似资源管理器的剪切、拷贝和粘贴功能。这些文件可能是: - `cutcopy.aps`: Visual Studio...
零拷贝(Zero-Copy)是一种在计算机系统中优化数据传输的技术,它的核心思想是减少CPU对数据的处理,从而提高系统效率。在传统的数据传输过程中,数据会在用户空间和内核空间之间多次拷贝,增加了CPU的负载。而零...
在Windows环境下,实现拷贝和粘贴功能是操作系统的基本操作之一,它涉及到用户界面交互以及内存数据的传输。在这个特定的案例中,我们有一个名为"在WINDOWS下实现拷贝粘贴.zip"的压缩包,其中包含了针对JPEG2000格式...
标题中的“Node.js-jsinspect-探测拷贝-粘贴和结构相似的代码”是指一个名为“jsinspect”的工具,该工具专门用于检测JavaScript代码中可能存在的复制粘贴或结构相似的代码段。这个工具主要应用于Node.js环境中,...
标题中的“在Windows下实现拷贝、粘贴的源代码”指的是在Microsoft Windows操作系统环境下,通过编程实现剪贴板功能,即复制和粘贴操作。这通常涉及到Windows API(应用程序接口)的使用,特别是与剪贴板交互的相关...
java开发(一)文本的复制粘贴 import java.awt.Toolkit; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; import java....
从一个盘符目录下把某一个文件拷贝到另一个盘符下的文件夹内
关键帧拷贝和粘贴功能允许用户将某一参数的关键帧从一个位置移动或复制到另一个位置,无论是同一片段的不同参数之间,还是不同片段之间。这有助于快速复用动画效果,如色彩校正、音频滤波器调整等。通过拷贝关键帧,...
在这个主题中,我们将深入探讨“汇编源代码-文件拷贝”的概念。 文件拷贝是一个基本的操作,无论是操作系统还是应用程序,都需要这样的功能。在汇编语言中实现文件拷贝,需要理解文件I/O操作、内存管理以及循环结构...
总结来说,`CRichEditCtrl`提供了一个强大的富文本编辑环境,通过处理`EM_COPY`和`EM_PASTE`消息可以实现基本的拷贝和粘贴功能,而结合`COleDataObject`和`COleClipboard`则能处理RTF格式的数据。此外,`...
在这个场景下,"剪切"、"拷贝"和"粘贴"文件是常见的操作,这些功能通常通过Windows剪贴板API来实现。以下我们将详细探讨如何在VC++中实现这些功能。 首先,剪贴板是Windows操作系统提供的一种数据共享机制,允许...
本文将详细解析"ntzc-default_零拷贝代码_ixgbe驱动_"这一主题,深入探讨ixgbe驱动如何实现10GE(10 Gigabit Ethernet)网卡的零拷贝功能,并通过DMA(Direct Memory Access,直接内存访问)机制建立用户态内存与...
【标题】:“练习52拷贝粘贴图片(二).doc”的知识点解析 【描述】:这个文档是关于如何在Java环境中实现图片的拷贝和粘贴功能的编程练习,主要涉及了Image、ImageCanvas、MediaTracker以及Clipboard等类的使用。 ...
在Excel中,面对重复的...只需要在Excel中录制宏,将这段代码粘贴到VBA编辑器中,然后分配一个快捷键或添加到工具栏,即可一键完成批量拷贝和清除操作。记得在实际应用前,根据实际工作表结构和需求进行适当的调整。