2017/01/02 第802期

The Caching Antipattern

在多人协作的程序里很容易滥用各种 cache,你在某处加了 cache、然后你的同事忘了 invalidate,于是各种奇怪的 bug 就出现了。

不要把引入 cache 当做是解决性能问题的灵丹妙药,先解决本质的性能问题,不到万不得已,别用 cache。你以为你是 cache 小专家?但未来某天深夜加班疲劳的你未必还是,你身边刚入职的菜鸟同事也未必是;未来的你以及你身边的菜鸟同事们一定会掉入当初你自己挖的坑的:)

The Art of Defensive Programming

一些实用的编程建议,写可靠、安全的代码。为什么代码要 defensive?因为你不能完全信任:用户的输入、与你合作的同事、以及你自己。

Story Thought and System Thought

Quora 的产品设计经理写的文章。工程师、PM们普遍具有 system thought,靠客观的数据做决策;设计师们则具有 story thought,考虑主观的感受、人文视角。

设计产品的过程中,设计师们有责任去平衡团队中的这两种思潮,不能放任工程师与PM们一味地相信冷冰冰的客观数据。

Design for Testability

 写代码时应思考一下该怎么组织代码才方便测试,这样就能写出比较高质量的代码:小函数、纯函数、避免全局变量;分离IO与逻辑的代码;容易理清各种 dependencies。

别再用 Chatbots 这个词了

Chatbots(聊天机器人)似乎很火,做的公司很多;但Chatbots这个词给这类程序设定的期望太高了,实际上很少 Chatbots 是真的能与人 “chat” 的,普遍都很傻。