202003-10 Go 如何防止缓存穿透 HOT 事实上不止于防止 缓存穿透, do-once-while-concurrent 更准确的定位是 重复资源过滤 ,,在某讲座业务中,使用 do-once-while-concurrent 来避免同一时刻同一用户id 重复解析 、列表页 重复检索 、排序 等,减少了资源竞争,提高了整体的qps和稳定性。 继续阅读 >
202003-10 一文掌握 Go 语言 Select 的四大用法 HOT 本文带大家认识 Go 语言的 Select 用法,相信大家对于 switch 并不陌生,然而 select 跟 switch 有个共同特性就是都通过 case 的方式来处理,但是 select 跟 switch 处理的事情完全不同,也完全不相容。来看看 switch 有什么特性: 各种类型及型别操作,接口 interface{} 型别判断 variable.(type),重点是会依照 case 顺序依序执行。 继续阅读 >
202003-10 图解kubernetes容器探活机制核心实现 HOT 在k8s中通过kubelet拉起一个容器之后,用户可以指定探活的方式用于实现容器的健康性检查,目前支持TCP、Http和命令三种方式,今天介绍其整个探活模块的实现, 了解其周期性探测、计数器、延迟等设计的具体实现 继续阅读 >
202003-09 一文看懂 K8s 日志系统设计和实践 HOT 上一篇文章《6 个 K8s 日志系统建设中的典型问题,你遇到过几个?》中我们介绍了为什么需要一个日志系统、为什么云原生下的日志系统如此重要以及云原生背景下日志系统的建设难点,相信 DevOps、SRE、运维等同学看了之后深有体会。本篇文章单刀直入,会直接跟大家分享一下如何在云原生的场景下搭建一个灵活、功能强大、可靠、可扩容的日志系统。 继续阅读 >
202003-09 Go Modules 处理私有 Git Repository 的流程 HOT Golang[1] 在 1.14[2] 正式說明可以將 Go Modules[3] 用在正式環境上了,還沒換上 Go Modules 的團隊,現在可以開始轉換了,轉換方式也相當容易啦,只要在原本的專案底下執行底下指令,就可以無痛轉移 继续阅读 >
202003-09 深度解密Go语言之unsafe HOT uintptr 可以和 unsafe.Pointer 进行相互转换,uintptr 可以进行数学运算。这样,通过 uintptr 和 unsafe.Pointer 的结合就解决了 Go 指针不能进行数学运算的限制。 通过 unsafe 相关函数,可以获取结构体私有成员的地址,进而对其做进一步的读写操作,突破 Go 的类型安全限制。关于 unsafe 包,我们更多关注它的用法。 继续阅读 >
202003-09 换个角度看:Go里的unsafe包是什么? HOT 总结下, unsafe包是非常有意思并且很强大的,但是使用它时候一定要多加小心。如果需要更新包的特性,可以参考这里的升级指南 继续阅读 >
202003-07 又一个Go绘图和可视化库:plot HOT 前两天介绍了一款 Go 语言绘图工具:go-chart。今天发现了另外一款类似的工具,但更强大。不过还没发布稳定版。 项目地址:https://github.com/gonum/plot,Star 数 1.4k 继续阅读 >
202003-07 Go:大切片一定比小切片代价大吗? HOT 特别是,当程序员听到拷贝很昂贵时,他们开始在各处看到它们,尤其是当他们得知在 Go 中每个赋值都是拷贝时。 考虑下面的代码;x 比 y 大三个数量级,将 x 分配给 a 比将 y 分配给 b 更昂贵吗? 继续阅读 >
202003-07 TIOBE 发布 2020 年 3 月编程语言排行榜,Go 语言的表现令人惊叹! HOT 值得注意的是,TIOBE指数并不代表语言的好坏,开发者可以使用该榜单检查自身的编程技能是否需要更新,或者在开始构建新软件时对某一语言做出选择。 继续阅读 >
202003-06 Golang WaitGroup实现原理和源码解析 HOT 方便的并发,是Golang的一大特色优势,而使用并发,对sync包的WaitGroup不会陌生。WaitGroup主要用来做Golang并发实例即Goroutine的等待,当使用go启动多个并发程序,通过waitgroup可以等待所有go程序结束后再执行后面的代码逻辑 继续阅读 >
202003-06 6 个 K8s 日志系统建设中的典型问题,你遇到过几个? HOT 随着 K8s 不断更新迭代,使用 K8s 日志系统建设的开发者,逐渐遇到了各种复杂的问题和挑战。本篇文章中,作者结合自己多年经验,分析 K8s 日志系统建设难点,期待为读者提供有益参考。 继续阅读 >
202003-06 Golang内存分配 HOT 首先我们来介绍一下span的概念,span是golang内存管理的基本单位,每个span管理指定规格(以page为单位)的内存块,内存池分配出不同规格的内存块就是通过span体现出来的,应用程序创建对象就是通过找到对应规格的span来存储的,下面我们看一下mspan的结构。 继续阅读 >
202003-06 超赞的 Go 语言 INI 文件操作 HOT 如果你使用 INI 作为系统的配置文件,那么一定会使用这个库吧。没错,它就是号称地表 最强大、最方便 和 最流行 的 Go 语言 INI 文件操作库:https://github.com/go-ini/ini。 继续阅读 >
202003-05 基于Go的马蜂窝旅游网分布式IM系统技术实践 HOT 从商品复杂性来看,一个旅游商品可能会包括用户在未来一段时间的衣、食、住、行等方方面面。从消费金额来看,往往单次消费额度较大。对目的地的陌生、在行程中可能的问题,这些因素使用户在购买前、中、后都存在和商家沟通的强烈需求。可以说,一个好用的 IM 可以在一定程度上对企业电商业务的 GMV 起到促进作用。 继续阅读 >
202003-05 GoAdmin v1.2.4 版本发布 HOT GoAdmin是一款基于golang的数据可视化管理后台搭建框架。致力于简化saas,数据可视化系统搭建难度,提升golang开发效率,将高效率高性能的体验带给所有开发者。 继续阅读 >
202003-04 laravel框架数据库操作、查询构建器、Eloquent ORM操作 文章主要介绍了laravel框架数据库操作、查询构建器、Eloquent ORM操作,结合实例形式分析了laravel数据库连接、增删改查、排序及Eloquent ORM数据库操作等相关使用技巧,需要的朋友可以参考下 继续阅读 >
202003-04 深入讲解Go语言中函数new与make的使用和区别 大家都知道Go语言中的函数new与函数make一直是新手比较容易混淆的东西,看着相似,但其实不同,不过解释两者之间的不同也非常容易,下面这篇文章主要给大家介绍了关于Go语言中函数new与make区别的相关资料,需要的朋友可以参考下。 继续阅读 >
202003-04 Yii2 定制表单输入字段的标签和样式 文章主要介绍了 Yii2 定制表单输入字段的标签和样式,Yii2中对于表单和字段的支持组件为ActiveForm和ActiveField,有兴趣的可以了解一下。 继续阅读 >
202003-04 Go 官宣:新版 Protobuf API HOT 我们很高兴地宣布,用于 Google 的语言无关数据交换格式 protocol buffers[1] 的新版 Go API 发布了,这是一次重大的版本升级。 继续阅读 >
202003-04 图解kubernetes调度器framework核心数据结构· HOT Framework是kubernetes扩展的第二种实现,相比SchedulerExtender基于远程独立Service的扩展,Framework核心则实现了一种基于扩展点的本地化的规范流程管理机制 继续阅读 >
202003-04 go test 不为人知的一面 HOT Go 被用得最频繁的命令我想应该是go test。然而,这个命令一些有趣的细节和用法可能你还不知道哟。下面让我们从测试本身讲起。 继续阅读 >
202003-03 Go-项目结构和代码组织 做大量的输入,通过对比、借鉴,加上自己的经验,产出一个尽可能优的方案。 开源界优秀项目的结构示例 因为最新的 Go 版本已经使用 module 作为版本依赖,所以,所有项目的 vendor 我都忽略,建议直接使用 module 来管理依赖,而且较好的解决某些库国内访问不了的问题 继续阅读 >