Monthly Read Posts in Mar 2019
Networking
The State of Browser Caching, Revisited
各家浏览器对 HTTP caching 的支持概况
Cross-Origin Resource Sharing (CORS)
和 CORS 有关的两篇 posts。第一篇是 MDN 的官方教程。
需要注意的是,CORS在服务端的表现不是限制某些 URL 只能被某些 domain 的请求访问,而是允许这些 URL 可以在满足要求的条件下(origin 是某个匹配 domain),允许接收跨域请求。
跨域禁止的同源策略是由 browser 实施的,当收到服务端许可的情况下才会继续。
SRE
科普型,内容深度并不深,适合作为了解
Software Engineering
What Are The Best Software Engineering Principles?
列举了一些软件工程的基本原则。
这篇文章算是很标准的檄文:首先点出几个 monorepo 的理论优点然后逐一分析,得出这些优点并没没有看上去那么好;接着列举缺点。
最后总结得出核心是工程师文化。
这篇文章是上面那篇的 argue,但是相比起来写的就太一般了。
全片的核心论点就一个: monorepo 解决的是大团队里各个子团队的沟通提问题。
Things You Should Never Do, Part I
KEY: Do not rewrite your code.
Concurrency
Spurious wake-ups in Win32 condition variables
简要解释了 Windows 上 condition variables 会出现 spurious wakeups 的两个原因
Locks Aren’t Slow; Lock Contention Is
频繁的锁竞争是使用锁慢的根本原因,剩下的就老论点:减少临界区大小,减少锁竞争发生概率 .etc
文中用泊松分布模拟了实际使用 case 中锁竞争概率和性能的关系,50%的竞争下,两个线程也能由1.5x的提速