文章插图
前言最近因为项目需要写了一段时间的 Go ,相对于 JAVA 来说语法简单同时又有着一些 Python 之类的语法糖,让人大呼”真香“ 。
文章插图
但现阶段相对来说还是 Python 写的多一些,偶尔还得回炉写点 Java ;自然对 Go 也谈不上多熟悉 。
于是便利用周末时间自己做个小项目来加深一些使用经验 。于是我便想到了之前利用 Java 写的一个博客小工具 。
那段时间正值微博图床大量图片禁止外链,导致许多个人博客中的图片都不能查看 。这个工具可以将文章中的图片备份到本地,还能将图片直接替换到其他图床 。
文章插图
我个人现在是一直在使用,通常是在码字的时候利用 iPic 之类的工具将图片上传到微博图床(主要是方便+免费) 。写完之后再通过这个工具一键切换到 [SM.MS](http://sm.MS) 这类付费图床,同时也会将图片备份到本地磁盘 。
改为用 Go 重写为 cli 工具后使用效果如下:
文章插图
3-min.gif
需要掌握哪些技能之所以选择这个工具用 Go 来重写;一个是功能比较简单,但也正好可以利用到 Go 的一些特点,比如网络 IO、协程同步之类 。
同时修改为命令行工具后是不是感觉更极客了呢 。
再开始之前还是先为不熟悉 Go 的 Javaer 介绍下大概会用到哪些知识点:
- 使用和管理第三方依赖包(go mod)
- 协程的运用 。
- 多平台打包 。
使用和管理第三方依赖
- 还没有安装 Go 的朋友请参考官网自行安装 。
它的目的和作用与 Java 中的 maven,Python 中的 pip 类似,但使用起来比 maven 简单许多 。
文章插图
根据它的使用参考,需要首先在项目目录下执行 go mod init 用于初始化一个 go.mod 文件,当然如果你使用的是 GoLang 这样的 IDE,在新建项目时会自动帮我们创建好目录结构,当然也包含 go.mod 这个文件 。
在这个文件中我们引入我们需要的第三方包:
module btbgo 1.15require ( github.com/cheggaaa/pb/v3 v3.0.5 github.com/fatih/color v1.10.0 github.com/urfave/cli/v2 v2.3.0)
【十分钟学会用 Go 编写命令行工具】我这里使用了三个包,分别是:- pb: progress bar,用于在控制台输出进度条 。
- color: 用于在控制台输出不同颜色的文本 。
- cli: 命令行工具开发包 。
推荐阅读
- 15个MySQL常用基本SQL语句
- 90%测试猿都想学的Jmeter技能,你get吗?
- 助学贷款提额申请多久能批下来?
- 翡翠|翡翠毛料学问大
- 不会吧,你还不会用RequestId看日志 ?
- 职业教育|在高度重视学历的年代,为什么厨师、理发师、大货司机不要学历?
- 生科医学|男子反复挤痘出血不止引发血管瘤 医生科普:要注意了 痘痘别乱挤
- 学位是什么?
- 大量建筑风水知识
- 机器学习算法 AI系统中导致偏差的原因总结