https://avatars.githubusercontent.com/u/86768220?v=4
Reading makes me feel alive...

Error Handing in Go

现状 错误处理,是编程中绕不过的话题。 一个思考,最先出现的错误都应该尽快进行错误处理。 if err != nil { ... } 相信写过 Go 的,对上面这个都不陌生。 如果说 if-else

Why Kafka

背景 半年多前,初出茅庐的我接触到消息代理。我是这么做的: 首先,搜一下有哪些著名的开源消息代理组件: Kafka RabbitMQ Redis 的 Pub/Sub 也可以实现消息广播传递。 再看下他

sql.DB 以何种方式进行初始化,保存,使用?

起因: 《100 Go Mistakes and How to Avoid Them 》 “2.3 Misusing init functions”: In the init function, we will open a database using sql.Open. We will make this database a global variable that functions can later use. var db *sql.DB func init() { dataSourceName := os.Getenv("MYSQL_DATA_SOURCE_NAME") d, err := sql.Open("mysql", dataSourceName)

谷歌软件工程之道-2

《Software Engineering at Google》: 如何融入团队 知识共享 EN: https://abseil.io/resources/swe-book/html/toc.html CN: https://qiangmzsx.github.io/Software-Engineering-at-Google/#/ 一个好的事后总结应该包括以下内容: 事件的简要概述 事件的时间线,从发现、调查

谷歌软件工程之道-1

《Software Engineering at Google》: 前言,序言 什么是软件工程? EN: https://abseil.io/resources/swe-book/html/toc.html CN: https://qiangmzsx.github.io/Software-Engineering-at-Google/#/ 前言 技术的伟大之处在于,做一件事永远不会只有一种方法。相反,有一系列

软件设计哲学 6-21

原书: 2018 ed : https://milkov.tech/assets/psd.pdf 2021 ed : https://web.stanford.edu/~ouster/cgi-bin/aposd2ndEdExtract.pdf 通用模块更深入 如果减少 API 中的方法数量而不降低其整体功能,则可能正在创建更多通用的方法。 在多少情况下会使用此方法? 如果一