go
文章平均质量分 82
zhangshen023
github.com/zhangshen023
展开
-
5分钟爽文:如何使用用gitlab作为go的依赖仓库
一、前言本来goproxy.cn是很好用的,但是公司目前只能使用goproxy.baidu.com,这个大部分用的时候都没有问题,但是发现偶尔有几个仓库死活拉不下来,但是换成goproxy.cn确实实在在能拉下来。所以想着为什么不搭建一个公司自己的goproxy呢?在解决这个问题的过程当中,却衍生出了另外一个想法:为什么不用公司自己的gitlab作为我们自己开发的包的仓库呢?本来以为这是个比较麻烦的工作,最后发现还挺简单的,该文就是用来记录整个过程。二、内容准备gitlab环境docker运行g原创 2021-07-07 23:10:50 · 1932 阅读 · 1 评论 -
了解一下Go中的“sb“代码?
一、前言相信很多java程序员都背过或者用过StringBuilder或者StringBuffer这种sb代码。最近工作需要查看Helm的源码的时候,注意到一个特别使用的字符串连接的方法strings.Builder,咋一看特别像java的StringBuilder,所以研究了下它,以及了解了下其他连接字符串的方法,结果发现确实strings.Builder的效果显著。二、内容1.首先我放出我了解的几个方法,并给出在我本地电脑跑benchmark的效果,点击查看代码:①.传统的+号连接func原创 2021-06-22 22:47:43 · 1961 阅读 · 0 评论 -
Go名库欣赏-uitable:终端数据表格展示工具
一、前言最近发现go用作一个运维工具是真的很好用,我觉得比python好用多了,python的依赖太麻烦了,而go作为运维工具可以直接打包成二进制包,可移植性极好,而且go天生对linux亲和性极强。像k8s的一个强大的运维命令-kubectl,打印的数据都是以表格的形式展示,表达能力很强,像实现这种终端表格展示有一个好用的工具-uitable二、内容这是我用kubectl get pods打印的一个终端界面:NAME READY STATUS RESTARTS AGE.原创 2021-05-18 08:24:04 · 1123 阅读 · 0 评论 -
怒喷k8s:竟然还要这么才能正确找到statefulset的pods
一、前言今天调试分页查询代码的时候遇到一个奇葩的问题,该问题后来排查下来跟lombok的使用有关。我们在使用mybatis或者mybatis-plus的时候一般会定义一个类对应表的每个字段,一个成熟的java程序员喜欢使用lombok把代码简洁点。这是大前提,我直接说结论吧:实体类最好都加上@Data,@AllArgsConstructor,@NoArgsConstructor才能避免我现在遇到的问题二、我的问题我的表:create table unimall.industry_output_v.原创 2021-01-04 20:49:39 · 626 阅读 · 1 评论 -
json:你或许还不知道的使用的坑(三)续
一、前言其实本篇应该写的是json的反序列化,所以花了几个晚上看了下该部分源码,每次看都想睡觉。为什么呢?因为确实是太无聊了,我打赌这是我看过go源码中最无聊的逻辑,全篇都是一些状态的切换,要么是 if ... else ...,要么就是switch ... case ... case ...,头大。我也尝试画过流程图,但是这么多状态的切换,也不知道是什么力量支撑我画了2天时间,最后我放弃了-画出来没有丝毫意义。所以本篇我就源码层面顺着json:你或许还不知道的使用的坑(一)续写下反序列化可能会遇到的一.原创 2020-12-27 13:58:35 · 1357 阅读 · 1 评论 -
json:源码解密序列化(二)
文章目录前言一、获取编码器方法二、自定义序列化:TextMarshaler三、编码html标签四、数字如何序列化成字符串:{"age":18} => {"age":"18"}四、匿名结构体的花花肠子1.加了json的tag的匿名结构体和没加tag的匿名结构体2. "-"和"-,"3.2个嵌套的匿名结构体有相同的字段4.匿名结构体的字段和匿名结构体所在结构体的字段相同五、map的序列化支持的key类型六、循环的结构体会报错七、最后说明下一些不被支持的结构体总结前言上一篇博客《json:你或许还不知道原创 2020-12-23 10:40:32 · 433 阅读 · 1 评论 -
json:你或许还不知道的使用的坑(一)
文章目录前言一、自定义序列化:MarshalJSON二、自定义序列化:TextMarshaler三、编码html标签总结前言平时工作当中经常使用json的序列化或者反序列,但是偶尔也会发现你定义的结构体使用json序列化或者反序列化的时候不是你期望的结果,我也经常遇到这种,所以我通过读源码之后总结了一些可能让人诧异的操作,希望能规避一些错误场景,而且也会有源码解释的哦。一、自定义序列化:MarshalJSON下面代码你觉得结果是多少呢?{"MarshalJSON":"hit func Mars原创 2020-12-13 21:47:31 · 1875 阅读 · 1 评论 -
一览Kubernetes 1.20:到底更新了啥
作者:Kubernetes 1.20 发布团队我们很高心宣布kubernetes 1.20版本发布了,这是2020年第3个版本也是最后一个版本!该版本包括42个功能增强:11个功能已经能稳定使用了,15个功能还是beta阶段,16个功能即将进入alpha阶段。1.20版本的发布周期已经回到以前11周的正常发布周期。这是该段时间中最密集的发布之一:Kubernetes 创新周期仍在呈上升趋势。此版本有比稳定功能更多的 alpha功能,这表明在云原生生态系统中还有许多需要探索的地方。主要主题卷快照操作翻译 2020-12-09 23:54:05 · 2101 阅读 · 1 评论 -
啥?Goland支持泛型了?
事情出因一大早上被一篇公众号的推文震惊了,Goland竟然支持go的泛型了。据我所知:Go的泛型不是还在设计草图吗?最乐观估计也要2021年8月份。你说Go语言现在都没开发好泛型,你支持这个特性有什么用呢?带着好奇心点开推文,没发现对泛型的说明,只看到一个Goland对泛型的使用的说明链接: https://blog.jetbrains.com/go/2020/11/24/experimenting-with-go-type-parameters-generics-in-goland/,心里怪痒原创 2020-12-05 13:55:15 · 2136 阅读 · 0 评论 -
go基础之map-迭代(四)
go基础之map-迭代(二)写在之前hiter结构体当前迭代的桶为空(刚开始迭代)迭代下个k/v正常情况溢出情况扩容情况的迭代总结写在之前在文章《go基础之map-写在前面(一)》的示例代码for k, v := range m3 { fmt.Println(k, v)}就是go的map的迭代方法,查看该代码的字节码,发现它调用了底层runtime.mapiterinit方法。本篇会详细分析map的迭代方法。如果想详细查看源码的注释,可以查看我的GitHub,欢迎批评指正。我的打算是把一些常原创 2020-12-03 00:32:13 · 1076 阅读 · 0 评论 -
go基础之map-删除(三)
go基础之map-删除(三)重点详细解析go的map对应的结构体hmapbucket的结构体bmapmap的整体结构总结重点在上篇文章《go基础之map-增和改(二)》已经非常详细的描述了定位key所在的桶以及它所在桶的位置,如果对上篇有所了解之后,该偏博客理解起来就会非常容易。总的来说map的删除主要做了2件事:定位key所在的位置,并且删除key,清除value的内存数据;尝试标记该key所在桶里面的元素为emptyRest,如果该桶处在逸出桶,那么就尝试向前遍历桶的元素为emptyRest。原创 2020-12-02 21:24:35 · 1279 阅读 · 2 评论 -
go基础之map-增和改(二)
go基础之map-增和改(二)写在之前环境说明makemap_small和makemap的区别总结写在之前在上篇文章《go基础之map-写在前面(一)》介绍了map的数据结构,本篇会详细介绍map的增和改的代码实现,由于增和改的实现基本上差不多,所以就纳到一起分析了。如果想详细查看源码的注释,可以查看我的GitHub,欢迎批评指正。我的打算是把一些常用的数据结构都分析一遍,如果有志同道合的人,可以联系我。环境说明我的具体调试环境在《go基础之map-写在前面(一)》](https://blog.cs原创 2020-11-29 11:49:18 · 5060 阅读 · 4 评论 -
go基础之map-写在前面(一)
go基础之map-写在前面(一)为什么分析map我的环境功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入为什么分析map在计算机编程语言当中,用的最多的数据结构估计就是map。map以他近乎o(1)的查找效率和修改效率让他在大多原创 2020-11-25 16:16:16 · 1860 阅读 · 6 评论