QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

参与开源,让程序员都成为发明家而不是“码农”|DIVE 基础软件大会专访

  • 2022-01-11
  • 本文字数:3311 字

    阅读完需:约 11 分钟

参与开源,让程序员都成为发明家而不是“码农”|DIVE 基础软件大会专访

“您是如何定义自己的?”

“首先是个程序员,然后有点理想主义,想把自己的名字写到‘册’上,靠梦想活着......”


近日,InfoQ 有幸与【DIVE全球基础软件创新大会2021】讲师、开源商业公司 API7.AI 创始人 & CTO 王院生就个人成长和开源创业话题进行了交流。并且,从这位开源人身上,我们也看到了较为浓厚的理想色彩。“我希望程序员都能成为发明家,而不是码农。”他如是说。

用知识连接社区


开源项目“OpenResty”可以说是王院生真正接触开源的契机。2014 年,王院生加入 360 公司。2015 年,为了让正在扩张的团队能更快速、高效地学习 OpenResty,王院生和同事温铭等人一同合作完成技术实践书《OpenResty 最佳实践》,没想到的是,因为这本书而把许多技术人聚集起来,并形成了上万人的社区群体。


“相当于用知识的方式把大家给连接到了一起。”王院生回忆道,当时团队成员身居不同城市,写书的方式能更好地将大家的知识对接起来,比如有人列目录、有人负责完成一些主要的章节等等,希望能通过一边写书一边分享的方式来推动协作和成长。


2015 年,在完成《OpenResty 最佳实践》后,同年王院生等人还创办了 OpenResty 社区。2015 年 12 月,罗永浩在锤子科技产品发布会上宣布将门票收入全部捐赠给 OpenResty,这也让更多的人知道了 OpenResty。紧接着,社区开始举办一些线下会议,包括每年的 OpenResty 大会。


但正由于这些“无心插柳”的相关经历,使得王院生对开源越来越感兴趣,后来更是选择全身心投奔开源事业。2017 年~2019 年,他离开 360 公司并加入到一家开源创业公司。2019 年 3 月,他和志同道合的伙伴一起创业,发起 API 网关开源项目“APISIX”,并创办 API7.AI(即支流科技)。


Apache APISIX 在 2019 年 6 月 6 号开源,同年 10 月就进入 Apache 孵化器。从开源之初,APISIX 保持每个月发布一个版本,并坚持测试驱动开发、自动化 CI/CD 等理念,以保证代码的质量和稳定性。 2020 年 7 月 15 日,Apache 软件基金会宣布 Apache APISIX 毕业成为 Apache 软件基金会顶级项目。


总的来说,从 2015 年到 2019 年,王院生已经经历过多个开源角色,包括从社区的协办者到社区领导者,以及从开源软件的使用者到开源软件的贡献者。而这段经历,让他在正式创业前,完成了从 0~1 的“开源沉淀”。

开源创业,必须要做到第一名


Apache APISIX 是基于 OpenResty 构建的 API 网关,因此从这个角度看,作为较早从事 OpenResty 技术研发与布道的从业者,王院生等人会创建 APISIX 项目似乎也是件“水到渠成”的事情。


但王院生指出,其实刚开始的创业并不容易,2019 年无论是从创业大环境还是开源商业化方面来说,形势都不是很明朗。当时他和创始人都直接裸辞全职投入到 APISIX,项目从 0 开始没有任何收益,风险颇大,而支撑他们走下去的原因,是因为大家都是正朝着自己骨子里真正向往的、喜欢的方向前进。


“小时候我想成为宇航员、科学家,最后发现这两个梦想都实现不了。之后就期望这辈子能把自己名字写入史册,有意思的是现如今的我们,已不需要史册了。”对于王院生来说,开源创业正是能与其曾经的梦想产生共鸣的事情,每每投入开源工作就充满激情,这里面可能包含某种使命感、又或者是对成功的憧憬。总之,在这开源事业里他有强烈的动力去持续付出。


“开源创业跟别的商业模式不太一样,你必须要做到所在行业的第一,才能有机会。如果你只是做第二第三第四,大概率会‘饿死’。从开源的第一天,我们的目标就是要成为最优秀的、被市场所认可的、最受欢迎的 API 网关。”他强调,Apache APISIX 不但做到了“全世界最活跃的开源 API 网关项目”,而且其活跃度领先地位也坚持了很长时间。


