共计 2066 个字符,预计需要花费 6 分钟才能阅读完成。
不晓得大家有没有这样的经验?某种代码操作,之前很少写,忽然要用了但想不起来怎么写了;某个工具库很久没用了,当初想用了连库名都遗记了;某个命令行,已经用过,当初曾经遗记它有哪些参数了…… 这样的经验我反正是遇到好屡次了。程序猿做久了,不免偶然须要写一些很难的代码(低频代码),这种代码的特点就是偶然用一次,之后良久都不会用,但下次再用的时候又得从新查资料。所以程序猿总是调侃本人是面向百度 /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,下次在其根底上改吧改吧就行了。
以上就是我目前代码库里存储的几大类别代码,也有些代码片段我之前会存,但目前不会再存了,因为随着本人工作时长的增长,有些货色曾经烂熟于心了,将来这些无用的代码也会逐步清理进来。最初还有几个须要留神的点也揭示下大家一下:
- 代码片补充好额定信息
记录代码片的目标是为了之后能够疾速复用,或者是能疾速回顾起来某些信息。首先就要求代码片能被疾速检索到,写好代码形容、打好标签、做好分类,保障能疾速找到代码,否则没有任何意义。其次,你找到代码后也得能看懂啊,所以一些简单的代码倡议加上具体的正文,参考资料,或者更多模式的实例。 - 留神信息安全
我晓得必定有人会在代码片里保留账号密码,这种带敏感信息的代码片就不要放公网上了,也不要随便分享了,否则泄露了就得失相当了。
明天文章的内容就到这了,喜爱请点赞,有用请关注,我是 XINDOO,一个用高效来赚取划水工夫的程序猿。