对比三款 Go Playground:你喜欢哪款?

曾几何时,语言的在线运行(Playground)似乎成了标配。确实,Playground 能够让我们可以快速试验一些想法。Go 语言在发布之初就提供了一个,这就是 https://play.golang.org。然而,由于众所周知的原因,我们访问不了。为了方便国内广大 gopher,我搞了一个国内镜像:https://play.studygolang.com,尽情使

GoUI:一个非常简单的 GUI 框架

最近,我一直想开发一些桌面(主要是 Windows,但也可以考虑 MacOS 或 Linux)应用程序。虽然 Go 不是开发 UI 应用程序时首选语言,但是该语言的简单性和健壮性仍然使它成为我的首选语言。是的,这是我的锤子(hammer)… 但这是一个该死的漂亮锤子。 以前,我曾将 Ebiten 图形库用于 Go,以便与孩子们一起编写一些游戏。但是,对于一般的“应用程序”开发(即需要“小部件

Go 源代码中的复活节彩蛋

前言 前段时间,我在某个 Slack 工作区与朋友聊天: 朋友:“有人知道为什么time.minWall 的默认值是 1885 吗?” 我:“不知道,也许是从《回到未来 3》那一年开始的?” 我那么说基本是在开玩笑,因为我也不知道为什么将其设置为 1885 年。尽管其背后的事实与我在 Go 中的日常编码没有任何关系,但我还是情不自禁地询问了幕后花絮。我在团队聊天中问了我的同伴 Gophers,但似乎没人能找到

GoLand 2020.2 Beta 版发布:go.mod 升级以及对泛型的实验性支持

GoLand 2020.2 达到 Beta。这意味着我们将结束一连串的新功能开发,将重点转移到完善我们已经完成的工作上,并开始计算发布日之前的日子! 与我们的“抢先体验计划”版本相比,该测试版非常稳定,但请记住,可能仍然在某处存在 Bug。 同样请注意,此 Beta 版本是 EAP 周期中的最后一个版本,不需要订阅即可使用(如果您只是想尝试 GoLand,请尝试)。测试版通常会在发布候选版本之后出现,一旦我们发现该版本足够好并且可以在您的计算机上安装了。 在此发布周期中,我们为即将推出的 GoLand 2020.2 打包了 Go 模块的新功能,更好地呈现了代码中可能存在的问题和薄弱环节,提供了新的代码检查功能以及新的代码编辑功能,例如期待已久的 “Add Caret Per Selected Line”,改进了后台流程,使其更透明,更快,更多! 让我们来看看即将发布的版本中的新功能。选择您感兴趣的主题,或浏览整个博客文章以了解每个新功能。 Go Modules Generics a.k.a. Type Parameters Code Editing Code Inspections Take Variadic Arguments Under Сontrol References from Comments Save Projects as Templates Under the Hood Processes Version Control Go Modules 支持 GOMODCACHE 环境变量 从 Go 1.15 开始,可以使用新的 GOMODCACHE 环境变量将 Go Modules 缓存的默认位置从 $GOPATH/pkg/mod 更改为另一个文件夹。 为此,只需在 “Preferences/Settings | Go Modules | Environment” 设置 GOMODCACHE 即可。 IDE 将识别自定义位置,并将其用于具有依赖关系的所有后续操作。同步依赖项快速修复程序(可通过 Alt + Enter 实现)会将依赖项下载到 GOMODCACHE,外部库也将在新的自定义位置显示依赖项。 升级 go.mod 文件 行注释(在 Windows/Linux 上为 Ctrl + /,在 macOS 上为 ⌘ + /)可用于 go.mod 文件。 现在,当您键入 replace,exclude 和 require 语句的左括号时,GoLang 立即自动为你添加右括号。 泛型(又称类型参数) 6月16日,Go Team 宣布了泛型(也称为类型参数)设计草案。请访问 Golang 文档以获取有关该概念的完整详细信息 。 这是一个重大的发展,因此我们立即着手增加对它的支持。GoLand 2020.2 Beta 提供了对泛型的实验性支持,您可以通过在 Settings/Preferences | Go 启用对泛型的实验性支持。 此初始支持提供语法高亮显示和基本参考解析,并且仅在 go2 文件中有效。 请注意,有关泛型的工作仍在进行中,我们目前尚无法提供全面的支持。 尽管如此,请分享您的体验和您可能有的任何建议。它确实可以帮助我们完善到目前为止已完成的工作,因此我们可以使其可靠并使用更高级的功能进行填充。 代码编辑 想要将快速修复的结果应用于代码之前预览其结果,请使用 Alt + Enter 快捷方式调用显示上下文操作,选择所需的快速修复,然后在 macOS 上按 Alt + Space 或在 Windows 和 Linux 上为 Ctrl + Shift + I。 新的“按选定的行添加插入(多行操作)”操作会在每个选定行的末尾插入,并取消选择这些行。在 Windows/Linux 上使用快捷键 Alt + Shift + G 或在 macOS 上使用 ⌥ + ⇧ + G 调用它。 在 Preferences/Settings | Editor | Code Style | Go | Wrapping and Braces 中为调用参数,函数参数和复合文字元素配置换行。或者,您可以使用 Alt + Enter 键,调出 Put arguments on separate lines 和 *Put arguments on one line,*以手动拆分和合并元素。

对 gRPC 的 Rust 和 Go 版本进行基准测试

背景 如果你计划构建可靠,内存安全 ,高性能的应用程序,那么 Rust&Go 无疑会是你的选择。 如果您希望从内部应用程序中获得更高的性能,则可能还需要考虑使用 gRPC 而不是普通的 REST API。所有这些都是减少您的计算开销的解决方案。 我尝试比较各种库以了解它们的性能,并希望对你有所帮助。 关注的库 tower-grpc (Rust) 高性能 rust 库,尽管已被 tonic 替代 grpc-go (Golang) grpc 的官方 Go 模块 grpc-rust (Rust) 仍在开发中,另一个 rust grpc 库。看起来

从签名售书说起

上周通过公众号对外公布新手开卖后,有人想要签名版。由于双作者,涉及到双签,知道可能会很麻烦,但第一次,也有可能是最后一次,和煎鱼沟通后决定搞搞。 大概谈谈我们的操作过程。 1、编辑帮我们买书,104 本;也是想办法弄到了当时最便宜的价格; 2、寄到我家里。周六、日分批到的,去封皮签名,大部分还写了一些 Go 箴言,但还有 26 本周末没到; 3、弄好后寄到深圳。用什么快递也是有讲

重磅!史上第一本带你做项目的 Go 图书开卖

2020 年过去了一半,这半年对所有人来说都不寻常。但也是这场疫情,让我完成了一件大事:出了一本 Go 语言图书,书名是:《Go 语言编程之旅:一起用 Go 做项目》。 海报 先上海报: 全书共分为 6 章,分别是命令行应用、HTTP 应用、RPC 应用、WebSocket 应用、进程内缓存和 Go 语言中的大杀器,其中前 5 章是 Go 语言开发中最常见的项目类型。本书对项目开发、细节分析、运行时分析等核心内

从这些角度看 Go 是一门很棒的语言

Go 当前引起了很多关注。让我们看一下 Go 好的部分。 我最近用 Go 写了一个 SSH 服务器 ,在其中启动容器。该项目已经发展到很大规模,并且我还向 Go 发起了 PR ,以修复我发现的错误。在积累了比 “Hello world!” 更多的经验之后,现在我有信心写出我真正喜欢的 Go 语言部分。 跨平台 Go 引起我注意的原因之一是其构建系统。Java 的最初承诺是它是跨平台的,但是它需要安装运行时的事实显然是一

从这些角度看 Go 是一门糟糕的语言

上篇文章作者讲到了 Go 的优点,这篇文章提到一些缺点。然而,不少内容我是不认可的。欢迎留言说说你的观点。 Go 当前引起了很多关注。让我们看一下 Go 不好的部分。 作为开发人员,如今很难忽视 Go。因为诸如 Docker 和 Kubernetes 之类的软件,它已迅速崛起。但是,如果仅看一下该语言的流行度图表,Go 就与最流行或增长最快的编程语言相去甚远。 为何每个人似乎都在谈论和招聘 Go?从系统级工程到建立网上商

Echo 系列教程——实战篇0:使用 Echo 开发一个博客系统

实战是掌握一门技术很好的方式:纸上得来终觉浅,绝知此事要躬行! 在初步了解了 Echo 框架的特性、功能后,我们通过具体的一个项目来掌握 Echo 框架,这个项目就是写一个博客系统。 实战篇目标 掌握 go/echo 开发项目的方法; 通过项目更深入掌握 echo; 完善完善,甚至可以作为自己的一个博客系统使用; 因此,在项目实战过程中可能引申讲解 Echo 的特性,毕竟基础篇对 Echo 的特性没有深入讲解。 依赖技术 该实战项