5

提效小技巧——记录那些不常用的代码片段

 2 years ago
source link: https://zxs.io/article/1876
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

提效小技巧——记录那些不常用的代码片段 | XINDOO

当前位置:XINDOO > 其他 > 正文

  不知道大家有没有这样的经历? 某种代码操作,之前很少写,突然要用了但想不起来怎么写了;某个工具库很久没用了,现在想用了连库名都忘记了;某个命令行,曾经用过,现在已经忘记它有哪些参数了…… 这样的经历我反正是遇到好多次了。程序猿做久了,难免偶尔需要写一些很难的代码(低频代码),这种代码的特点就是偶尔用一次,之后好久都不会用,但下次再用的时候又得重新查资料。 所以程序猿总是调侃自己是面向百度/CSDN/GITHUB编程。

  为了让大家回忆起被低频代码支配的恐惧,我们先抛一个具体的例子:你能用Java写出读写文件的代码吗? ,坦诚的讲,虽然我是一个Java程序猿,但让我写这个我还是得去查下相关的资料。虽然这种问题出现的频次很低,但遇到一次还是得需要花点时间重复折腾的。所以,我后来的选择就是把这些代码片段都记录下来,之后如果再遇到,可以直接复制粘贴,相较于重新上网查阅资料,快的不是一点半点。每次遇到类似的问题,保守估计可以节省十几分钟、半小时的。

  我另外要说的是,记录代码片段不仅仅是为了以后节省时间,它也可以间接帮助你建立某些方向的知识体系。你想想看,如果你每次遇到新的问题,解决后得到了一段代码片段,你想把它记录下来,并且能让其在以后还能快速回忆起来,你就得额外补充一些信息,补充信息的过程就反推你去获取更多的内容。长久下来,你积累的知识也会越来越多。比如我自己在记录代码片时我肯定会补一些代码注释,或者是额外的代码示例。

  记录代码方式很多,比如Github Gist ,不过这种比较适合放一些开源的代码片段,不适合私用。你也可以直接使用云笔记保存代码片段,只要做好归档、标签、写好描述,方便检索就行。 也有专用的代码片段软件,比如我在用的SnippetsLab(付费软件),相较于普通云笔记来说,SnippetsLab代码的归档和检索还是方便的多,个人还是觉得挺好用,用了好多年了。 下图是我之前处理视频时记录的一些ffmpeg操作,如果再用ffmpeg,这些内容必然会派上用场。

在这里插入图片描述

  看到这里你肯定也想立即建立自己的代码片段库了,最主要的问题就是哪些代码应该被存起来。我的建议就是把你还不熟悉,但未来肯定会用到的代码片段都存起来,已我自己的代码库为例,我会存储以下几类代码片。

某些不常用命令的使用

  我自己就存了好多awk相关的命令,保存的内容甚至可以出一篇完整的awk教程了。 新生代的程序猿可能都不用awk了,甚至是不知道awk是什么了,有兴趣可以看下我之前写的一篇文章Linux三剑客之awk入门指引。虽然我早已不做运维了,但工作中还是偶尔会用到awk来处理一些文本数据(应用日志),比如前两周我们受腾讯云故障的影响,有一批设备有问题,但我们无法快速找出来,我就是用grep、awk命令从日志里捞筛出来的,1千多台设备,前前后后用了不到5分钟。

某些工具类的使用

  某些类库之前用过,现在要用,突然想不起来怎么用了。这种经历不管是任何语言任何岗位的程序猿应该都是非常常见的。比如我们Java程序猿常用的guava库、apache-common库、Jdk里一些低频使用的包…… ,node、python、go……程序猿们应该也有类似的困惑吧,毕竟都可以随意import。

一些特殊语法

  虽然我已经写Java很多年了,但是很多Java的语法糖用的还不熟练。举个简单例子,比如Java lambda表达式里的groupingBy,自己还是写不出来,毕竟没有系统性学过lambda表达式,也没经常使用到,这种我就直接记录,下次遇到直接抄。

某些特殊配置的方法

  你知道nginx怎么配置https吗? 你知道jvm怎么配GC相关的东西吗? 你知道xxx如何通过命令行启动吗?…… 我不知道,但我代码库里有,20秒内我就可以给你答案。

一些完整的代码Demo

  虽然本人是一名专职的Java程序猿,但偶然也是需要写python和shell脚本去实现一些功能的,因为不是专业的,甚至部分语法都得现查,所幸使用其他语言的场景并不多,我干脆直接保存完整的代码Demo,下次在其基础上改吧改吧就行了。

  以上就是我目前代码库里存储的几大类别代码,也有些代码片段我之前会存,但目前不会再存了,因为随着自己工作时长的增长,有些东西已经烂熟于心了,未来这些无用的代码也会逐渐清理出去。 最后还有几个需要注意的点也提醒下大家一下:

  1. 代码片补充好额外信息
      记录代码片的目的是为了之后可以快速复用,或者是能快速回忆起来某些信息。首先就要求代码片能被快速检索到,写好代码描述、打好标签、做好分类,保证能快速找到代码,否则没有任何意义。 其次,你找到代码后也得能看懂啊,所以一些复杂的代码建议加上详细的注释,参考资料,或者更多形式的实例。
  2. 注意信息安全
      我知道肯定有人会在代码片里保存账号密码,这种带敏感信息的代码片就不要放公网上了,也不要随意分享了,否则泄露了就得不偿失了。

  今天文章的内容就到这了,喜欢请点赞,有用请关注,我是XINDOO,一个用高效来赚取划水时间的程序猿。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK