前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >同事机械键盘啪啪啪,偷偷一瞅原来在 CV。。。

同事机械键盘啪啪啪,偷偷一瞅原来在 CV。。。

作者头像
程序员小浩
发布2021-04-26 15:53:10
7700
发布2021-04-26 15:53:10
举报
文章被收录于专栏:小浩算法

大家好,我是小浩。

知乎上看到一个有趣的问题:

想知道那些编程大佬是不是代码都能记住,然后不百度就能啪啪啪打出来~

原题目如下:

哈哈,我用自己举个例:

不怕大家笑话,首先基本上你要是看见我在「啪啪啪」狂敲代码,第一种情况就是在 CV 了。

我一直认为,程序一个很典型的特点就是 可复制性

对于工作而言,在很多场景下,如果我们要做一个需求,从官方文档中直接复制代码是一件很正常的事情。

如果开发中遇到问题,在 Stack Overflow 上粘贴一段代码出来也是常有的事情。

又或者我们要创建一个项目,直接拿着别人的脚手架来使用。不管是 Java 中的 Spring Boot,又或者 React 项目我直接使用 Dva。

我们想一个道理,你拿着别人的 Jar 包来使用,我能不能认为你本身就是在复制别人的代码?

这就是我说的可复制性,通过广义的复制粘贴,来提高自己 Coding 的效率。而往往要做这些事的时候,我们就会产生大面积的代码。比如用 Java 的 Generator 生成 Mapper 文件。

那什么情况下是我不 CV,自己开始手动敲代码?

对我其实有两种情况,

一种就是看不上别人写的代码了,像是有三五年工作经验的人,在有些时候看到一些别人的代码,真的会出现一些很 low 的感觉。

比如一大段一大段的 if else 嵌套循环,比如最常见的权限控制明明可以用 filter 来搞的结果耦合了很多业务冗余代码。又或者像是我这种强迫症,看到一些比较古老的代码,可以用现在的一些比较新的 API 实现,就想着能给它替换掉,比如一个很典型的场景就是 lambda 。

反正搞了几年程序,有点小膨胀。当看到别人写的代码真的感觉 “难受” 的时候,可能就会出现一波操作猛如虎,推倒运行,单测ok,完事上线!

还有另外一种情况,我会手动敲代码,就是在真正遇到一些很麻烦的技术问题时。

但是这时候往往并不会出现 “啪啪啪” 敲代码的场景。因为一旦遇到技术问题,就会出现思考的时间 > Coding 的时间。

这时候基本就是眉头紧锁,感觉时间过得飞快。查资料、看文档、点源码。拿个本子画画画、想想想。

比如之前我遇到一个要把特征关系用 DAG (有向无环图)模型来实现,又或者之前要实现一个类似 Github/BeyondCompare 中两部分代码 Diff 比较,要设计一个便于来比较的数据结构。

像是这种东西,基本上就要想好长时间。有时候还要边实现,边去想自己有没有有遗漏的地方。

不太常见的一种情况是,实现了很久之后,突然发现自己的设计有点问题,然后推倒重写。因为程序吧,其实如果你想要打补丁,总是可以找到合适的打法。

但是这就会出现一种问题,随着你的补丁越来越多,别人上来写也就会用补丁的写法来实现,尤其是很多业务耦合很紧密的场景,以及一些懒的时候。。。我们并不想推倒别人的代码来重写。这种情况一般就被总结为 “掏粪” 了。

总之,用键盘敲击速度来评价的,不是程序员,那是打字员。

其实真正开发中要想提高效率,对于小白的建议,我有两个:

1、把大脑当做 索引 使用,你需要什么,知道去哪里找,知道是什么,知道原理基本上就够折腾一阵子。类似 IDEA 智能提示、常见的快捷键、Stack Overflow ,尽可能把每一个工具用好。

2、把知识结合场景来使用。总是看一些小朋友,喜欢把一些很 “打字员” 属性的东东重复来做。凡事要躬为,本身没有错。但计算机这个世界,要学的东西实在太多。我给身边人常说的是,不要总纠结 0-1 该怎么走,事实我们往往需要的是 0-100。

最后,回到我们上文中的问题:

咱们这行,真不需要一味的追求键盘上的啪啪啪,

与其这样,生活中不是更好吗?

同意的来个赞吧。

- END -

这篇文章到这里就结束了~

当然,你可以加我私信和我交流(虽说空位已经不多了):

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小浩算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档