深圳幻海软件技术有限公司 欢迎您!

  • APIServer源码分析之路由注册

    前面我们对KubeAPIServer的入口点和go-restful有一个基础了解后,我们就可以开始来了解下 APIExtensionServer 是如何实例化的了。APIExtensionServerAPIExtensionServer 的创建流程大致包含以下几个步骤:

  • Containerd深度剖析-CRI篇

    本文经DCOS(公众号ID:indagate)授权转载,转载请联系出处。撰文 |段全锋编辑 | zouyee段全锋:软件工程师,熟悉K8s架构、精通Runtime底层技术细节等。目前我司现网的K8s集群的运行时已经完成从docker到Containerd的切换,有小伙伴

  • 面试官:Net/Http库知道吗?能说说优缺点吗?

    前言哈喽,大家后,我是asong;这几天看了一下Go语言标准库net/http的源码,所以就来分享一下我的学习心得;为什么会突然想看http标准库呢?因为在面试的时候面试官问我你知道Go语言的net/http库吗?他有什么有缺点吗?因为我没有看过这部分源码,所以一首凉凉送给我;废话不多说,接下来请跟

  • Go 语言为什么建议定义零值可用的结构体?

    ​1.介绍在Go语言中,通过声明或者通过调用new为变量分配存储空间,或者通过复合字面量或调用make创建新值时。如果未提供显式初始化,则会为变量或值指定默认值,此类变量或值的每个元素都设置为其类型的零值。2.Golang类型的零值在Go语言中,原生类型都有默认值,即类型的零值。布尔型的零值:fal

  • IO Pipeline 读 Minio 源码

    IOPipeline不算什么新鲜事儿,通过 io.Reader io.Writer​ 等接口,把多个流处理连接一起,只需返回 Reader​,直到调用 Read 函数时才读数据,高效节约内存。类比Spark流处理,transformatio

  • 对 Go2 错误处理提案的批判

    复习语法在2018年8月,官方正式公布了 Go2DraftDesigns[2],其中包含泛型和错误处理机制改进的初步草案:Go2DraftDesigns下面是关键的Go2错误处理新语法。错误处理(ErrorHandling)第一个要解决的问题就是大量 iferr!=nil&nbs

  • 不想Go 错误处理太臃肿,可以参考这个代码设计

    最近写了个程序,因为是急活(貌似没有不急的...),所以这个程序又是我东拷一段,西粘一块拼出来的。代码写完了后,感觉这代码屎一样,都快把自己看哭了。真的是在心里边写别骂,先是骂以前做这个项目的人蠢,项目搞的跟屎一样,后来代码跑起来了,顺利交工后,变成了骂我自己蠢,这么写又不是不能用!又不是不能用不过

  • 这个新 Go 错误处理提案,能解决问题不?

    大家好,我是煎鱼。Go语言的一大特色就是它的错误机制,因此基本上所有的错误处理提案或讨论我都会有所查看和学习,开拓不同的思考视野和解决方法。今天分享的是 @CristoGarcía[1] 所提出的提案《SimpleErrorHandlingforGo2[2]》,略有修改,和煎鱼一

  • Go 语言怎么优化重复的 if err != nil 样板代码?

    1.介绍Go语言的错误处理在社区中一直被部分Go开发者诟病,其中重复的 iferr!=nil 样板代码是最令Go开发者难以忍受的,严重降低代码的可读性。针对这个社区争论非常激烈的话题,笔者介绍两种优化重复的 iferr!=nil 样板代码的方式。2.封装错误检

  • Golang 常见设计模式之单例模式

    之前我们已经看过了Golang常见设计模式中的装饰和选项模式,今天要看的是Golang设计模式里最简单的单例模式。单例模式的作用是确保无论对象被实例化多少次,全局都只有一个实例存在。根据这一特性,我们可以将其应用到全局唯一性配置、数据库连接对象、文件访问对象等。Go语言实现单例模式的方法有很多种,下

  • Go 错误处理新思路?用左侧函数和表达式

    大家好,我是煎鱼。错误处理一直是Go一个很有争议的地方,大家在该类提案上贡献了各种各样的想法。在五一假期期间,我也发现了一个有趣的技术提案,那就是:左侧函数;还有Go+的新思路。今天就由煎鱼带大家一起来看看。Go新提案:左侧函数在现有Go1的错误处理机制下,我们一般处理错误都需要写大量的iferr!

  • 为什么 Go 用起来会难受?这六个坑你知道吗

    在做新的应用选型时,我们会进行应用编程语言的选择,这时会纠结Java、PHP、Go...各种,会思考有没有致命的问题,不能用?可以明确的是,Go没有非常致命的问题,否则你我他都不会在这里相遇,也不会大火。难受的点,倒是有不少,今天就由煎鱼和大家一起来看看。难受的点泛型在Go1.18以前,在所有社交媒

  • 在 AlertManager 报警通知中展示监控图表

    之前用Python实现了一个非常简陋的AlertManager的钉钉接收器,一直想在钉钉的消息通知中将当前报警图表也展示出来,这样显然对用户来说更加友好。之前想的思路是通过爬虫的方式去Prometheus页面将Graph图形截图保存下来,该方式理论上确实是可行的,但是这种方式不稳定因素较多,而且会占

  • Golang transaction 事务使用的正确姿势

    本文中作者展示了 golang 事务的三种写法。第一种写法这种写法非常朴实,程序流程也非常明确,但是事务处理与程序流程嵌入太深,容易遗漏,造成严重的问题复制func DoSomething() (err error) { &nbs

  • 写点规范的 Go 代码,你学会了吗?

    本文转载自微信公众号「Golang技术分享」,作者机器铃砍菜刀。转载本文请联系Golang技术分享公众号。在公司进行代码开发,一般都会制定一套编程规范。良好的代码规范可以改善项目可读性,提高团队开发的合作效率。具体在Go语言中,我们可以借鉴Go官方的GoCodeReviewComments、Uber

  • 如何在 Golang 代码里面解析容器镜像

    一背景容器镜像在我们日常的开发工作中占据着极其重要的位置。通常情况下我们是将应用程序打包到容器镜像并上传到镜像仓库中,在生产环境将其拉取下来。然后用docker/containerd等容器运行时将镜像启动,开始执行应用。但是对于一些运维平台来说,对于一个镜像制品本身的扫描和分析才是真正的关注点。本文

  • Go 提问:值为 Nil 能调用函数吗?

    本文转载自微信公众号「脑子进煎鱼了」,作者陈煎鱼。转载本文请联系脑子进煎鱼了公众号。大家好,我是煎鱼。最近在我们Go的技术交流群里,有一个小伙伴提了一个程序方面的问题,还挺有意思的,分享给大家。示例示例程序如下:复制type T struct{}  func&

  • 一文弄懂:【Go】内存中的结构体

    结构体所谓结构体,实际上就是由各种类型的数据组合而成的一种复合数据类型.在数据存储上来讲,结构体和数组没有太大的区别.只不过结构体的各个字段(元素)类型可以相同,也可以不同,所以只能通过字段的相对偏移量进行访问.而数组的各个元素类型相同,可以通过索引快速访问,实际其本质上也是通过相对偏移量计算地址进

  • 爱上 Go 语言的10个理由

     这个月Go语言就将迎来它的10岁生日了,于是我们特地列出了10条让你可以开心使用Go语言的理由。  Map集合/映射默认使用0值在Go中使用映射时,即使你尚未为特定的键插入任何值,也可以查询该键,并且它所对应的值为0还不是nil,除非存储的是指针。因此如果你有这样一个

推荐阅读