要做到行业领先地位,这意味着创业方向的选择也不能出错。王院生认为,选择创业方向往往有两个思考维度,第一是“世界需要什么”,然后是“我们能干什么”,有的时候,也可以反过来回答,先看看“我们强在哪?我们能干什么?”,再看看这个世界需要什么。


他解释称:“相对来说,API 网关是我们可以自信可以比别人做得更好的一个技术方向。而随着云原生、微服务技术的火热,行业对于流量管理的需求越来越大,API 网关从原本不被大家所重视、变成越发被重视的工具。”


据介绍,最初 APISIX 团队也有专门去做行业调研,确定了大方向没问题,并且看得到自己在这里面能够做哪些事、有什么机会、大概的可行路径等等,才最终决定要做,否则盲目往前推还是很危险的。“简单来说,世界需要一个非常优秀的 API 网关,因为之前的一些实现不能够满足现在一些产品上的更高的要求。而我们在这方面刚好有技术积累,因此也能保证我们在这个方向上做得比别人更好。”

如何让项目活跃


谈及开源项目怎么样才能变得活跃,王院生总结说,开源项目首先要能解决用户的实际问题,这样才能获得社区的认可。而要想把一个项目做成,项目与周边的关联也非常重要,比如周边的软件生态、硬件生态、开发者关系以及语言生态等,而不能是独善其身。


“以 Apache APISIX 这样的网关项目为例,它刚好处于充满连接的位置,它既可以连接安全、连接管理,也可以连接用户的业务,在这个位置上大家是可以去做很多的有意义的连接工作。就像我们公司的愿景和口号,期望能够为未来的数字世界提供更加稳定、安全、可靠的连接。”


除了要解决实际问题和建立关系,王院生还提到一些补充因素,比如项目的发起人/牵头人是一个什么样的人,是否理解社区或者理解开源精神,比如所属组织是否靠谱,对项目是什么样的态度等等。


但他还特别强调的一点是“开源项目的工程质量”:开源社区的参与人来自全球各地,如何能够保证大家在水平不一的情况下,对项目作出贡献之后,最终能产生好的结果。“这是软件工程经常强调的,我们到底以什么样的方式来保证工程的质量?不管是 Apache 的项目,还是 CNCF 的所有的项目,我们基本上没有见过哪个项目不包含完整的测试用例。甚至乎,对于开源项目来说,有的时候工程质量的重要性大于前面提到的问题。”


从所在赛道来看,API 网关算得上是小众细分市场,目前也出现了一些友商。但王院生认为,从另一角度看,API 网关的辐射范围很广,它可以负责 API 安全,也可以和人工智能体系对接,做流量识别的工作,而随着 5G 技术的不断成熟,边缘计算将逐渐兴起,这里又是 API 网关可以大展身手的地方,并且现在常提到的 Kubernetes 或者服务网格这些新技术,都少不了服务网关这重要一环。


面对市场竞争,王院生表示“把自己的事做好”就好。“观察友商是一方面,但既然我们现在有了一些领先性,那我们就要继续保持领先性,甚至是扩大。担忧并没有用,把自己的事情做好,看清楚这个世界和市场到底需要什么,给大家提供最好的选型,目前没有比这个更重要的事情了。”

写在最后:开源的魅力


再谈“为什么要为开源做贡献?”这个老生常谈的问题时,王院生笑说这应该是工程师问的问题。他表示自己就是一个典型的例子,参与开源社区,一方面是能够学习优秀的代码,提升自己的代码质量,这是性价比最高的能获取全世界最好的知识的快速渠道。另一方面,参与开源社区之后,可以接触到全球最优秀的工程师并与之交流,对于很多人来说,这在日常工作中是非常难得的机会。他感慨道,现在中国的程序员整体比较辛苦,期望能够做一些能让大家自己去主导推进的事情,并希望程序员都能成为发明家,而不是“码农”。


在开源大潮中,一个可喜的趋势是,越来越多的学生参与到开源社区。GitHub 2021 年度报告显示,GitHub 2021年度报告显示,所有贡献中有 27.9% 来自于学生,而所有开源项目贡献中超过半数均来自于学生。王院生表示,这是一个很好的信号,学生代表着未来。“从我们的观察来看,国内参加过类似‘编程之夏’活动的学生,确实在能力上会比同届的其他人更优秀些,希望能看到更多的学生去主动了解开源、参与开源。”


