不晓得大家有没有这样的经验? 某种代码操作,之前很少写,忽然要用了但想不起来怎么写了;某个工具库很久没用了,当初想用了连库名都遗记了;某个命令行,已经用过,当初曾经遗记它有哪些参数了…… 这样的经验我反正是遇到好屡次了。程序猿做久了,不免偶然须要写一些很难的代码(低频代码),这种代码的特点就是偶然用一次,之后良久都不会用,但下次再用的时候又得从新查资料。 所以程序猿总是调侃本人是面向百度/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,一个用高效来赚取划水工夫的程序猿。