字节跳动的 Lark 团队貌似在很早的时候就开始使用 Rust 了,他们用 Rust 做了跨平台的客户端核心组件。以上信息一直都隐藏在互联网的深处,我是机缘巧合下看到了他们团队工程师在 QCon 上做的演讲才知道的。
奇怪的点在于,为什么这样的事情被藏的这么深? Rust 社区一向都是崇尚开源的。知道这样的事情后,我去找了 ByteDance 的 GitHub repo list,可惜没有发现任何的 Rust 相关的 repo。这让人让人感觉很难过。
但是 Lark 的使用体验又不错(Lark 桌面端作为一个基于 electron 的 app,竟让我在一段时间内感受到了 native app 的速度),我对他们做的事情又产生了兴趣。
所以找上面提到的演讲的讲师给我内推了实习。
Box<Fn() + Send + 'static>
和 Box<dyn Fn() + Send + 'static>
是什么(trait object,智能指针)Box<Fn() + Send + 'static>
和 Box<dyn Fn() + Send + 'static>
的区别(deprecated feature)Box<dyn Fn() + Send + 'static>
在C++下的对应(unique_ptr, 基类)一面小哥不苟言笑,可能是因为我迟到了几分钟(逃
[O(n), 不能用除法]
input:
[1, 2, 3, 4]
[24, 12, 8, 6]
和二面老哥的交流相对比较多。
两小时之后 HR 打电话过来说通过了。
后来因为奇怪的原因有幸和上面演讲的讲师也是内推我的大佬打了20min的电话。提到了 SDK 团队在做的究竟是什么,以及当前的团队情况,我同时也抓住机会问了很多项目细节。