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

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

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

目录
相关文章
|
8月前
|
敏捷开发 API
【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
【sgCreateAPI】自定义小工具:敏捷开发→自动化生成API接口脚本(接口代码生成工具)
序---在开发的过程中首先写开发文档,查一查开发文档怎么写,开发一个流程标准化页面
序---在开发的过程中首先写开发文档,查一查开发文档怎么写,开发一个流程标准化页面
|
SQL 安全 关系型数据库
项目实战典型案例7——在线人员列表逻辑混乱反例
项目实战典型案例7——在线人员列表逻辑混乱反例
162 0
项目实战典型案例7——在线人员列表逻辑混乱反例
|
SQL 安全 关系型数据库
案例07-在线人员列表逻辑混乱
在线人员列表逻辑混乱
|
SQL 安全 Java
【项目实战典型案例】07.在线人员列表逻辑混乱反例
【项目实战典型案例】07.在线人员列表逻辑混乱反例
|
SQL 安全 算法
项目实战7——在线人员列表逻辑混乱反例
项目实战7——在线人员列表逻辑混乱反例
92 0
|
缓存 JavaScript 前端开发
使用 pug 模板语法提高页面开发的效率
pug由jade改名而来,通过缩进(表示标签间的嵌套关系)的方式来编写代码的过程,在编译的过程中,不需要考虑标签是否闭合的问题。可以加快写代码速度,也为代码复用提供了便捷。
266 0
|
前端开发
前端工作总结126-代码中的删除逻辑处理
前端工作总结126-代码中的删除逻辑处理
112 0
前端工作总结126-代码中的删除逻辑处理
|
SQL 测试技术 数据库
自动化测试--自动化测试框架设计以及代码层级展示
测试数据隔离, 实现数据驱动 支持多接口数据依赖: 如A接口需要同时依赖B、C接口的响应数据作为参数 数据库断言: 直接在测试用例中写入查询的sql即可断言,无需编写代码 动态多断言: 如接口需要同事校验响应数据和sql校验,支持多场景断言 自动生成用例代码: 测试人员在yaml文件中填写好测试用例, 程序可以直接生成用例代码,纯小白也能使用
323 0