• 如何只通过 Go 语言标准库创建 RESTful 接口

    瑞安·麦丘 2017 年 12 月 9 日 Go 是一门相当新的语言,并且在最近几年得到了越来越多的关注。它的功能非常强大,而且拥有出色的工具来设计快速高效的 API 接口。虽然已经有很多库可以创建一个 API 接口,像 [Go Buffalo](https://gobuffalo.io/) 和 [Goa](https://goa.design/) 之类;但是,如果能够做到除了数据库和缓存连接器之外,仅仅使用标准库来创建,无疑将非常有趣。 在这篇博客中,我将分析如何使用 Go 语言标...

  • 两个随机数函数的故事

    我经常有一些困惑,`crypto/rand` 包和 `math/rand` 包是如何关联的,或者它们是如何按照预期的方式(一起)工作的?这是其他人已经思考过的问题,还是仅仅我个人的突发奇想呢?终于有一天,我决定攻克这个问题,这篇博客就是这次努力的结果。 ## `math` 包 如果你曾经关注过 `math/rand` 包,你会同意它提供了相当易用的 API。我最喜欢的例子是 `func Intn(n int) int` 函数,它返回了一个你指定范围内的随机数。非常有用! 你也许...

  • 120
    注释你的代码

    每隔一段时间,网上总会突然出现一些令人讨厌的帖子,其观点是:不应该为代码写注释,它存在的唯一原因是因为代码本身不足够好。对于这些论点,我完全不能苟同。 ## 烂代码 他们的观点也不完全是错误的。没有人能说自己的代码足够好。代码本身也会慢慢变坏。你知道什么时候代码腐烂得最厉害吗?当你六个月没有碰这些代码的时候!当回过头再读的时候,你会非常好奇:“这个作者到底是怎么想的?”(于是,使用 git blame 来查看历史记录,没想到代码竟然是自己写的,因为这是你的代码。) 反对注释者的...