前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >技术人员上升遇到瓶颈?或许开源能推你一把!

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

原创
作者头像
腾讯开源
修改2017-09-20 10:04:21
8460
修改2017-09-20 10:04:21
举报

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的经历,我们看到开源可为自己赢得更多的上升空间。同时,开源能够为团队的技术能力注入新鲜血液。这些都将吸引着更多开发者加入到开源的行列当中。

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 作者简介
  • 项目简介
    • 演讲实录
    • 技术影响力
    • 个人影响力
    • 开源项目的选择
    • 结语
    相关产品与服务
    大数据
    全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档