技术人员上升遇到瓶颈?或许开源能推你一把!

GitHub Tencent账号下首个开源项目tinker的开发者shwenzhang受邀参加腾讯开源线下沙龙,分享他经过开源后在技术和个人影响力方面获得了怎样的成就,并追根溯源,表达开源项目应该“大而全”还是“小而美”的独特见解。开源不应该是压在开发者身上的额外负担,而是技术完善,个人绩效提升,塑造公司与团队形象的有效途径。

作者简介

Shwenzhang,张绍文,来自腾讯微信事业群,从事安卓开发,主要负责 Android 的性能优化以及终端质量平台相关工作,参与Android热补丁技术tinker的开发。

项目简介

Android热补丁开源框架tinker,具有稳定性高,兼容性强,简单易用等特性,支持在无需重新安装apk的情况下,完成对dex文件,库和资源的更新,紧急修复APP的bug,或发布新功能。

应用宝Top 1000的应用中,有包括微信之内的60多个应用已经使用了tinker进行APP的热补丁。tinker首日star数破千,登上全球日榜热度第一,取得首周star数4000+的成绩。

GitHub地址:https://github.com/tencent/tinker

演讲实录

今天我主要分享一下,开源可以让我们得到什么,可以获得怎样的成长?tinker开源有比较长的时间了,因此我以tinker为例,结合开源经历,向大家分享开源给了我怎样的帮助,希望大家能有所启发。

技术影响力

重构代码,取悦自己

程序员的使命,就是写伟大的代码取悦自己。但由于历史原因,或产品需求变更和迭代,我们往往只能恶心自己,写出来的代码连自己都看不下去。开源就不一样了,代码不仅自己看,还要放到GitHub上给所有人看。代码风格代表公司的形象,也代表我们开发人员的形象。于是,我们在代码规范、注释、项目架构上面都需要更费心思。这就给了我们对项目进行代码重构的好机会,可以优化那些写得不规范的旧代码,让它能被读者更好地接受。

技术视角

我们在公司做产品,要么跟以前版本做比较,要么跟公司其他产品做比较。开源就不一样了,我们的产品需要跟开源社区的业界同类产品做比较,分析他们的优缺点,挖掘他们没有解决的痛点,找到我们比他们优胜的方面。这是做开源前必须经历的步骤。当真正把项目开源时,我们会提供对比结果作为项目的介绍文案,例如微信终端跨平台组件Mars的网络库与其他网络库相比的优势,Tinker为什么比其他热补丁方案好。

“既要埋头苦干,也要抬头看路”,开源使我们站在很高的视角上,去了解社区的新技术,让我们意识到改变,阔斧革新了安卓客户端的开发工具链。

社区支持

开源除了把自己的技术向社区展示,同时我们也希望得到社区的支持。tinker对兼容性有极高的要求。tinker开源后便得到非常广的测试场景,先后在2000多个APP中得到验证,其中不乏UC、百度等知名公司。现在,华为、小米等厂商也会帮我们运行各种自动化的用例,项目出现问题就会及时反馈给我们。这是我们期望的社区帮助。

然而,目前国内的开源社区环境不是特别的好,80%左右的用户仅停留在用的层面,会提出bug或指出待完善的地方,而提出优化解决方案,并做出Pull request的用户不及20%,而且大部分集中在大公司。因此,我们筛选出一批只有30多人的来自阿里、百度、华为等知名公司的tinker种子用户。他们能给到tinker非常多的Pull request和优化方案。

个人影响力

情怀传递

开发者,尤其是新员工,都不会很在意个人影响力,认为只需要写好代码就行了。其实作为新时代的程序员,这样做远远不够。写好代码只是最基本的诉求,程序员还要会做总结,沉淀自己的工作成果,通过分享去引导大家进步。这恰好是开源对程序员的要求。Mars、tinker、WeUI等微信事业群的优秀开源项目,都离不开大量技术文章作为沉淀。项目开源前期和后期,我们都会输出一些有价值的文档,收拢起来,让大家了解一个项目开源的始末。

技术大会/沙龙/直播

开源一个项目就像对外发布一个产品。我们的项目即使再好,也需要发声,让更多的人知道。因此,我们积极参加GMTC、QCon等大型技术大会,还参加一些线下沙龙和直播,把我们的项目放到大舞台上曝光,得到向同行请教和学习的机会,同时也可以了解到业界的新技术。

社区交流

项目开源需要跟社区做一些反馈与交流,例如处理issue和pull request,筛选出种子用户并跟他们深入交流。我们还会给tinker项目比较优秀的贡献者寄礼品作为奖励,已经寄出两三批了。

