焦虑的客户端工程师,以及摇摆的Flutter们
关于客户端工程师的焦虑
1、前两天和快手的于冰老师聊客户端的发展,大家就很焦虑,说做客户端很容易遇到天花板,往大了说,现在是移动互联网的下半场,很多中小公司已经没有做移动 App 的需求了。往小了说,还有 Flutter、React Native 之类的跨端技术帮前端工程师“抢”他们的饭碗。
2、于冰说,GMTC 大前端技术大会上,他还吐槽为什么那么多前端的专场,但是客户端的专场却没几个。其实,在快手,客户端的工程师是远远多于前端工程师的。所以,客户端工程师,真没必要焦虑,还是安心做好技术。
3、快手最新的市值是 6281 亿港元,日活 3 亿。你想想也挺可怕,这个曾经到过万亿市值的公司,他们的商业模式就是建立在一个“App”之上的,没有 PC 端。这么推断,他们客户端的人怎么可能少呢?
4、但于冰说,他们招客户端工程师的要求很高,早年的时候甚至要考高难度的算法题。因为他们进来真的是要做核心功能的优化,比如优化包的大小、提升低端机的体验、降低崩溃率。嗯,我想了想,这可能已经是 C++ 工程师了。
5、所以啊,关于客户端工程师内卷的话题,我们可以告一段落了。我总结下,首先,客户端这个赛道还是有很多可以纵深的方向,但这需要你技术功底够硬。其次,建议你去有业务场景的大厂历练下你的技术深度。
6、我前两天无意间看到一本书,书名是《反内耗》。他大概讲了这么一个道理,所有让你焦虑的胡思乱想,都是内耗。比如,你每天想,客户端没前途了,我干的没心劲。客户端需求少了,我咋办。老这么想,没用。
7、前端之巅以后,不会营造类似的焦虑,我们所有的内容起点,都是帮大家找方向,找力量。但你要记得,看准了方向,你得行动,行动才是理想最高贵的表达。我们一起成长。
关于 Flutter
1、关于 Native、动态化和小程序的应用场景,于冰是这么解释的,作为平台型 App,快手核心业务短视频、直播等业务,会倾向于用 Native 方案来做;拓展业务,比如电商、运营等,会用动态化的方式来做;再往上一层的生态业务,快手倾向于用小程序为用户提供更全面的服务。
2、快手目前主要用的动态化方案是 RN,他们也还在评估 Flutter 中。字节跳动用的是 Flutter,前段时间 Google IO 上,谷歌官方说,字节跳动有 70 多个 App 选择 Flutter 作为跨端解决方案,与此之外,还有 500 多位 Flutter 开发者。
3、那 Flutter 是怎么在字节落地的呢?他们 Flutter 负责人是这么说的,“成熟的产品各个功能都是完善的,早就用安卓、iOS 原生技术写完了,现在只是做一些调整,用 Flutter 重写效率也没有很大的提升,把 Flutter 引擎放进去还占包体积。但如果用在新的产品、新的场景里就可以大幅提高效率。”所以,他们最开始的切入点就是教育方向的新业务。
4、现在,字节跳动许多 App 都用了 Flutter 和其他技术混合的开发方式,新的产品更倾向完全使用 Flutter。在西瓜视频、抖音火山版、开言英语等多个业务上,Flutter 都提升了大约三分之一的开发效率。
5、有人唱衰 Flutter 说,目前 Flutter 的落地都在边缘业务 / 页面。其实,没必要,这是技术落地的必然规律。就像百度高飞说的那样,Flutter 作为一个新的技术栈,在企业级应用里面,会涉及研发模式的转变,基础建设的完善,对团队管理和基础建设都要求高一些,企业应对上,整体采用更为稳健的节奏也是合理的,也就是先从边缘页面或创新项目开始,逐步在扩大落地范围。
6、你看,这里面提到一个词,叫“基础建设”。上次我和徐东聊的时候,他也提到,Flutter 虽然不错,但是,中小公司落地的时候,千万要注意,因为技术不成熟,还是有很多坑要填。如果公司没实力,或者没有能够 hold 住 Flutter 底层的人,那用的时候,还是要慎重再慎重。
7、再具体点,Flutter 需要补齐等同于 Native 研发的基础设施,比如通用端能力的插件封装、构建打包、质量体系、视觉 UI 的规范、模块化、动态化,以及引擎本身的稳定性和性能优化等。这些基础设施更注重的是产品化程度,要建设得通用且好用。
8、但话说回来,这不影响你去探索、研究新的技术。早上车,坑多,但不也能早享受技术的红利吗。从技术学习的视角看,早点入场,你便能有更大的历史观去理解这件事。就像丘吉尔说的,你能看到多远的过去,便能看到多远的未来。
10、说到 Flutter,国内还有一个公司你肯定绕不过去,那就是闲鱼。前段时间,我们还采访过宗心,把一些大家关心的问题都问了个遍。宗心回答的很有深度。我列几个你看看。
11、“用 Flutter 是想节省成本,开发确实快,但实际上有一堆坑,比如你要在写插件和环境搭建上花费大量时间,成本变相回来了。”这绝对是很多 Leader 的内心 OS。你不能说错,但起码,我觉得思考深度不够。
12、宗心说,对于效能和性能相关的问题适用于所有跨平台技术,跨平台技术本质是渲染引擎和逻辑的统一,无法做到不同平台特性的统一。另外,性能本身一定是一个 Tradeoff,就当前的性能来看,Flutter 不能算非常出色,在滚动,长列表等具体细节的感受上,确实不如原生流畅,但差异没有大到不能接受。 同时,对于正在更新迭代的技术来看,我们有信心在未来看到性能的进一步提高。
13、知乎上,在闲鱼官方发布的一个文章里,我看到下面的留言也很有意思,“定制化程度越深越能看出来闲鱼吃 Flutter 这个螃蟹历经坎坷,不是所有的厂都有这个成本和资源去做底层修改和定制,所以在技术选型上也不要盲目跟随”、“业务团队还是老实用成熟工具吧”。
14、这几个评论都能让我们辩证性的思考问题。不过,我也想补充一句宗心在另外一篇文章里的回复,根据历史的规律,企业级应用一定会先在头部互联网企业产生,并逐步优化降低门槛,这个过程需要一些时间。
15、《创新者的窘境》里写到,先进的创新技术一般都是大公司优先孵化出来的,因为大公司有更多的资源了解行业最先进的技术,并率先投入尝试。我们希望这些投入尝试的大厂可以更多的开源与持续分享,将知识传播给更多的人,从而帮助技术逐步成熟。
16、我们每天都在喊创新,但你看,就从 Flutter 落地的视角看,你就知道,创新得有多难。创新意味着你要改变旧的规则,你要忍受质疑和孤独,你要有超强的技术能力和判断力。
17、当然,我们不是空谈创新,不是是闲鱼,还是字节跳动,他们应用 Flutter,都是为了更好解决业务问题。
18、下周四晚上 8 点,我要在视频号连麦 Flutter 圈子里的两位大神,闲鱼的宗心和字节跳动的徐东,和他们把 Flutter 的坑、前景、技术细节都聊个透。如果你感兴趣,那千万不要错过。今年就这一次。
19、我是小盖,期待能为你服务。