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

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

  1. 开发提效小技巧分享(二)

    前言 在日常开发中,影响我们开发效率的因素很多,有时候不仅仅会影响开发效率,还会搞崩我们的心态. 为了提高工作效率,保持愉悦心情,腾出更多的时间来进行摸鱼大业,前辈们折腾出了很多有用的小技巧,我在这里 ...

  2. 开发提效小技巧分享(一)

    前言 在日常开发中,影响我们开发效率的因素很多,有时候不仅仅会影响开发效率,还会搞崩我们的心态. 为了提高工作效率,保持愉悦心情,腾出更多的时间来进行摸鱼大业,前辈们折腾出了很多有用的小技巧,我在这里 ...

  3. 前端必备,5大mock省时提效小tips,用了提前下班一小时

    一.一些为难前端的业务场景 在我的工作经历里,需要等待后端童鞋配合我的情形大概有以下几种: a.我们跟外部有项目合作,需要调用到第三方接口. 一般这种情况下,商务那边谈合同,走流程,等第三方审核,我们 ...

  4. JQuery常用的代码片段

    2019独角兽企业重金招聘Python工程师标准>>> JQuery常用的代码片段 JQuery在当前众多网站开发中都有用到.他简易的操作以及对各个浏览器的兼容性,被广大的开发者一致 ...

  5. 微信小程序使用wxParse解析渲染html代码片段

    最近项目中一个遇到需求,就是在微信小程序里,需要显示html代码片段内容,内容是通过接口读取的服务器中的富文本内容,是html代码片段,小程序默认是不支持html格式的内容显示的,会被认为是Objec ...

  6. UIautomator2:APP自动化测试方法与小技巧记录(文末附实用APP测试脚本编写模板)

    uiautomator2是一个python的用来自动化操作手机的库,可用于APP自动化测试.就笔者的使用体验,比appuim更稳定.易用.本文以大家最常用的APP:微信为例子,记录uiautomato ...

  7. Linux中_Ubuntu上_命令_使用小技巧记录

    Linux特殊命令使用小技巧心得记录 查看gpu使用率: 查看系统使用情况: 在终端杀死进程: 查看内存使用情况: 系统跟踪器//或者按alt + F2打开运行窗口,输入: 重启服务器上Mysql服务 ...

  8. 中职计算机高考提分技巧,高考临近:短时间内各科提分小技巧,你的老师未必会告诉你!...

    时间快进入到五月下旬了,2019年高考是越来越近了,而在这极短的时间内,想要让自己的考分获得一定的提升,已经变得非常的困难了,但是也是有一些技巧的,对于各位考生而言,可能会有一些帮助,而且这些小技巧, ...

  9. 【方向盘】工具提效:Sublime Text 4的常用快捷键合集

    本文已被https://yourbatman.cn收录:女娲Knife-Initializr工程可公开访问啦:程序员专用网盘https://wangpan.yourbatman.cn:技术专栏源代码大 ...

最新文章

  1. Python爬虫小偏方:如何用robots.txt快速抓取网站?
  2. 提分策略:数据采样方法最全总结!
  3. 自回归解码加速64倍,谷歌提出图像合成新模型MaskGIT
  4. 图表 Echarts 3.0 简单使用
  5. SAP Spartacus HTTP请求url里的语言和货币参数是如何加上去的
  6. Python 二维创建与插入值的二种方法
  7. Gnome即将满18岁,适用于Docker,Kali Linux 2.0的新工具以及更多新闻
  8. C#线程系列讲座(4):同步与死锁
  9. 机器学习算法-详细白板推导系列视频
  10. python下载电影_Python3.x+迅雷x 自动下载高分电影的实现方法
  11. 弱电机房如何理线整理机柜?值得收藏学习
  12. keepalived实现服务高可用
  13. Reactor3 Mono
  14. Anaconda安装keras教程
  15. 高精度1------高精度乘法
  16. 从街机到抓娃娃机,硬币经济也将被移动支付取代?
  17. 如何更清楚的购买自己需要的电脑——配置篇
  18. 日志管理logging的使用
  19. 3GS到iPhone6P+ 历代iPhone屏幕尺寸、像素分辨率
  20. innerHTML\innerText制作动态网页基础

热门文章

  1. Android使用webview怎么加载uri_【网安学术】Android移动应用跨域攻击检测
  2. 微软游戏编程接口———DirectX
  3. android 2g内存,追求极致流畅体验 2G内存安卓手机推荐
  4. ubantu启动盘制作
  5. 【Unity3D】射箭打靶游戏(简单工厂+物理引擎编程)
  6. 大学生创业项目-校园外卖的创业优势在哪里?
  7. 奈雪的茶IPO:外卖订单增速明显,亏损扩大6倍,存在高额负债
  8. 初探OSG+Opencascade在qt上的实践值获取模型颜色并在OSG中显示
  9. 埃奇机器人_设计大奖作品欣赏,2017年红点最佳设计奖30件作品欣赏(上)
  10. 倩女幽魂2服务器维护怎么抢先进,老司机教你如何不用花钱进新区秒进通道