
Golang
文章平均质量分 81
EricLi404
这个作者很懒,什么都没留下…
展开
-
Uber 《Go语言编程规范》学习笔记(二)
规范包名当命名包时,请按下面规则选择一个名称:全部小写。没有大写或下划线。大多数使用命名导入的情况下,不需要重命名。简短而简洁。适当使用缩写。不用复数。例如net/url,而不是net/urls。不要用“common”,“util”,“shared”或“lib”。这些是不好的,信息量不足的名称。另请参阅 Package Names 和 Go 包样式指南.对于未导出的顶层常量和变量,使用_作为前缀在未导出的顶级vars和consts, 前面加上前缀_,以使它们在使用时明确表示它们是全局原创 2021-05-13 11:31:36 · 313 阅读 · 0 评论 -
Uber 《Go语言编程规范》学习笔记(一)
Interface 合理性验证在编译时验证接口的符合性。这包括:将实现特定接口的导出类型作为接口API 的一部分进行检查实现同一接口的(导出和非导出)类型属于实现类型的集合任何违反接口合理性检查的场景,都会终止编译,并通知给用户原创 2021-04-15 21:18:07 · 240 阅读 · 0 评论 -
Thrift 学习笔记(with Go、Java)
Thrift 架构(Transport 、Protocol、Processor、Server)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DHW6Sjez-1618232943670)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/21b213ed-d457-4d9a-ae43-cd74093e9d38/Untitled.png)]Thrift软件栈分层从下向上分别为:传输层(Transpor原创 2021-04-12 21:10:05 · 340 阅读 · 0 评论 -
结合内存分配机制分析Go切片扩容机制
0x00 引子先来看一段代码: a := make([]int, 0, 2) a = append(a, 1, 2) fmt.Printf("a:%v, len:%d, cap:%d\n", a, len(a), cap(a)) // ① a = append(a, 3, 4, 5) fmt.Printf("a:%v, len:%d, cap:%d\n", a, len(a), cap(a)) // ② // 输出结果为: // ① a:[1 2], len:2, cap:2 //原创 2021-03-24 00:42:12 · 392 阅读 · 0 评论 -
Docker的核心组成
一、Docker Engine虽然我们说 Docker Engine 是一款软件,但实实在在去深究的话,它其实算是由多个独立软件所组成的软件包。在这些程序中,最核心的就是docker daemon和docker CLI了。其中docker daemon有容器管理、应用编排、镜像分发等功能,docker daemon 通常以服务的形式运行以便静默的提供这些功能,所以我们也通常称之为 Docker 服务。同时,docker daemon 对外暴露了一套 RESTful API,并提...原创 2020-09-03 15:08:35 · 1258 阅读 · 0 评论 -
Go安装使用 TensorFlow 2.2.0 or 2.3.0 CPU 版本
Go安装使用 TensorFlow 2.2.0 or 2.3.0 CPU 版本时,无法直接使用go get 安装,还需要一系列编译的操作,本文详细记录了安装的全过程。原创 2020-09-01 16:58:58 · 1100 阅读 · 3 评论 -
Go语言中的一等公民容器类型:Array、Slice和Map
Go语言中的一等公民容器类型:Array、Slice和Map在严格意义上,Go中有三种一等公民容器类型:Array、Slice和Map。 有些情况下,String和Channel也被认为是容器,但因其使用方式或原理与另外三种容器存在区别,本文暂不讨论。本文默认读者具有一定的编程基础,因此本文并未详细的梳理全部相关知识点,而是选择了重点或者易错点的内容进行分析。文章目录Go语言中的一等公民容器...原创 2020-04-06 09:05:15 · 378 阅读 · 0 评论 -
Golang swich 语句排坑
Golang swich 语句排坑Golang swich 语句排坑1. case语句能否重复2. swich语句的默认值和默认类型3. defer语句可以修改外层函数的返回结果Golang swich 语句排坑1. case语句能否重复package mainfunc main() { switch 123 { case 123: case 123: // error: dupl...原创 2020-04-04 18:15:17 · 557 阅读 · 0 评论 -
GO 流量限制之令牌桶的实现
0x00 流量限制的手段流量限制的手段有很多,最常见的:漏桶、令牌桶两种:漏桶是指我们有一个一直装满了水的桶,每过固定的一段时间即向外漏一滴水。如果你接到了这滴水,那么你就可以继续服务请求,如果没有接到,那么就需要等待下一滴水。令牌桶则是指匀速向桶中添加令牌,服务请求时需要从桶中获取令牌,令牌的数目可以按照需要消耗的资源进行相应的调整。如果没有令牌,可以选择等待,或者放弃。这两种方法看...原创 2020-03-18 19:08:33 · 971 阅读 · 0 评论 -
字符串按相似度分组
相关代码已经上传GitHub : https://github.com/EricLi404/go-utils0x00 概述在做在做反垃圾账号业务的时候,检测发现有几十名用户都在某个IP上有过行为打点。# 原始数据꧁❥????➦SAMI????MMS➣????❥꧂꧁❥????➦Ⓜ️AHI????MMS➣????❥꧂..jgcch7b????V????O????I????2kc7fd7????V????O????I????꧁❥????➦VIDYA????MMS➣????❥꧂RcR...原创 2019-09-06 00:07:48 · 1675 阅读 · 0 评论 -
golang map并发读写问题踩坑记录 `concurrent map read and map write`
PHP和Python写习惯了,压根没想过还会有并发读写的问题。。。场景处理kafka队列中的针对同一id的两种信息:“wait”和“done”,每次消费kafka信息打入map,每10分钟遍历一次两个map:如果同一id同时有“wait”和“done”两种消息,则代表任务完成,将这两条记录删除;如果“wait”消息发出后20分钟内没有收到“done”信息,则触发降级机制,向队列中打入...原创 2019-09-01 10:11:44 · 2667 阅读 · 0 评论