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

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

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

目录
相关文章
pip镜像源大全及配置
在中国使用pip时,可以配置国内镜像源来提高安装速度和稳定性。以下是一些常见的国内镜像源:
19992 0
|
监控 安全 Java
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十一)spring-boot-admin 监控篇(2)springcloud 集成spring boot admin
|
开发者 知识图谱
免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式
今天,阿里技术公布一波阿里P8、P9技术大牛的思维模型,将他们的思维模式呈现出来。你可以在阿里资深专家职业生涯的真切感悟中,找到应对危机的最佳方法。《阿里工程师的自我修养》现已正式公开,可免费下载阅读。
136328 1
免费下载!《阿里工程师的自我修养》公开10位阿里大牛解决问题的思维方式
|
前端开发 API Swift
探索iOS应用开发的新趋势:SwiftUI和Combine框架
【8月更文挑战第16天】本文深入探讨了iOS平台上的两个最新技术:SwiftUI和Combine。SwiftUI旨在简化用户界面的构建,而Combine则优化了事件处理机制。我们将分析这两个框架如何共同推动iOS开发的未来,以及它们给开发者带来的便利和挑战。
347 6
|
机器学习/深度学习 数据采集 存储
阿里云大数据分析师ACP考试内容是什么?需要准备什么?
作为目前市场占比最大的云计算厂商,阿里云旗下的认证也是相当具有含金量的,想通考证来提升自己的职业竞争力,那么选择阿里云的证书准没错了。
|
存储 前端开发 NoSQL
面试官问我:如何设计 QQ、微信等第三方账号登陆 ?还要我说出数据库表设计!
面试官问我:如何设计 QQ、微信等第三方账号登陆 ?还要我说出数据库表设计!
308 0
面试官问我:如何设计 QQ、微信等第三方账号登陆 ?还要我说出数据库表设计!
|
存储 JSON 数据安全/隐私保护
高频面试题之状态保持三剑客-Cookie-Session-JWT
本文从 状态保持的原因出发, 针对Cookie, Session, Json-Web-Token三者进行了对比阐述!
高频面试题之状态保持三剑客-Cookie-Session-JWT
|
开发工具 Perl
ZYNQ-实现PL和PS端的协调设计
ZYNQ-实现PL和PS端的协调设计
692 0
ZYNQ-实现PL和PS端的协调设计
|
存储 数据采集 开发者
简单分析豆瓣电影top250
大家好,今天打开了豆瓣电影网,突然想看看前250名的电影剧情都是那些类型的,评分都是多少,所以写了一个程序给大家一起来分享一下。
902 0
简单分析豆瓣电影top250
|
存储 Android开发
方法:如何批量把excel表格联系人号码导入华为手机通讯录
看着电脑上的excel表格里上千个员工,很是头大,我是华为手机,如何批量把excel表格联系人号码导入华为手机通讯录?开始的时候信心满满的想着一个个自己手打铭字和输入一个个数字,一天存几百个,几天就搞定了,但是开始存了几十个就手指都累了而且容易出错,想想这大量重复枯燥的工作量都怀疑人生。于是上网找了很多的办法,折腾了大半天,终于发现有人介绍了一个网络上常见简单便捷操作的软件工具,金芝号码提取导入助手。在电脑上安好了软件,简单操作了三步,不到三分钟,就把excel表格里面的几千个联系人快速批量存入了手机通讯录。我下面做个教程指导。
3193 0
方法:如何批量把excel表格联系人号码导入华为手机通讯录