3 月 26 日,王院生将于 DIVE 全球基础软件创新大会的《基础软件人才培养和发展》专题中,带来“开源浪潮下基础软件人才培养和实践”的分享。希望借本次分享,能透过 Apache APISIX 开源项目的视角,系统阐述开源项目与基础软件人才的关系以及成长模式,让观众从实例中了解如何进行公开透明的全球协作,以及如何培养和吸引人才。“开源项目没有黑魔法,只有解决实际生产问题才有根基。”


采访嘉宾介绍:

王院生,API7.AI 创始人 & CTO,Apache APISIX PMC Member,《OpenResty 最佳实践》作者。


2022-01-11 18:365439
用户头像
罗燕珊 AI practitioner | Tech media

发布了 519 篇内容, 共 374.2 次阅读, 收获喜欢 839 次。

关注

评论

发布
暂无评论
发现更多内容

zookeeper分布式锁,java开发技术教程

Java 程序员 后端

技术分享| RTC通讯中常用的音频格式

anyRTC开发者

音视频 WebRTC RTC 语音通话 音频格式

WPF学习——依赖项属性,中软国际java面试流程

Java 程序员 后端

XXL-Job启动源码详解,Java日常开发的12个坑,你踩过几个

Java 程序员 后端

“ShardingCore”是如何针对分表下的分页进行优化的,深入理解linux内核架构

Java 程序员 后端

windows下nginx的安装及使用,linux实用教程第三版pdf

Java 程序员 后端

xxl-job 源码运行解析,java基础编程视频

Java 程序员 后端

yum安装ansible报错如何解决,自定义线程池面试题

Java 程序员 后端

ICCV 2021人脸鉴伪比赛全赛道冠军!AI反诈这块,百度算是弄明白了

科技热闻

《JVM系列》 第五章 -- 堆空间与对象分配,springboot项目分层架构

Java 程序员 后端

《重构 改善既有代码的设计 3》代码的可理解性应该是我们虔诚追求的目标

Java 程序员 后端

《零基础》MySQL GROUP BY 语句(十九),java并发编程实战pdf百度云

Java 程序员 后端

ZooKeeper实现生产-消费者队列,万字长文总结Java多进程

Java 程序员 后端

“情商比智商重要”,java面试代码题

Java 程序员 后端

《零基础》MySQL 连接的使用(二十),springcloud开发教程

Java 程序员 后端

【终极预告】Apache ShardingSphere Dev Meetup 彩蛋篇

SphereEx

开源社区 ShardingSphere Meetup SphereEx 热门活动

Zookeeper 集群部署的那些事儿,消息队列rabbitmq面试

Java 程序员 后端

《大型数据库技术》MySQL的进阶开发技巧,java基础知识重点总结pdf

Java 程序员 后端

《零基础》MySQL 安装(二),java高级程序设计作业系统

Java 程序员 后端

zabbix监控nginx、mysql、java应用,64位java8百度云盘

Java 程序员 后端

zookeeper原理篇-Zookeeper选举过程分析,深入linux内核架构pdf下载

Java 程序员 后端

《菜菜的机器学习sklearn课堂》逻辑回归,java教程百度云最新版

Java 程序员 后端

【C语言】指针总结,Java程序员如何有效提升学习效率

Java 程序员 后端

Zookeeper用作注册中心的原理,张孝祥jsp视频教程

Java 程序员 后端

“打工人”都在用的邮件使用规范,入职3个月的Java程序员面临转正

Java 程序员 后端

“穷苦乡村”小伙就得安于现状,你掌握了多少?

Java 程序员 后端

「JVM 系列」- JVM的类加载机制,java常用面试题和答案

Java 程序员 后端

“一学就会”微服务的架构模式,一名毕业三年的女程序媛面试头条经验

Java 程序员 后端

“数组&方法”常见知识分解,简述java编译原理

Java 程序员 后端

《Spring实战》读书笔记-第3章 高级装配,全网最具深度的三次握手、四次挥手讲解

Java 程序员 后端

【C语言】动态内存分配,nginx调优与监控

Java 程序员 后端

参与开源,让程序员都成为发明家而不是“码农”|DIVE 基础软件大会专访_行业深度_罗燕珊_InfoQ精选文章