Go 和 Java 对比学习:单例模式
虽然 Go 语言并非完全的面向对象语言,只提供了部分面向对象的特性,但一些设计模式还是可以使用的。这个系列尝试讲解在 Go 中使用设计模式,同时给出 Java 对应的版本,进行对比学习。
Go中对栈中函数进行内联
上一篇文章中我论述了叶子内联是怎样让 Go 编译器减少函数调用的开销的,以及延伸出了跨函数边界的优化的机会。本文中,我要论述内联的限制以及叶子内联与栈中内联的对比。
如何用GVM管理Go项目
有几种管理 Go 包的方式,包括内置于 Go 中的 Go 1.11 的 Modules。我发现 GVM 简单直观,即使我不用它来管理包,我还是会用它来管理 Go 不同的版本的。
WebAssembly和Go:对未来的观望
当听到 WebAssembly(wasm) 最近支持 Go 语言时,我知道实验的时机已经成熟,并且迫切期待尝试。在尝试之前我读了些好文章,而这篇文章将记录我的一些体验。
基于Go技术栈的微服务构建
本文的素材来源于我们在开发中的一些最佳实践案例,从开发、监控、日志等角度介绍了一些我们基于Go技术栈的微服务构建经验。
设计Go API的管道使用原则
管道是并发安全的队列,用于在Go的轻量级线程(Go协程)之间安全地传递消息。总的来讲,这些原语是Go语言中最为称道的特色功能之一。这种消息传递范式使得开发者可以以易于理解的语义和控制流来协调管理多线程并发任务,而这胜过使用回调函数或者共享内存。
Go语言的高级并发模式
在去年的Google I/O大会上,Go语言开发团队成员Rob Pike介绍了Go的并发模式。如今该语言已经到达了1.1版本,性能和安全性较之以前更加完善。在本月举行的I/O 2013上,团队成员Sameer Ajmani带来了更高级的Go语言并发模式演讲,以帮助开发者更深入地了解Go语言的并发编程问题。