- 博客(89)
- 资源 (5)
- 收藏
- 关注
原创 记录:mac删除锁定的app
【应用路径】:/Applications/xxxx,也可以直接把应用拖拽至终端。sudo /usr/bin/chflags -R noschg [应用路径]/bin/ls -dle@ [应用路径]
2025-02-25 14:03:24
363
原创 golang中struct的tag -简记
今天 简单整理一下,关于golang中struct的tag平时常用的 也就是这个几个tag,简单梳理一下。
2024-08-01 14:34:46
430
原创 没什么事情,随记一下 -出差
然而,当我真正的入驻客户实地之后,一切都不一样了,啥都是问题,啥都要解决,来就来了我一个开发,项目是之前部署的,项目环境也是之前部署好的,但是千万别天真的以为,项目之前部署好了,开发来了只是傻瓜式的点点,就能更新好项目,绝对不可能,因为你不知道,你会遇到什么问题,尤其是项目的运行环境,真的,不要看,现阶段项目运行的没有问题,那只是你没有去更新,当你更新的时候,问题就出来了;这里我要留一张图的空缺,等我有外网了,我要去找那张图,贴在这,或许你会问 为什么不现在找,因为 我的流量实在是不够用。
2024-07-09 15:36:18
282
原创 git rebase的使用
在执行:git rebase --continue 继续进行rebase操作 直到结束。现在,我要将master分支 合并到我的owner分枝上,首先确定不能使用merge。如果存在冲突,修改冲突,修改完成之后,执行 git add .我在owner分枝上开发,有好多次commit。master上也有同事在正常commit,我使用的是rebase 的分支变基的功能。一共有两个分支:master owner。因为项目要求,所以使用rebase指令。git log 查看一下。
2024-06-26 17:30:44
363
原创 golang的docker 简单部署
1 首先创建一个docker的网络,将这三个容器全部放入这个网段中,他们才可以通过内网访问,可能会有人问,为什么不使用外网,这个原因有很多,就不一一说了,就说一个,对于mysql和redis,我只需要他们的入口只有一个,那就是go程序。我就是想单独的创建三个docker,然后链接使用,就是go可以链接mysql和redis。先看一下你现已有,已存在的docker网络,如果有空余的bridge,就不用创建了。如果你的容器已经启动了,但是没有加入到网络中 也没事,使用。可以在容器启动时,指定加入的网络,使用。
2024-02-20 10:34:38
695
1
原创 go中如何判断一个channel是否关闭
这是一个很简单的方法,但是我在此之前竟然忘记了,但是也确实是在我的项目经历中关于这个chan我从来也没有关闭过,我的经历是只要程序在运行,我的chan就在一直运行,没有关闭过,也就没有了解过这个小方法。我也知道,如果一个chan关闭了,直接去读取数据如果有数据就是数据没有数据就是默认值,但是不能写,写入就是panic;如果有一个有缓冲的chan在写入数据之后,关闭了,再去读取数据是可以读取出来的。一个没有缓冲的chan写入等待数据,关闭,然后也是可以读出这个代写入的数据的,
2023-12-18 10:15:19
730
转载 ETCD的简单服务发现
大神的原文:https://blog.youkuaiyun.com/feizaoSYUACM/article/details/108125460。我是使用docker启动的单机etcd,具体配置如下。记得使用gomod 来管理项目,
2023-05-09 15:28:30
245
原创 go errgroup.group
在go的并发情况下,我们可能会经常用到的一个数据类型:sync.WaitGroup;经常用到的方法也是 Add,Done,Wait。可以看到,这个升级版是包含 waitgroup的,所以升级版也是能使用waitgroup的方法,恰好今天记录一个waitGroup的升级版errgroup.group。我们在看一个简单使用:官网上的。差不多了,看完在讨论。
2022-12-27 17:20:51
403
原创 记录一个问题:goland 配置goROOT的问题 -本地安装了,但是无法选择
可能需要 切换到root用户或者直接 sudo vim /usr/local/go/src/runtime/internal/sys/zversion.go。低版本的goland还需要配置GOROOT,但是在配置go1.17以上的时候就一直报这个错误。编辑/usr/local/go/src/runtime/internal/sys/zversion.go。直接修改保存,然后重启 golang在进行选择 就OK了。找到go的安装路径,我的是/usr/local/go。增加 相对于的版本号。
2022-11-07 17:07:15
824
原创 go dig
大家都知道,java有很多的依赖注入库,而且依赖注入的强大的sprig有更多使用的地方,这就是基本的用法,还有什么dig.out我没搞,先打开思路,,然后再深入。大体记载一下go的依赖注入库 dig,它是uber的开源库。直接上一个简单的例子提供大家打开思路。...
2022-08-04 15:35:18
420
原创 踩坑日志:mac安装nginx,并且搭建静态文件服务,且配置口令
安装:对我来说,安装路径我基本就不动他了我们直接去修改配置文件这是我的配置文件保存并退出文件后,然后启动nginx打开自己的浏览器,直接访问:127.0.0.1:9090就会看到相对应的提示了对于:htpasswd 的命令...
2022-06-09 16:18:33
738
原创 踩坑日志:使用websocket,并发的传输文件(服务器之间)
这功能不要问,问就是项目需求直接上代码client还有就是 proto的文件记得protoc 一下
2022-06-08 16:40:24
1317
原创 踩坑日志:go并发读取文件
我的应用场景是:并发的读取一个文件(或者一个超大的文件),计算文件的hash值,就比如:文件60G,你的内存4G,如何计算?这个例子是不是不太可能实现:这是平常的方法,对于超大文件是肯定不合适的好了 ,直接上代码,这是我做的,可能有点小瑕疵,待解决,大神们也可直接指点迷津~~~...
2022-06-08 10:07:39
1168
原创 mac 安装 jmeter
注意:安装jmeter 需要java的环境,因为我本地已经安装了jdk,所以直接跳过,直接安装jmeter如果需要大家再去找安装方法,有很多https://jmeter.apache.org/download_jmeter.cgi先去官网,下在一个jmeter的压缩包我下载的是:找一个你喜欢的文件夹,解压你刚才下载的压缩包,同时获取路径我比较懒,直接放在了download下配置环境变量我的环境变量习惯放在 ~/.bash_profile 文件中这里要说一点,这个路径的获取JAVA_HOME,直接运
2022-06-02 11:05:57
260
原创 踩坑日志 : linux 安装指定版本的docker:
先直接上操作步骤:sudo apt updatesudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-commoncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository “deb [arch=amd64] https://downl
2022-05-26 15:34:26
736
原创 go 学习之路 - 一个内存分配问题
Go 1.15 中 var i interface{} = a 会有额外堆内存分配吗?具体代码是:var a int = 3// 以下有额外内存分配吗?var i interface{} = a答案解析在 Go 中,接口被实现为一对指针(请参阅 Russ Cox 的 Go 数据结构:接口):指向有关类型信息的指针和指向值的指针。可以简单的表示为:type iface struct {tab *itabdata unsafe.Pointer}其中 tab 是指向类型信息的指针;dat
2022-05-17 17:35:05
167
原创 hashcat mac安装步骤
1.找一个自己的喜欢的地方,创建一个hahcat的文件夹2.github 找到源码 直接clonegit clone https://github.com/hashcat/hashcat.git3.cd 进入 clone的文件4.执行 make5.在当前目录中 有一个hashcat 可执行文件,将它放到你的相对应的bin目录下,也可以配置环境变量6.重新打开一个终端7.执行。hashcat --version 看看会不会出现hahscat的版本8,执行:hashcat -a 3 --for
2022-05-17 14:09:38
3895
原创 go build 的一些基础知识
临时,也就是一次性的我的是mac本,英特尔的cup这个是:go build 项目 ,可以在linux 环境下执行env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.goenv CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go临时指定编译build环境你也可以进行修改环境变量进行编译1.mac的环境下$ go env -w CGO_ENABLED=0 GOOS=linux
2022-05-16 15:39:44
656
原创 go mod 使用时的问题(指定版本)
先简单描述一下问题:现在,我在开发go的项目中,用到了两个包 A@v1.1 和 B@v3.1,此时这两个包是可以相互支持的;两天后(就是这个意思不一定真的是两天还有可能是两个月),A版本更新了,A@v1.3了,B的版本依然没有更新;而且A@v1.3与B@v3.1 不相互支持了,此时我们在项目中 进行 go mod tidy的时候,就会把最A的新的版本down下来,项目就会报错;我们需要解决的问题就是,在使用go mod 的时候,指定在我们所需要的版本,不让他们随意更新我们进行 go mod init
2022-05-12 10:09:12
7801
原创 go 字符串的高效拼接
我们都知道 + 链接但是不高效func BuildString(pieces ...string) string { var strBuf bytes.Buffer for _, piece := range pieces { strBuf.WriteString(piece) } return strBuf.String()}试试这个方法
2022-05-11 14:08:12
196
转载 Go map的key,为什么是无序的?
生命不息,战斗不止兄弟们干了~!!奥利给 ~!!map 在扩容后,会发生 key 的搬迁,原来落在同一个 bucket 中的 key,搬迁后,有些 key 就要远走高飞了(bucket 序号加上了 2^B)。而遍历的过程,就是按顺序遍历 bucket,同时按顺序遍历 bucket 中的 key。搬迁后,key 的位置发生了重大的变化,有些 key 飞上高枝,有些 key 则原地不动。这样,遍历 map 的结果就不可能按原来的顺序了。当然,如果我就一个 hard code 的 map,我也不会向 ma
2022-05-05 09:58:00
489
原创 go 数组、切片、for range 的知识点
让我们直接上代码1func main() { var a = [5]int{1, 2, 3, 4, 5} var r [5]int for i, v := range a { if i == 0 { a[1] = 12 a[2] = 13 } r[i] = v } fmt.Println("r = ", r) fmt.Println("a = ", a)}问: 输出是什么??涉及到的知识点:for range 循环 会拷贝数组与切片之间的联系
2022-04-26 13:48:49
140
原创 Go defer,recover;的问题
今天遇到一个问题,记录一下,直接上代码package mainimport "fmt"func f(n int) (r int) { defer func() { r += n recover() }() var f func() defer f() f = func() { r += 2 } return n + 1}func main() { fmt.Println(f(3))}提问: 输出多少??
2022-04-25 10:49:26
307
原创 TCP链接,为什么要三次握手?
昨天面试,面试官问:为什么TCP建立连接时需要第三次握手讲真的,我不知道,我真的不知道,然后就有了这篇文章,简单记载一下简单随笔,不喜勿喷Tcp的定义以及如何连接的我在这就不记了直接上为什么?原因一:防止重复链接防止旧的重复链接引起链接混乱比如:一个网络很乱的环境,如果只有两次握手,那分不清楚这次的请求是正常的请求,还是由于网络环境问题而导致的过期请求,如果是新的请求还可以,但是如果是旧的链接发送的超时链接请求呢?原因二:同步初始化序列化防止数据包重复发送,以及确定数据包接受时的顺序
2022-04-12 10:03:30
3529
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人