• Go 中的单例设计模式

    多线程应用程序非常复杂,尤其是当你的代码没有组织并且与资源访问、管理和维护保持一致时。如果你想最大限度地减少错误,你需要哲学和规则来生活。这里有一些我的: - 资源的分配和回收应该在同一类型中抽象和管理 - 资源线程安全性应该在同一类型中抽象和管理 - 公共接口应该是访问共享资源的唯一手段 - 任何分配了资源的线程都应该释放同类型的资源 在 Go 中,没有线程,只有 `Go Routines`。Go 运行时抽象了这些例程的线程和任务交换。无论如何,相同的哲学和规则也适用。 ...

  • For Range 的语义

    ## 前言 为了更好地理解本文中提及的内容,这些是需要首先阅读的好文章: 下面列出 4 篇文章的索引: - 1. [Go 语言机制之栈和指针](https://studygolang.com/articles/12443) - 2. [Go 语言机制之逃逸分析](https://studygolang.com/articles/12444) - 3. [Go 语言机制之内存剖析](https://studygolang.com/articles/12445) - 4. [Go...

  • 在 Go 中实现 tail 的跟踪功能

    tail 是我们大多数人都熟悉的命令。我假设你也熟悉提供的 `-f` 选项。如果你不熟悉,知道它会打印出文件的最后几行即可。最近在一个项目上工作,我想知道我需要做什么来实现这个功能。这个想法来自阅读 [Feynman](http://amzn.to/2AIWVuX) 的书: > 毫无疑问,你知道如何去做; 但是当你像小孩子一样玩这类问题,并且你没有看到答案时...试图找出如何去做是很有趣的。然后,当你进入成年时,你会培养出一定的自信,你可以去发现事物; 但是如果他们已经被发现,那你根本不应...

  • Golang 下的微服务 - 第 5 部分 - Go Micro 的事件代理

    在本系列的[前一部分中](https://studygolang.com/articles/12485),我们谈到了用户认证和 JWT。在这一部分中,我们将快速浏览 go-micro 的代理功能。 正如前面的文章提到的,go-micro 是一个可插拔的框架,它连接了许多不同的常用技术。如果你看看[插件仓库](https://github.com/micro/go-plugins),你会看到它支持多少插件。 在我们的例子中,我们将使用 NATS 代理插件。 ## 基于事件驱动的架...

  • 120
    在 Linux 中使用 Go 作为脚本语言

    在 `Cloudflare` 的人们都非常喜欢 Go 语言。我们在许多[内部软件项目](https://blog.cloudflare.com/what-weve-been-doing-with-go/)以及更大的[管道系统](https://blog.cloudflare.com/meet-gatebot-a-bot-that-allows-us-to-sleep/)中使用它。但是,我们能否进入下一个层次并将其用作我们最喜欢的操作系统 Linux 的脚本语言呢? ![image here...