如何使用 Go 语言重新思考可视化编程?

作者 | Ivan Daniluk译者 | 杨雷这是在 GopherCon Europe 2019(加那利群岛版)上发表的演讲的博客版,分享了可视化编程语言为什么失败的一些想法,并首次展示了 Go 在进行代码可视化方面的实践。直接深入到项目中之前,首先需要解释一下实现背后的思路。最初的工作方式就像写文本一样写代码,这种方式带来了几乎是生死攸关的挫败和沮丧。IDE vs 火炬 知道 代码编辑器和火炬之间有什么共同之处 吗?在过去,我们用自上而下、从左到右的方式阅读源代码文本,这和阅读自然语言的方式...阅读全文

51CTO博客 2021-04-20 15:45:19 mob604756ef1373

golang的数组和指针的问题,求解答

在学习golang数组和指针相关知识的时候,创建了一个新的长度为5数组。 并且输出查看了数组元素的指针,系统是64位的,查看后发现起始元素的指针为824634142416,第二个元素的指针为824634142424。这里我是在探究数组元素在内存中是连续的均匀的,可是我往后继续累加之后,发现输出了很奇怪的值。 想探究第6个值和第7个值是哪里来的? ![a.png](https://static.studygolang.com/210420/83690f079ad03...阅读全文

Go语言中文网 2021-04-20 15:40:27 txgu

使用 Go 构建 Kubernetes 应用

Kubernetes项目使用Go语言编写,对Go api原生支持非常便捷。本篇文章介绍了如何使用kubernetes client-go实践一个简单的与K8s交互过程。kubernetes 的Go Client项目(client-go)go client是k8s client中最古老的一个,具有很多特性。Client-go 没有使用Swagger生成器,它使用的是源于k8s项目中的源代码生成工具,这个工具的目的是要生成k8s风格的对象和序列化程序。该项目是一组包的集合,该包能够满足从REST风格...阅读全文

51CTO博客 2021-04-20 15:25:57 mb6066e504cce6f

一周 Go World 新鲜事[Asta 优选]

01 Google正式发布 TensorFlow Lite预览版 日前,谷歌正式发布 TensorFlow Lite 开发者预览版,这是针对移动和嵌入式设备的轻量级解决方案。 TensorFlow 可以在许多平台上运行,从机架上大量的服务器到小型的物联网设备,但近几年,随着大家使用的机器学习模型呈指数级增长,因此需要将训练模型的平台扩展到移动和嵌入式设备上。TensorFlow Lite 支持设备上机器学习模型的低时延推理。 TensorFlow Lite 是一种全新的设计,它支持以下功能: 轻...阅读全文

51CTO博客 2021-04-20 12:03:11 mob604756f0bbf4

Ketos 笔记 -- 记 Go Hackathon 2017

纯故事 (无技术细节,可略过)第一次参加 Hackathon,是被 Ace Tang 抓来背锅的。比赛前填表格敲定参赛项目和团队。Ace Tang 在阿里忙双 11,就由我列了一下,几乎全是日常生活中的小工具。一波 idea 筛选就是凭借 github trending 来的,docker 排第一,Ace Tang 也在负责 docker 开发,于是我们就决定写一个 docker build 在 CI 平台中的替代工具。参赛申请提交后,与组织人员短暂寒暄,掐指一算,三周技术调研及坑位填补时间。因...阅读全文

51CTO博客 2021-04-20 11:58:07 mob604756f0bbf4

一周 Go World 新鲜事[Asta 优选]

百万在线的美拍直播弹幕系统如何实现直播弹幕指直播间的用户,礼物,评论,点赞等消息,是直播间交互的重要手段。美拍直播弹幕系统从 2015 年 11 月到现在,经过了三个阶段的演进,目前能支撑百万用户同时在线,这期间的发展比较好地诠释了根据项目阶段进行平衡演进的过程。这三个阶段分别是快速上线,高可用保障体系建设,长连接演进。本文是作者对构建弹幕系统的经验总结。 在公众号中回复(非评论)关键词“ 弹幕系统 ”即可阅读原帖 gops - Go语言程序查看和诊断工具想必 Java 的开发者没有不知道或者没...阅读全文

51CTO博客 2021-04-20 11:53:26 mob604756f0bbf4

可视化学习Go并发编程

在杭州站 Gopher Meetup 上,来自网易的黄庆兵分享一个相对轻松的话题——《可视化学习Go并发编程》。以下是他的演讲实录。 Go 天生是为并发而生的东西。简单来说,我觉得并发可以看作一种程序的构造方式,如下图所示。 并行&并发 想了解并行和并发的区别,推荐看一下Rob Pike的分享(点击阅读原文即可跳转)。在这个视频里,他用形象的Gopher动图,讲解了Go并发的过程。 总结他的观点如下: 并发很强大 并发帮助实现并行,使并行(扩展等)变得容易 并发不是并行,并发重点是架构,并行重点...阅读全文

51CTO博客 2021-04-20 11:38:18 mob604756f0bbf4

Go使用grpc+http打造高性能微服务

大家可以发现,Go越来越流行,其一是目前云计算领域基本是使用Go作为底层开发语言;其二是随着区块链的火爆,引申出了其背后很多开源项目,很多都是使用Go语言进行开发;其三就是在微服务方面,Go也展示很大的优势性。那么微服务是什么,如何将其与Go做一个整合,来提升整体开发生产效率,下面会进行详细讲解。 什么是微服务 微服务的概念最早由 Martin Fowler 提出,在他的理论当中,微服务是一整套小的服务,其中每一个服务互相之间都是独立的,它们之间通过 lightweight 机制进行交互。 图 ...阅读全文

51CTO博客 2021-04-20 13:29:17 mob604756f0bbf4

用 Go STL 查询 DB 引发的内存泄露

本文字数:5295 字 精读时间:10 分钟 也可在 5 分钟内完成速读 问题起因这几天有一个 Go API service 经过定时监控发现占用的内存不断上涨,内存从初始的 70M 一直上升到超过 1G 直到吃光内存退出,基本上就可以断定是存在内存泄露的问题了,但是因为自带垃圾回收的语言出现内存泄露的情况较少,如果存在那一定是大问题,因此有了下文详细的排查过程,为日后处理此类问题积累经验。 分析排查goroutine泄露之前就有听说过一句名言:Go 中的内存泄露十有八九都是 goroutine...阅读全文

51CTO博客 2021-04-20 10:52:55 mob604756f0bbf4

理解 Go 1.13 中 sync.Pool 的设计与实现

本文字数:5688 字 精读时间:13 分钟 也可在 6 分钟内完成速读 Go 1.13 版本中有几个比较大的修改,其中之一是sync.Pool修改了部分实现,减小某些极端情况下的性能开销。文中内容来源于笔者读完 sync.Pool 源代码的思考和总结,内容以 Go 1.13 中的实现为准,少量内容涉及到 Go 1.13 之前,如有误区请读者多多指教。 概念在本文内容开始之前需要理解几个在 Go runtime 中的概念,以便于更好的理解sync.Pool中一些实现。 goroutine 抢占G...阅读全文

51CTO博客 2021-04-20 10:34:54 mob604756f0bbf4

Golang 笔记之深入浮点数

本文字数:5835 字 精读时间:13 分钟 也可6分钟内完成速读 作者郑建勋。51cto go语言与区块链高级讲师, kvb集团高级技术专家。github theWayToGolang作者,多年教育与金融行业从业经验。拥有丰富的高并发、分布式、微服务集群的实战经验。 引言 下面的一段简单程序 0.3 + 0.6 结果是什么? ![](https://s4.51cto.com/images/blog/202104/19/a61c367e52013e9622624a0667c0fc26.png?x...阅读全文

51CTO博客 2021-04-19 23:35:27 mob604756f0bbf4

【译文】Go 高级并发

本文字数:3033 字 精读时间:10 分钟 也可在 5 分钟内完成速读 原文地址: https://encore.dev/blog/advanced-go-concurrency 原文作者:André Eriksson 译文出处:https://encore.dev/blog 本文永久链接: https://github.com/gocn/translator/blob/master/2020/w1_advanced_go_concurrency.md 译者:咔叽咔叽 校对者:fivezh 如...阅读全文

51CTO博客 2021-04-19 23:56:22 mob604756f0bbf4

Go Module来了,企业私有代理你准备好了吗?

本文字数:1015 字 精读时间:5 分钟 也可在 3 分钟内完成速读 随着 go module 的不断普及,通常情况下,我们可以直接使用 goproxy.io 公共服务来解决海外依赖问题,但是有时候公司内部的仓库就很难办了,这些 git server 通常运行在企业内网环境下,开发人员既想能快速的下载海外依赖,又想能下载到公司内部的代码库。这时候可以在公司内部部署一个属于自己的 goproxy.io 服务来解决这个问题。还有哪些场景需要我们自己部署公司内部的 goproxy server 呢?...阅读全文

51CTO博客 2021-04-19 23:53:59 mob604756f0bbf4

[译]pkg.go.dev的未来规划

介绍在2019年,我们启动了go.dev,这是Go开发人员新的资源中心。 作为该站点的一部分,我们还启动了pkg.go.dev,它是有关Go软件包和模块的信息资源中心。像godoc.org一样 ,pkg.go.dev也提供Go文档功能。但是它懂go module,提供相关软件包以前版本的信息! 今年我们将在pkg.go.dev中添加更多功能,以帮助我们的用户更好地了解他们的依赖关系,并帮助他们围绕要导入的库做出更好的决策。 将godoc.org请求重定向到pkg.go.dev为了尽量避免混淆到底...阅读全文

51CTO博客 2021-04-19 23:49:26 mob604756f0bbf4

探探长链接项目的Go语言实践

长链接服务处于网络接入层,这个领域非常适合用Go语言发挥其多协程并行,异步IO特点。探探自长链接项目上线以后,对服务进行了多次优化:GC从5ms降到100微秒(Go版本均为1.9以上),主要Grpc接口调用延时p999从300ms下降到5ms。在业内大多把目光聚焦于单机连接数的时候,我们则更聚焦于服务的SLA。 张凯宏|探探高级技术专家 担任探探服务端高级技术专家。6年Go语言开发经验,曾用Go语言构建多个大型Web项目,其中涉及网络库、存储服务、长链接服务等。专注于Go语言实践、存储服务研发及...阅读全文

51CTO博客 2021-04-19 23:31:27 mob604756f0bbf4

许式伟:Go 语言有机会登顶,桌面侧亟待突破

写在前面 许式伟 这是 GVP 首位公布的超级大咖,这是一个所有中国 Gopher 无人不知的名字。无论是创建国内首批全面拥抱 Go 语言的七牛云,还是《 Go 语言编程》一书的编写,抑或是他独力发起并维护至今的 ECUG 社区,他的一切努力都在推动着 Go 语言的前进。 时至今日,他依然在坚持着。 Go 中国带着敬意和好奇采访了许式伟,传说中不善言谈的他在 Go 的问题上却格外健谈。关于语言、七牛、行业、社区、自己,这是一次真实而纯粹的交流。 关于语言 01 您的职业生涯尝试过C、Java、E...阅读全文

51CTO博客 2021-04-19 23:22:50 mob604756f0bbf4

基于 Go 的协同系统深度实践

导读 本文介绍的是基于网页端的操作协同,常见于教学、游戏等场景。由 TutorABC 架构师张新宇在Gopher Meetup 上海站上进行的演讲整理完成。 内容结构: 协同概念及应用 Go 服务端设计 主要技术点及解决方案 (编辑整理:李平平) 01 协同概念及应用 各位下午好,我是TutorABC音视频的架构师,主要是跟大家分享一下我们在TutorABC产品实践当中的心得体会。开始之前我跟大家交流一下什么是协同?这个是百度上面的说明,和传统意义的协同不一样,我今天演讲的是一种多人交互式的,在...阅读全文

51CTO博客 2021-04-19 23:21:20 mob604756f0bbf4

基于 Go 语言开发 Serverless 云原生应用

Golang 无疑是云原生领域开发的首选开发语言,继 Docker、Kubernetes 等大作之后Knative 又是一个基于 Go 语言的云原生范式。Knative 提供了一整套云原生应用的 Serverless 模型,使得我们可以方便的基于 Go 语言开发 Serverless 云原生应用。本文作者冬岛:阿里云技术专家 本文字数:5166字 精读时间:10分钟 也可在5分钟内完成速读 00 前言 大家好!我是阿里云容器服务团队的冬岛,2016 年阿里巴巴开始全面容器化,我负责双十一链路应用...阅读全文

51CTO博客 2021-04-19 23:18:53 mob604756f0bbf4

Go语言国际电子表格文档格式标准实践

在 Gopher Meetup 北京站上,阿里巴巴高级开发工程师、前百度 Go 语言编程委员会成员续日进行了主题为《Go语言国际电子表格文档格式标准实践》的演讲。 Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376, ISO/IEC 29500 国际电子表格文档格式标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的 XLSX 文档,可以应用于各类报表系统中,做为 2018 开源中国最有价值开源项目,...阅读全文

51CTO博客 2021-04-19 23:09:17 mob604756f0bbf4

go语言学习(五):通道的用法

go语言的作者Rob Pike认为,不要通过共享内存来实现通信,而应该通过通信来共享内存。多个goroutine之间可以通过通道来传递数据。通道是并发安全的,类似于一个FIFO的队列。go语言的通道定义需要使用make语句,如下,定义了一个存放3个int类型元素通道并向通道中输入了3个元素。同时用for循环取出。func main() { ch1 := make(chan int, 3) ch1 <- 2 ch1 <- 1 ch1 <- 3 close(ch1) for elem1 := ran...阅读全文

51CTO博客 2021-04-20 09:23:43 朱晋君