栏目介绍
Column introduction
每一个开源项目的背后,都有着很多个鲜活有趣的灵魂。蚂蚁开源希望从身边的开源人物着手,通过「开源人物志」栏目,让这些一直在默默耕耘,为社区带来微小而美好的改变的人们,能更多地被大家所看到、所了解、所喜爱。
本期嘉宾
王志伟:花名逍为,蚂蚁集团数据洞察分析平台 DeepInsight 项目初代前端架构师,开源数据可视化解决方案 AntV CTO,G2 负责人,《从 0 到 1 开发一个图表库》技术小册作者,中国开源码力榜 2021 中国技术先锋年度评选 99 位中国开发者之一,中国开源 TOP 107。
本文 3063 字,阅读大约 8 分钟
多年以后,面对 AntV 成熟的产品矩阵,逍为不禁会想到早年在绿皮火车上,伴随着车轮不时与钢轨发出阵阵刺耳的摩擦声,自己在专心研究代码的场景。那些浸在时光里的琢与磨,让他在开源世界找到了方向。
从看开源代码都费劲的青涩技术少年成长为互联网大厂开源项目 CTO,逍为在开源这条路上已坚守了十年。
Part.1 因 Echarts-for-React 而踏上开源之路
逍为接触开源很早,2013 年还未毕业的他早早开始暑期实习并拿到了转正的 Offer,充裕的大学时光给了他足够的折腾时间,他开始在各类博客、网站上以“hustcc”的“马甲”“网上冲浪”,以华中科技大学(Huazhong University of Science and Technology)的首字母加域名后缀,这个昵称逍为一用就是数十年。
那段时间他用 GitHub 搜索很多现成的 UI 组件、代码等,节省时间的同时还能学习别人写代码的思考方式与逻辑。作为开源社区中的“使用者”,观察、学习、提需求,是逍为每日的必修课。
逍为参与开源社区活动
正式参与开源是在他工作后的第 2 年,彼时还在游戏公司中担任测试开发工作的逍为正好在规划做自动化测试的工具,选择了当时刚火起来的 Web 开发框架——React,需要图表展示所采集的数据,而其使用的数据可视化图表库 ECharts 在 React 下并没有现成的组件,逍为便自己动手封装了一个 Echarts-for-React。
简简单单的 100 行代码成为了 Echarts 生态中不可或缺的 React 组件。这也是他在 GitHub 上 Star 数最多的项目之一。大批的关注与认可让逍为体验到了开源的乐趣,陆续又写了很多小而实用的库。从此,做开源这件事,他一发不可收的做了好多年。
当被问及为什么能十年如一日的做开源这件事,逍为毫不掩饰他对开源的热爱与对代码的严谨态度,“作为技术人,大家都有对技术的追求,例如代码写的简洁有美感,架构设计的合理且优雅…要达成这些技术追求的最佳路径我认为就是开源。”除了对技术的极致追求,当初在 GitHub 上写代码所感受到的对代码精雕细琢的感觉,也是他深陷开源的重要原因。
在开源的过程中不断重构代码,是技术精进的过程,也是提升能力与探索开源深层思想的必经之路。
Part.2 在蚂蚁领略开源的魅力
虽然毕业后的第一份工作是游戏公司的测试开发,但开源却在机缘巧合下成为逍为进入蚂蚁集团的关键因素。当时的蚂蚁数据洞察分析平台 DeepInsight 中正巧有用到他所写的 Echarts-for-React,于是面试体验愉快,双方一拍即合,逍为就这样顺利加入了蚂蚁体验技术部。围绕“可视化”与“开源”,一努力就是六年时光。
如果选三个词来形容蚂蚁的开源文化,逍为认为“开放包容”“协作共创”“好动会玩”最为贴切。
开放包容的社区氛围是蚂蚁开源文化的体现。来到蚂蚁之后,逍为主做开源数据可视化解决方案 AntV,与他最初接触所的 Echarts 同属开源社区竞品,但考虑到 Echarts-for-React 在社区上对 Echarts 的重要性,逍为依然抽时间去迭代更新版本。既是 AntV 的负责人,也是 Echarts 的贡献者,“身兼两职”的情况在他身上经常出现,在逍为看来,这正是开放和包容的体现。
协作共创的团队力量是蚂蚁开源能够持续发展的根基。比起自由开源从业者,逍为认为在大厂做开源虽然有些挑战,但更为可持续,也更容易做成大型开源项目,持续的时间和精力投入以及有商有量的团队合作,每个人都会以开源角度去思考投入和回报,更成体系。
好动会玩更是蚂蚁开源想传导的重要理念。除了技术能力强,代码写的美,积极主动驱动项目等品质,蚂蚁更希望开源人是好动的,会玩的,因为开源是人,是社区,不只是冷冰冰的代码,开源是可以很有趣的,也是有温度的。逍为所在的 AntV 项目每年会组织安排两次出去玩的团建活动,对于他来说,“开源”本身就是个动词,不动起来怎么能做好开源呢?
逍为(左三)和 AntV 团队在一起
问及蚂蚁 AntV 选择开源的原因,逍为也有自己深入的理解:
- 从技术人角度看:“开源能秀出代码,规范开发流程,获得社区认同感,同时能获得社区反馈,不断优化。”
- 从团队影响力角度看:“在社区秀出团队开源的项目,能留下团队痕迹,增强团队影响力。以前社区有一句话国内好的前端不是在蚂蚁体验技术部,就是在去蚂蚁体验技术部的路上。”
- 可视化社区角度来看:“当前国内的可视化社区环境还有很大的可优化空间,需要我们做一些事情。”
- 公司角度则还是以商业化为主要视角:“现在很多商业化策略都是先开源,获取用户和社区链接,从而带来优质的潜力用户。”
Part.3 开源不止“用爱发电”,更是长期主义
谈及做开源的动力与坚持的原因,逍为表示刚开始的时候确实是“用爱发电”,“那个时候发布一个项目或者功能后,会频繁的去关注项目 star、issue 等等,看社区对我的代码是怎么评价的,实际上是期望通过开源获得一种能力认可,把开源作为了一种获得影响力的方式。”
逐渐地他发现开源并不是一件心血来潮的事,开源是一种规范的研发流程,是一种敏捷的自驱的工作方式。在这种环境下,开源人会自然而然的关注自己代码的质量。这个时候,开源是一种工作方式,是长期主义。
到现在,逍为意识到开源其实也是一种技术增值的策略,无论是公司内部还是外部,都有大量由开源走向商业化的产品,它们都是以开源和生态去获得用户链接,然后通过商业化产品提供服务。在这个维度上,开源与业务能有机地结合起来,带来实在的商业价值。
逍为在海边,相信聚沙成塔的力量
随着对开源认知的提升,坚持做开源这件事就不再有难度,它更像是一种习惯,无需刻意为之。
此外“人人喊打”的 KPI 在逍为这里占有重要地位。他认为将开源工作与 KPI 绑定有益于项目长久稳定的做下去。“社区里一直充斥着 ‘KPI 项目做不长’的抱怨,实际上这个观点是有误区的。如果不是 KPI 项目,反而做不长。只凭借一腔热情做开源是很难坚持的,还是需要找到和开源项目挂钩的业务价值,这个其实说通俗一点,就是 KPI 了。”
通过参与开源社区,逍为认为对本职工作最大的帮助就是深入底层,了解最核心的技术,对于改变产品的形态有很大帮助。这也印证了一句话,开源不止是改变社区、改变项目的一种方式,更重要的是突破自己的一种手段。作为一种敏捷自驱的工作方式,开源让逍为从不太喜欢说话,只会闷头写代码的技术男变成了乐于分享,与人交流的传播者;做可视化的过程中也给他增加了一些标签和名片,例如发表可视化技术的技术小册「作者」、指导社区同学参与贡献增强开源社区影响力的「开源 leader」等。逍为找到了一直可以持续深耕的领域。
采访的最后,码龄 10 年的逍为也给出了一些快速参与到开源社区的办法:
- 在做开源项目“造轮子”的时候,仔细感受已有代码中“不爽”的地方,如开源库不好用,包太大、性能差、兼容性差、能力差等,这些都可以成为“造轮子”的点子;
- 多尝试代码的不同写法,换个方式能写得更美更优雅;
- 发现已有代码中某些方案不错,代码也写的很好,别人也能用上,那就开源出去;
- 做已有开源项目的周边生态(Jest、ESLint 等等);
- 类比已有社区方案,扩散到其他领域(ESLint -> Markdown lint);
- 更重要的是要有创造力。
逍为(一排左七)参与AntV团建
谈起开源,逍为滔滔不绝,难掩热爱,他还是 10 年前那个对开源充满好奇与探索欲的少年,增加的是项目阅历与经验,不变的是开源初心与坚守。白驹过隙,转头看,轻舟已过万重山。