很久之前我想把这件事来好好的写一下, 于是就写了这篇文章:
http://coderheart.anguskong.net/2014/06/google-camera-software-engineering.html
我最初想把一些以前 design pattern 的心得写下来, 没想到后来一
忙就没有再继续写下去了. 既然当时是写 Android app, 当然主要是
用 Java, 很多想法都是从 Java 出发. 之后又离开 Android 转回去
做 Machine Learning / AI, team 上大量使用 C++/Python.
结果我就又一头钻进 C++ 的世界. 写了一年 C++ 后, 又开始在公司
里帮忙为 C++ 的 code quality 把关. 做的事情其实就像这篇文章里
有人提到的:
https://www.quora.com/What-is-Googles-internal-code-review-policy-process
每次我在帮别人看 code 的时候, 有机会就会顺便提一提有哪些 design
上的问题可以被改进. 其实每个语言都有它自己的一套 pattern. 现在
回头看 design pattern, 这件事没办法和你使用的语言分开来谈, 我
觉得要能有好的 design, 对你使用的语言就要有很深的掌握度. 再来
就是 design 的时机. 很多情况我会觉得不要过度 design 最后成了
over-engineering.