Network

Designing Headers for HTTP Compression

看起来是 HTTP/2 的 header compression 使用建议


How to Think About HTTP Status Codes

HTTP status codes 使用建议。

适合结合 Rest API design 相关文章一起食用。

Programming Languages

论golang Timer Reset方法使用的正确姿势

golang 这破 timer 坑真多


Guaranteed Copy Elision

C++ 17 Guaranteed copy elision explained.


Goroutine Leaks - The Forgotten Sender

两个常见的 goroutine 泄露的例子。

A kind advice: any time you start a Goroutine you must ask yourself:

  • When will it terminate?
  • What could prevent it from terminating?

Database

MYSQL的SQL性能优化总结

可以稍微看看,个人对互联网产品的 db 使用也出在学习中。


Database 101

Fundamental ideas of relational dbms and non-relational dbms.

ACID V.S BASE

Choose from CAP

Data Structures

I’ve been writing ring buffers wrong all these years

第三种方案实在是太 tricky 了,依赖 unsigned integer overflow to wrap around,而且 capacity 限制也必须是2次幂。

通常情况下第二种方案可能会更好,性能这种东西没有确切的 benchmark 太虚了。

Misc

What is an Incident Postmortem?

An effective postmortem should include:

  • a high-level summary of what happened
  • a root cause analysis
  • steps taken to diagnose, assess and resolve
  • a timeline of significant activities
  • learning and next steps

虽然这篇 post 有打广告的嫌疑,但是内容还是足够可以的。另外要推荐 Google 出的 SRE 那本书,其中有几个章节主讲 incident management 和 writing postmortem。


How To Speed Up The Code Review

核心观点: the larget the request is, the less valuable is its review.

这里的 large 尤指心智负担。

所以做法是,不要混合不同 category 的提交到一个 pull request,因为不同 category 的提交需要的专注度和目的不一样。

不过按照个人经验要做到这个目的并不太轻松,在公司内部团队推广估计尤其困难。


其实你并不懂 Unicode

不错的扫盲文

想当年做 Win32 GDI 时被 glyph 和 grapheme 搞得要死要死。