个人发展

个人影响力的提升,无论是对你的晋升还是个人成长都非常有帮助。大部分参与晋升考核的员工,只是与过去的自己或公司其他人进行比较。可当你拿出的方案是,经过开源社区的验证,我在业界是什么水平,达到了怎样的高度。这显然比其他人更优胜。以我的晋升经历看来,tinker开源绝对是锦上添花的一笔。

开源还有一个很重要的意义是,无论你在哪里,都可以继续为自己的项目做贡献。所以我希望大家都能加入到开源的行列当中。

开源项目的选择

中国人的思维习惯倾向于一个项目做到"大而全",能满足所有功能。但我认为,不妨尝试一下"小而美"。项目质量好坏的关键,在于它能否直击一个特定的痛点,能否有特定的市场定位。它与竞品相比具备怎样的性能优势,在哪些场景下可以解决问题但竞品不能。可能是一件简单的事情,但star数却非常多。因此,优秀的开源项目不一定是功能全面的软件,也不一定是超级庞大的系统,只需要能解决某些人在某个场景下的痛点就可以了。

结语

Github地址:https://github.com/tencent/tinker

欢迎Star Tinker!

去年10月,Tinker在开源社区,尤其是安卓热补丁技术领域掀起热潮,一时名声大噪,带动腾讯开源迅猛发展。但事实上,部分开发者认为,做开源劳累于代码审核、项目运营和社区交流,而这些工作的成效却不一定是立竿见影,因此做开源成为了自己的负担。

打造个人影响力,已经成为新时代程序员对自己职业生涯长期规划的保证。回顾shwenzhang的经历,我们看到开源可为自己赢得更多的上升空间。同时,开源能够为团队的技术能力注入新鲜血液。这些都将吸引着更多开发者加入到开源的行列当中。

文章来源: 腾讯开源 公众号

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

坐拥4亿用户,哪些技术难点支撑了短视频的兴起|英特尔云中论道

1804
来自专栏ATYUN订阅号

优步希望用AI来引导驾驶员完成训练

优步产品总监Jairam Ranganathan表示,该公司正在探索使用AI为潜在驾驶员制作辅助性训练指南。

734
来自专栏程序员互动联盟

为什么很多程序员喜欢戴耳机写代码?

很多程序员在工作的时候喜欢带着耳机写代码,目前这种现象特别常见,按道理脑力劳动者该集中注意力,听着音乐该是干扰思维,为啥还是这么愿意这么去做,难道只是为了展示程...

3546
来自专栏VRPinea

VR战势加剧——PSVR、Vive、Rift 该如何挑选,请看这里!

3548
来自专栏企鹅号快讯

跳一跳已经过时,微信小程序玩了一招让90后痛哭的回忆杀

TASTER有趣 你有没有想过,他们会回来 微信更新了,小程序可以玩跳一跳,这个想必大家都知道了: ? 虽然大家都玩的很嗨,而且各种套路都推出来了、但是仔细想想...

2615
来自专栏python小白到大牛

零基础转行学习Python,没有这些干货怎么可以?

这个网站整理的还算不错的了,里面基本上是可以满足初学Python人员和想了解一些其他IT编程技术人员的要求,但是这个只是带你入门,具体的还得不断的学习!

1690
来自专栏程序员互动联盟

找编程工作,需要参加软件资格考试嘛?

疑惑一 找编程工作,需要参加软件资格考试嘛? 联盟群里很多人问要不要参加软考,其实这个事情一分为二去对待,真正的比较牛的私人企业像腾讯,阿里,百度,面试的时候才...

2293
来自专栏嵌入式程序猿

嵌粉须知:看看嵌入式系统是如何驱动物联网发展的

物联网的发展以及火热,相信人人都有所了解,那么在嵌入式系统是如何驱动物联网发展的,往下看。。。。。 物联网技术并不是一个单独的技术,而是多种已有技术的融合:如处...

2578
来自专栏专知

【业界】Facebook的基础AI算法是如何驱动社交网络的发展?

【导读】Facebook的基础AI算法是如何驱动社交网络的发展。我们来一览这篇文章。 Instagram工程师曾在2016年接到一个艰巨的任务。当时由于担心人们...

2926
来自专栏云计算D1net

OpenStack成AWS有力竞争者

AWS提供的服务非常全面,价格低廉,深受很多小企业和开发者的欢迎,这给其他云商们带来了很大的压力,OpenStack一直是AWS的有力竞争者,虽然Open...

3525

扫码关注云+社区