yum install golang 的版本 是 1.17版本,最新版是 1.19.1 下载 https://golang.google.cn/dl/ 环境变量 在最后添加 更新生效 设置代理 关于go的代理 慎选择 阿里的,很多404不说,竞厂的sdk 阿里是不会让你下载的。真感觉好用,用逗号分割就好

2022年 10月 4日 Read all

昨天突然想把docker的某几个目录映射出来,然后又不想使用-v 或者sftp的方式。 于是想到使用webdav,php下webdav工具一大把,但docker里面明显可能没有php环境。所以想到用golang自己写一个。因为golang没有那么多依赖要处理哈。 顺带一起做了 静态文件浏览,方便共享一些文件。以及密码认证 配置文件 等等 成品发布到了 gitee:https://gitee.com/joyanhui/webdavgo/ github:https://github.com/joyanhui/webdavgo/ 初始版本代码如下 最新版请去gitee 查看

2022年 9月 24日 Read all

原型产品使用的 thinkphp+mysql+redis开发的 纯api,由于并发太大,php吃资源离谱。基于节约成本考虑,直接用go重写 。数据库 依旧是原来数据库。 总共30几个接口,历时一个月从零开始学习go并完成迁移工作。先重写大并发接口,而后逐个线上替换。 go主要用的库 jsonparser 是一个json处理库,比自带的encoding/json速度要快,但encoding/json更灵活一些,所以都使用了 fasthttp 是一个更加高性能的web服务,在多并发的时候 线程复用更强大 但是 依旧使用了 net/http 来处理一些 第三方sdk 感受和优势 1、vscode自带代码校验,大错误小错误都会提示,代码低级失误较少。代码自动格式化 2、不需要搭建环境,golang官方直接下载 安装即可,zip的话添加一个系统变量即可使用 3、可以不依赖nginx,当然基于ssl gzip 日志 等需求,前端还是套一个nginx 简单一些 4、编译速度很快,在vscode可以简单重新编译调试,4秒左右 5、直接导出二进制文件,不用担心源码泄露 尤其是源码里面的一些密码部分。比如md5的二次加密密钥等 6、计划任务 定时任务,可以直接单开一个线程处理,不依赖前台php文件唤起(当然 shell php也可以)go处理起来 很简单只需要一行 go cron_tab() //并发任务 即可 7、宝塔自带守护进程,不需要自己另外守护 8、fmt.Println fmt.Fprint(ctx, "{}") 的日志输出,开发过程中监控运行状态更简单 9、跨平台 依旧有高性能,win linux mac arm均可以搞定 10、可以开发简单的 客户端软件。同语言 搞起来省心 11、包管理和源码文件 管理,没有php方便 ,需要用go mod 或者第三方框架 12、go和php相比,强类型需要时间适应,另外很多函数需要自己复写。go的异常处理 较为啰嗦,原生开发go的话,需要自己写大量简单的函数来封装 以便主流程代码简洁比如 md5 函数 还有 json和map互转 等等 13、字符类型转化 很啰嗦,甚至 int int8 int16 之间转化 代码啰嗦,不过按需使用 可以做到更快的运行速度和极限的更低的资源占用

2022年 9月 19日 Read all

其他类型转化为字符串 可以使用strconv包的方法,也可以用fmt,如果数据本身是interface的话就只能用fmt 字符串转byte byte转字符串 字符串转化为其他类型 字符串转化float64 float32 float64转化int int转化float int和int64互转 time转int map[string]interface{} 的一个数字转化为int 需要三步 json 和 map互转 map转化json字符串 json 字符串 转化为map 使用encoding/json库,性能比github.com/buger/jsonparser 要差一些 jsonparser 不知怎么转换 不带数组格式的json转map 数组格式的json转map Sql查询结果转json字符串

2022年 9月 9日 Read all

使用举例

2022年 9月 8日 Read all