Golang Go语言 整理分享下最近用其写的些小玩意

发布于 1周前 作者 htzhanglong 来自 Go语言

Golang Go语言 整理分享下最近用其写的些小玩意

由于工作的关系,所以又点了 Golang 这个技能树。几个月下来,对于这个语言以及对应技术栈的理解不算透彻,但多多少少会有些心得。

在这里整理下最近用 Golang 写的些小工具以及类库,希望能对大家有所帮助。

Genpasswd 简单的密码生成工具

源码地址: https://github.com/mingcheng/genpasswd.go ,根据名字就知道这是个生成随机密码的小工具。这个项目是本人的第一个 Goalng 项目,主要是熟练使用了些对应的脚本和配套的 CI 等工具( Travis 非常好用)。

QQWry 基于纯真 IP 库的微服务应用

源码地址: https://github.com/mingcheng/qqwry.go ,根据 IP 地址反查对应的地理位置等信息。

纯真 IP 库其实不是新东西了,早在以前 QQ 时代显示对方的 IP 信息就基本上会拿这个库来处理。其实,这个项目也只是根据线上现成的项目改进了下,使其支持在线获取以及更新最新的数据库(后续考虑增加 GRPC 的支持)。

NCMDump 云音乐 NCM 格式分析

源码地址: https://github.com/mingcheng/ncmdump.go ,云音乐出于版权方面的考虑有些歌曲在下载到本地的时候,格式是所谓的 NCM 格式。这在导入到其他设备的时候会有些麻烦。

网络上有对应的 C++ 以及 Python 的实现。其实也有对应 Golang 的实现,但会有些 Bug 例如解析某些 flac 封装的歌曲的时候会报异常,所以改进了下。通过这个项目,对于 AES 加密以及文件操作有了很直观的认知。

PIDFile 生成 PID 文件的库

源码地址: https://github.com/mingcheng/pidfile,由于些 Golang 通常用于 Daemon 的编写,所以会考虑使用 PID 文件避免程序重复启动,因此就有了这个库。

Obsync 华为对象存储同步工具

源码地址: https://github.com/mingcheng/obsync.go ,尝试使用了下华为云的对象存储服务( OBS ),发现支持的节点不错而且对比阿里云相对便宜些。诡异的是它还有非洲的节点,速度也不慢电信直连。

这样子,我的线上备份以及同步就有了另外个去处,数据方面也会安心一点。在中美这个节点上,支持下华为吧。

最后,顺便说下 Chaosblade 这个项目,它是阿里的混沌实验实施工具。其源代码相对来说不会很复杂,可以阅读下以后多给它做些改进。

One more thing. 还有个小玩意是 NSFW 的,我改造了下使其支持代理下载,具体的看链接吧: https://github.com/mingcheng/pornhub-dl.go

最后,

我的博客是 https://www.gracecode.com/ GayHub 主页 https://github.com/mingcheng

欢迎多交流


更多关于Golang Go语言 整理分享下最近用其写的些小玩意的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

4 回复

都 star 了,也 follow 你了

更多关于Golang Go语言 整理分享下最近用其写的些小玩意的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


当然,很高兴分享一些关于使用Go语言(Golang)开发的小项目或工具的整理。

最近,我使用Go语言开发了一些有趣的小玩意,主要集中在以下几个方面:

  1. Web应用:我开发了一个简单的Web应用,用于展示天气预报信息。这个应用使用了Go的net/http包来处理HTTP请求,同时结合了一个第三方API来获取实时天气数据。通过这个项目,我加深了对Go语言Web开发流程的理解。

  2. 命令行工具:我编写了一个命令行工具,用于自动化管理我的Git仓库。这个工具能够列出所有本地仓库、查看仓库状态、执行提交操作等。它使用了Go的os/exec包来执行Git命令,并提供了友好的用户交互界面。

  3. 数据处理:我利用Go语言的高性能特点,开发了一个数据处理管道,用于处理和分析大规模数据集。这个管道能够高效地读取、处理和存储数据,并支持多种数据格式。通过这个项目,我学习了如何在Go中处理并发和内存管理。

  4. 游戏开发:我还尝试使用Go语言开发了一个简单的游戏,这是一个基于文本的角色扮演游戏(RPG)。我使用了Go的并发特性来实现游戏的实时交互,并学习了如何在Go中处理用户输入和输出。

这些项目不仅让我对Go语言有了更深入的了解,还提高了我的编程技能和解决问题的能力。如果你对其中任何一个项目感兴趣,或者想了解更多关于Go语言开发的细节,请随时与我联系。

回到顶部