1:1 时老板讲了他职业的一些故事,提到 JetBrains CTO 去 Google 时做的 Cloud Debugger,也是做了许久、但用户没多少,最后离职之前发了让人印象深刻的邮件
听完之后想起来 Yole 个人主页 确实有这段经历的描述,附注了一个视频 No Slides (2015, Russian),又在 Habr 上找到了完整的文字稿,摘录一些细节
1. 最开始在 IntelliJ IDEA 团队,将 IDEA 的单一库转化成一个 IDE 底座(IntelliJ Platform),基于此之上开发了 PyCharm, RubyMine 这些产品
I was engaged in the translation of monolithic development environment IntelliJ IDEA into a platform on the basis of which you can build IDEs for different languages, and not just Java
2. 重度关注用户界面及体验,快速迭代。以 inline debugger 举例,DX 上的很多特性不是长线迭代规划出来、而是快速创意并快速试错
What will be next, I really can’t say, because our development process is not planned very far ahead, and it’s just that a developer might suddenly think of the idea: “Let’s deal with this functionality. Let me do it.”
3. JetBrains 的一些故事:工作语言是俄语,内部沟通 / 代码注释英语;两位 CTO;早年公司注册名是 IntelliJ Labs,后面改称 JetBrains(为了找一个J开头的词;对 Java 也是真爱了)
4. Andrei Breslav 刚刚(15年采访时)从 Coding 角色转换成整体的团队管理、语言设计(对比国内 IC 转 TL 之后往往编码越来越少;搬砖的手,不住颤抖)
5. Yole 提到写 Kotlin in Actions 这本书的故事,提到彼时主要的工作依旧是编程;包括 JB 两位 CEO 也都依旧写代码(又一次;搬砖的手,不住颤抖)
6. 在 JB 做了十年之后选择离开,当时角色是 CTO、但胜任起来不是很好,更类似 PyCharm 和 WebStorm 的 TL. 讲到 Google 的工作不甚满意,也提到在 Google 期间如果去山景城的话、换一两个团队看看,可能发展也会不错。但彼时 Kotlin 对他的吸引力更大一些,所以选择了回归 JetBrains。彼时对 Google 工作的期望是什么?
Yes, I had all sorts of expectations, and not all of them came true. For example, the naive expectation that I will have a manager who will “manage” me will take care of my development and improvement. Not.
7. 眼中的 Google 成功之道,极强的 Infra 以及 SRE 文化
1. Firstly, a good storage system is very important. With replication, with scaling. That is, a storage system is really what everything rests on. ( BigTable / Spanner … )
2. The next ingredient in Google is feel free to use the resources. RAM is generally not very expensive. You can load all the data into memory
3. Performance monitoring - That is, you must always follow how this all works. 95 percentile latency, median latency - you need to follow all this. And you just need to constantly work on improving everything that you have
8. 尝试拯救 Google Code,也是一个大厂常有的管生不养的案例,类似非标技术栈带来的维护成本;对这个产品关停的决策,去找相关的人聊的时候收到的反馈:
But it turned out that they had already thought about all this, came up with, they have a 15-page document that says why this will not work, and … “thanks for your feedback, but we ourselves know everything.” If you think that the smartest, then in Google it is guaranteed not so. If you want to offer something - with a probability of 75%, other people have already thought about it
此外,13年 Android Studio 发布时 Dmitry 的一个采访稿
1. 共建 AS 的合作往事(类似的,围绕 Dubbo 生态建设 Ali-Studio?)
Actually this idea originated within Google; they have approached us with a suggestion to discuss how they can leverage IntelliJ to provide a better development experience for Android developers, and we suggested to build a partnership around the open-source version of IntelliJ IDEA. After some back and forth, they decided to go ahead with this approach, and so far we’re both very happy with how it’s proceeding
2. 评价 AS 的几大特性:工程向导、可视化 UI Designer、代码辅助、静态扫描(尤其 Android Lint 相关)以及 Gradle 构建支持等等
3. 提到 IntelliJ CE 的开源,主要对 JB 的贡献是有助于插件开发者了解一些 IntelliJ Platform 的细节、进而繁荣了插件生态;而实际为 IJ 贡献的代码不会很多,毕竟是一个商业化公司的产品