每隔一段时间,网上总会突然出现一些令人讨厌的帖子,其观点是:不应该为代码写注释,它存在的唯一原因是因为代码本身不足够好。对于这些论点,我完全不能苟同。本文阐述作者关于注释的观点。 我要晨读
golang PPGo_CliImg 是一个图片截取处理工具,基于Golang语言实现的图片截取处理工具。 可以将底色是白色或者其他纯色的图片切割出来,并按照自定义尺寸和边距输出。 我要晨读
我们做的是聚合支付系统,使用的是fasthttp 作为http server, http client 也是使用fasthttp 我要晨读
事务处理是数据的重要特性。尤其是对于一些支付系统,事务保证性对业务逻辑会有重要影响。golang的mysql驱动也封装好了事务相关的操作。我们已经学习了db的Query和Exec方法处理查询和修改数据库。 我要晨读
当系统调用返回EAGAIN时,会调用WaitRead/WaitWrite来阻塞当前协程,现在我们接着聊。 我要晨读
通常C++通过指针引用计数来回收对象,但是这不能处理循环引用。为了避免引用计数的缺陷,后来出现了标记清除,分代等垃圾回收算法。Go的垃圾回收官方形容为 非分代 非紧缩 写屏障 并发标记清理。标记清理算法的字面解释,就是将可达的内存块进行标记mark,最后没有标记的不可达内存块将进行清理sweep。 我要晨读
Golang URL 解析常用代码 我要晨读
go 工具链目前[不支持编译 windows 下的动态链接库][1],不过[支持静态链接库][2]。 想要产生dll,可以这样 workaround ,参考 golang [issuse#11058][1]: 我要晨读
go2.0 会有什么新特性呢?下图是一个老外的调侃,他不希望发生这样的事情(please don't make it happen)。我倒是希望其中一些实现,比如泛型和操作符重载和多态。 我要晨读
图解 Go 中的延迟调用 defer:本教程将通过几个实用的例子讲解 Go 语言中的 defer 的用法。 我要晨读
众所周知,带缓冲的 IO 标准库一直是 Go 中优化读写操作的利器。本文带领大家深入理解 Go 标准库之 bufio.Scanner。该文由 GCTT 翻译。 我要晨读
集合就是不同对象的无序聚集。Go 数据结构之集合。本文图文并茂讲解 Go 集合的实现。Go 中文网增加了专题功能,欢迎大家入驻开通自己的专栏。 我要晨读
这一章节我们将详细描述网络关键API的实现,主要包括Listen、Accept、Read、Write等。 另外,为了突出关键流程,我们选择忽略所有的错误。这样可以使得代码看起来更为简单。 而且我们只关注tcp协议实现,udp和unix socket不是我们关心的。 我要晨读
go局部变量的存储空间是堆还是栈? 编译器会自动选择在栈上还是在堆上分配局部变量的存储空间,但可能令人惊讶的是,这个选择并不是由用var还是new声明变量的方式决定的。 我要晨读
之前在 golang 群里有人问过为什么程序会莫名其妙的 hang 死然后不再响应任何请求。单核 cpu 打满。 这个特征和我们公司的某个系统曾经遇到的情况很相似,内部经过了很长时间的定位分析总结,期间还各种阅读 golang 的 runtime 和 gc 代码,最终才定位到是业务里出现了类型下面这样的代码 我要晨读
一文读懂Go的net/http标准库。在进行 Web 应用开发的时候,使用成熟并且复杂的 Web 应用框架通常会使开发变得更加迅速和简便,但这也意味着开发者必须接受框架自身的一套约定和模式。本文的目的并不是让大家抛弃框架、约定和模式——理解那些隐藏在框架之下的底层概念和基础设施也是非常重要的。 我要晨读
Go 语言函数众生相。本文是对匿名函数、高阶函数、闭包、同步、延时(defer)及其他 Go 函数类型或特性的概览。GCTT 出品。 我要晨读
处理微信支付退款结果通知时,需要对返回数据进行AES-256-ECB解密,golang标准库未支持AES ECB加解密,特此记录。 我要晨读
经过四年的快速发展 Docker 已经成为了很多公司的标配,也不再是一个只能在开发阶段使用的玩具了。作为在生产环境中广泛应用的产品,Docker 有着非常成熟的社区以及大量的使用者,代码库中的内容也变得非常庞大。 我要晨读
Slice 和 Map 是 Go 中的两种重要的数据类型。本文将记录我关于这两种数据结构性能的一些关键的发现。 在讨论性能方面之前,我们先来简单介绍一下 Slice 和 Map。 我要晨读