返回开发者新闻

开发者简介:移动专辑 (Vadims Savjolovs)

2022年6月13日发布者:Dmitry Vinnik

本文由 Meta 软件工程师 Vadims Savjolovs 和 Meta 开发者外协推广人员 Jesslyn Tannady 合写而成。

我们今天请到的采访嘉宾是 Meta WhatsApp 商务团队的软件工程师 Vadims Savjolovs,他所在的团队致力于构建一款商务 API,以帮助公司与消费者建立联系。


可以介绍一下您的移动开发职业历程吗?

我的移动开发者职业历程开始较早。完成学业后,我成了一名 Java 开发者,我的职业生涯自此开启。一年后,Apple 宣布向第三方开发者开放 App Store。这条消息立刻激起了我的兴趣,但当我在自己的 Asus 笔记本电脑上安装 macOS 失败后,我很快放弃了成为一名 iOS 开发者的想法。过了一段时间,我发现可以使用 Java 开发 Android 应用,于是入职了一家小型初创公司,成为一名 Android 开发者。自那以后,我的工作一直以移动领域为主。

很高兴,我发现在 Meta 在工作是开发者持续发展和提升自我的最佳方式之一。刚刚入职后,我参加了为期 6 周的集中工程入职培训。在入职培训期间,我有机会了解这家公司,并扩展了我在移动领域之外的技术知识。我开始使用 Meta 开发的各种技术开展工作,其中包括 GraphQLReact NativeFlipper 等开源框架。从那时起,我每天都会使用 Flipper 等项目。下面的几个视频深入浅出地介绍了 GraphQLFlipper,可以帮助您了解更多关于此类技术的信息。

作为 Meta 的一名移动端开发者,能否分享一下通常情况下您一天的工作情况?

Meta 最吸引我的一点是,每天都不寻常,每天都有各种各样的活动。有时,我会重点关注新功能的开发工作。其他时候,我可能会抽出时间面试候选人、培训工程师、编写文档、审核代码和组织技术讲座。

虽然我们认为开发工作非常重要,但培养团队和营造友好环境也是我们的首要任务。因此,Meta 非常重视面试。我们负责确保聘用合适的人选,同时竭力确保候选人拥有适当的工作经验。Meta 的很多应用(比如 WhatsApp)在全球各地拥有大量用户。若能聘用可以代表 Meta 用户的优秀工程师,我们的应用质量也将得到提升。

在聘用这样的优秀工程师后,我们需要保证他们可以快速熟悉 Meta 的代码库和工程实践。我们提供大量维基式内部资源,其中凝聚了数千名 Meta 工程师多年来围绕 Meta 所涉足领域积累的知识,任何都可以根据这些知识进行构建。我收到了许多关于最佳代码实践的问题,于是针对相关问题编写了一份资源,以便轻松分享这些知识。

在 WhatsApp 组织内部,我们还会举办一系列技术讲座。所有从事 WhatsApp 研发的员工都可以借此机会分享其引以为豪的工作成果和独到见解,而数百名产品工作人员也可以通过讲座更加了解彼此的工作内容。

可以分享一下您当前的工作吗?

我目前的主要工作是开发一项功能,让用户能够对企业在 WhatsApp 中发出的消息进行评级。此功能是 WhatsApp 为改善客户与企业主之间的互动而做出的一项重大举措。拉近人与人之间的距离,通过建立这种反馈循环来帮助企业进步,这些工作令人兴奋不已。

除此之外,我还参与了其他几个工程项目。我正在帮助内部基础设施团队迁移到新的依赖注入库。鉴于 Meta 规模庞大,任何此类重大迁移都极具挑战性,但正因如此,这也成为一个不可多得的学习机会。

我的团队还积极参与了在 WhatsApp Android 业务应用中采用和模块化 Kotlin 的工作。在过去的几年中,我开始爱上了 Kotlin 的简洁性和可读性。能够奋战在 Meta 全面采用 Kotlin 的一线实属一件乐事,我很高兴看到这种转变如此顺利。

您能介绍一下 WhatsApp 团队的最新幕后动态吗?

我在前面提到,WhatsApp 团队采用 Kotlin 的速度让我惊叹不已。采用一门新的编程语言绝非易事。考虑到 WhatsApp 的规模和代码库的大小,此事更显艰巨。

值得一提的是,WhatsApp 在 2014 年通过收购并入 Meta 公司,并一直保持简洁的代码文化。在这种文化背景下,我们会尽量避免大型的第三方框架和库。这一做法使得我们能够优化每一个应用指标,如 APK 大小、性能、电量使用等,以确保即使低端设备用户也能在使用 WhatsApp 时获得良好的体验。

在评估添加 Kotlin 支持将会如何影响我们的用户,从而提升这些关键的性能指标时,WhatsApp 移动端工程师开展了大量工作。在所有优势当中,Kotlin 最大的一个优势是提高了开发者的速度和代码质量。

和我交谈过的所有 WhatsApp Android 工程师都期待使用 Kotlin 开发新功能,就是因为它可以为开发流程带来诸多优势和改进。Kotlin 具有空安全、扩展函数、密封类,有助处理状态变更并提供卓越的集合支持,这些功能都让我爱不释手。我最近写了一篇博文,内容是 Kotlin 集合函数如何帮助解决编码问题。

作为一名从业多年的移动端开发者,您注意到移动领域存在哪些趋势?

我很高兴看到移动领域在逐年发展、演变,并越来越先进。开发者获得更好的工具、编程语言、框架和指导方针。移动领域是一个非常活跃的领域,KotlincoroutinesHiltRoomWorkManager 以及很多其他项目都在不断演进。有时,我甚至很难抽出时间去阅读所有更新内容和版本说明。

如今有大量卓越的教程、课程、博客和代码实验室可以帮助大家学习,这对我来说非常不可思议。这与 8 年前我开始移动开发职业历程时的情况大不相同。这种知识分享文化会为所有人带来更多机遇。

目前,我最喜欢的资源是 Android 官方文档,大家可以在 developer.android.com 上面浏览教程和指南,也可以在 Udacity by Google 查看一些免费的精彩课程。如果您还想获取更多资源,可以通过代码实验室来深入了解具体的主题,以及通过 Android 开发者博客及时了解最新资讯。

Meta 开源的 Android 开发者工具也有很多适合初学者使用的资源。我记得有用于管理图像的 Android 库 Fresco,以及用于在 Android 应用上构建有效用户界面的声明性框架 Litho。Meta Open Source 团队甚至可以提供视频,以深入浅出的方式介绍 FrescoLitho


如需了解有关 Meta Open Source 的更多信息,请访问我们的 Open Source 网站、订阅我们的 YouTube 频道,或在 TwitterFacebookLinkedIn 上关注我们。