重新敲一遍代码,胜过拷贝粘贴

开发 前端 后端
  如今这个时代,Google 和 Stack Overflow 已经成为了很多开发者不可或缺的工具。但是最近,后者貌似名声坏了。一方面,是因为表面上特别、有时候会偏离适度的原则。说得更中肯些,取笑别人是「十足的 Stack Overflow 式的开发者」的现象,明显增多了。

  如今这个时代,Google 和 Stack Overflow 已经成为了很多开发者不可或缺的工具。但是最近,后者貌似名声坏了。一方面,是因为表面上特别、有时候会偏离适度的原则。说得更中肯些,取笑别人是「十足的 Stack Overflow 式的开发者」的现象,明显增多了。

[[151499]]

  说简单点儿,有些人在 Stack Overflow 上扔代码、还大肆拷贝、粘贴回答里的代码示例,他们最应该得到这个称号。他们干起活来可能相当麻利,但是对于他们所面对的问题、以及他们乐于使用的解决方案,缺乏应有的理解。

  当然,代码的拷贝粘贴不应该都被鄙视。我敢肯定,大部分阅读本文的读者(当然包括写本文的我!)耻于把 Stack Overflow 上的代码片段、原封不动地拷贝到他们自己的代码库里。那又能怎样呢,人家的代码为什么要这样写,我们或许根本没有兴趣去了解。从本质上讲,不是每一项技术 都让人着迷,毕竟,deadline 有时过于急迫。

  但是,果真如此的话,是不是意味着,我们渐渐就变成了十足的 Stack Overflow 式的开发者?对头!我们肯定不希望走到这一步!

  缓解对策

  每当你想把 Stack Overflow 的一段代码拷贝到项目里时,别急着断网,而要考虑下面的技巧。

  不要使用剪贴板。不要拷贝和粘贴。而是把你找到的代码,重新敲一遍。

  是的,这要多花些时间。和你简单地敲击 Ctrl+C/Ctrl+V 相比,这肯定笨拙不堪。或许没有多少意义:如果最终结果是一样的,那么,代码的转移是否通过了剪贴板,又有多大的关系呢?

  理由

  无论如何,我坚持认为,敲一遍代码,意义十分深远。按照重要程度,下面列出我的理由:

  • 重新敲一遍,要比拷贝粘贴慢,这实际上非常好。如果你发誓不再使用剪贴板了,就不会只是寻找 Google 给出的***条 Stack Overflow 的结果。你将权衡不同的解决方案,正常情况下,你将倾向于更短、更简洁的方案。

  • 在你敲代码时,你不可能完全无意识地敲着。不管你是否愿意,你都将潜移默化地吸收一部分知识,因为当代码从浏览器转移到编辑器或 IDE 时,也是在你的眼睛和大脑之间流动。你下意识地会对部分信息感兴趣,并梳理清楚,便于今后使用。即使你不想这样做,你也会学到点儿东西。

  • 最重要的、也是几乎可以肯定的是,你自己敲的东西不等同于原始代码片段的完全拷贝。在你敲代码的过程中,只要你遵从项目正在采用的、特定的风格规 范,那么,你将不可避免地偏离原始代码。更有可能发生的是,你也会做出更大的修改。你将替换调用工具函数的常见模式。为了更好的可阅读性,你将重新组织代 码。你将添加注释、或抽出功能,让其更加自文档化(self-documenting)。甚至改善并个性化,这样,你就能抽象并多次复用。

  此后,你刚才敲好的代码,就不只是你从网上找到的代码。它成了你自己的代码。

英文原文:Don’t Copy & Paste. Retype.

 
责任编辑:王雪燕 来源: 腊八粥
相关推荐

2024-03-12 08:20:57

零拷贝存储开发

2021-08-12 10:36:18

order byMySQL数据库

2023-01-10 19:47:47

Redis原理多线程

2017-12-26 14:17:24

润乾报表

2021-06-15 07:15:15

Oracle底层explain

2022-01-17 20:59:37

开发group by思路

2021-12-01 07:26:13

IO模型异步

2023-09-12 07:31:45

HashMap线程

2021-10-07 20:12:03

MVCC事务原理

2024-03-26 07:59:32

IO模型多路复用

2021-03-11 07:14:01

Epoll原理线程

2024-09-14 10:30:27

2019-09-19 08:04:40

网络七层模型TCPUDP

2020-02-09 17:30:54

反转链表程序员节点

2022-02-22 09:16:41

AndroidWindows状态栏

2022-08-26 10:41:03

指针C语言

2022-01-27 08:31:20

一致性哈希

2021-03-04 08:06:13

Java代理机制

2018-08-27 05:29:29

PandasPython数据集

2021-10-03 15:10:19

Rust CargoNpm
点赞
收藏

51CTO技术栈公众号