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 深入讲解Go语言中函数new与make的使用和区别 大家都知道Go语言中的函数new与函数make一直是新手比较容易混淆的东西,看着相似,但其实不同,不过解释两者之间的不同也非常容易,下面这篇文章主要给大家介绍了关于Go语言中函数new与make区别的相关资料,需要的朋友可以参考下。 继续阅读 >
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 带你重新认识字符串、字节、rune和字符 HOT 现在回答开始时提出的问题:字符串是由字节构建的,因此对它们进行索引将生成字节,而不是字符。字符串甚至可能不包含字符。实际上,“字符” 的定义是模棱两可的,试图通过定义字符串是由字符组成这种说法来解决歧义是错误的。 关于 Unicode,UTF-8 和多语言文本处理还有很多话要说,但是它可以等待下一篇文章。现在,我们希望你对 Go 字符串的行为有更好的了解,尽管它们可能包含任意字节,但 UTF-8 是其设计的核心部分。 继续阅读 >
202003-03 整洁架构(Clean Architecture)的Go微服务: 设计原则 HOT 最近写了一个 Go 微服务应用程序,这个程序的设计来自三个灵感: 清晰架构"Clean Architecture"¹ and SOLID (面向对象设计)² 设计 原则³ Spring的容器技术(Spring’s application context)⁴ Go的简洁设计⁵ 特别是 Go的面向对象的设计⁶ 继续阅读 >
202003-03 IM系统的前世今生—2小时用Go快速搭建高性能、可拓展的IM系统 HOT IM系统是一个时代,从QQ、微信到现在的人工智能,都广泛应用了即时通信,围绕即时通信,又可以做更多产品布局。笔者写本文的目的就是想要帮助更多人了解IM,帮助一些开发者快速的搭建一个应用,燃起大家学习网络编程知识的兴趣,希望的读者能有所收获,能将IM系统应用到更多的产品布局中。 继续阅读 >
202003-02 编辑器 VS Code 如何快速查看 Go 接口? HOT 使用 vscode 阅读 Go 项目源码时,有个不太方便的地方,就是跟踪 interface 的实现。vscode 只能追到 interface 定义的地方,而无法定位到其具体的实现。 继续阅读 >
202003-02 整洁架构(Clean Architecture)的Go微服务: 程序容器(Application Container) HOT 整洁架构(Clean Architecture)的Go微服务: 程序容器(Application Container) 继续阅读 >
202003-02 基于Go和Gin的环境配置方法 为大家分享一篇基于Go和Gin的环境配置方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 1.官方下载Go版本,安装相应平台的程序。 继续阅读 >
202002-29 Go控制并发数量的几种方式 因为go语言层面支持并发,所以面试中经常会问到并发的问题,比如说控制go并发数量的方式有哪些? 下面是我个人整理的两个例子,如果有不对的地方请轻喷。 继续阅读 >
202002-29 Golang六款优秀Web框架对比 HOT Golang是一门快速增长的语言,专为构建简单、快速且可靠的软件而设计。它提供的net/http库对于HTTP协议实现非常好,基于此再构造框架会更容易,因此生态中出现了很多框架。本文将从流行度、社区支持及内建功能等角度对六款知名Go语言Web框架做对比。 继续阅读 >
202002-28 Go 每日一库之 message-bus 在一个涉及多模块交互的系统中,如果模块的交互需要手动去调用对方的方法,那么代码的耦合度就太高了。所以产生了异步消息通信。实际上,各种各样的消息队列都是基于异步消息的。不过它们大部分都有着非常复杂的设计,很多被设计成一个独立的软件来使用。今天我们介绍一个非常小巧的异步消息通信库[message-bus](https://github.com/vardius/me...,它只能在一个进程中使用。源代码只有一个文件,我们也简单看一下实现。 继续阅读 >
202002-28 Go 为什么这么“快”? HOT 并发模型包含 IO 多路复用、多进程以及多线程,这几种模型都各有优劣,现代复杂的高并发架构大多是几种模型协同使用,不同场景应用不同模型,扬长避短,发挥服务器的最大性能。 继续阅读 >