受访者 | 张乎兴
采访者 | 伍杏玲
出品 | CSDN(ID:CSDNnews)
Red Hat 创始人 Bob Young 曾说过:“要想对世界做出实质性的改变,开源需要做到这两点:一是要让人们广泛使用开源软件;二是要让用户知道并理解这种软件开发模式能给他们带来的益处。”
有一位阿里员工便是如此做的:历经四年,他从零基础的开源小白成长为 Apache Member,并致力推广和孵化国内优秀的开源软件,吸引更多的中国开发者加入开源行业中。
他便是 Apache Dubbo 项目的负责人、阿里巴巴技术专家张乎兴。
从开源小白到 Apache Member
张乎兴花名“望陶”,含义是“仰望陶渊明,渴望追求淡薄雅致的生活”。可他这一路走来,却是稳扎稳打的:2014年,张乎兴加入阿里巴巴中间件团队才开始接触 Tomcat 的开发和运维,从零开始走上开源开发。
作为小白,他从查看 Apache 的新用户指南开始,到第一次谨慎地修改提交 Bug 后,得到社区的响应他感到很高兴,随后他积极参与到社区的讨论中……
当时阿里内部自己的 Tomcat 版本,与开源的 Tomcat 版本之间有些差异。作为 国内参与开源项目数量最多的企业, 阿里内部开源氛围浓厚。于是张乎兴主导将这两个版本合并成一个,方便大家的维护和使用。
公司鼓励开源、工作内容大部分涉及开源软件、自身从中获得兴趣和个人价值体现,这几个方面形成一个正反馈效应的循环,使得张乎兴不断成长:2016年,张乎兴成为 Tomcat Committer;2017年,他成为 Tomcat PMC Member。同年,他开始负责 Dubbo 的开源维护工作,随后 Dubbo 进入孵化器。
2019年,在他成为 Apache Member 后没多久,Dubbo 毕业。 从他身上看到,技术人与技术是共同成长的。
2018 年,Dubbo 进入孵化器邮件
Apache 顶级项目是如何炼成的?
一个 Apache 开源项目从筹备到孵化,到社区发展,最后到毕业,这过程并不容易:据张乎兴统计,2017年有 17 个项目从 Apache 毕业,2018 年有八个项目,2019 年截至到发稿为止,仅有五个项目毕业。2018 年八个项目的平均耗时是 28 个月,而 Dubbo 是在 2019 年毕业的项目中耗时最短:只花了 15 个月的时间,与今年五月毕业成为 Apache 顶级项目。
为什么 Dubbo 能这么快毕业?
第一, Dubbo 邀请了三 位经验丰富的导师做指导: Justin Mclean( Apache 基金会孵化器的 VP )、 Mark Thomas( Apache 基金会董事会成员 ) 、Dave Fisher( 资深导师 ) ,张乎兴表示在导师们的指导下就会少走些弯路。
第二, Dubbo 一直有持续地 迭代 发布 ,一旦遇到问题就马上修复,同时引进更多的开发者参与到 release 的过程中,一起发现和修复问题,再将这些经验沉淀形成一个有参考意义的文档。有意思的是,有其他社区的项目孵化时,也来参考此文档。
第三,不断地扩大社区的影响力,吸引更多开发者参与。在之前 Dubbo 发布的 11 个版本里,是由 7 个不同的开发者完成的,这种情况比较难得的(因为一般项目是 2-3 位开发者)。
在社区里,开发者可以清晰地知道自己的成长路径:入门-User-Contributer-Comitter- PMC Member 是怎么走的。当然,社区在宣传上也是不遗余力的:例如 在一二线城市举办 MeetUp 活动,吸引更多的开发者进社区。
在 Dubbo 的孵化这过程中,张乎兴说孵化开始的 release 是个重要的环节:需要确保准确的 License 和版权声明、符合规范的代码及依赖、准确一致的签名。张乎兴团队在这个过程里踩了不少坑:
在项目发布时,他们遇到一个 License 问题,前端需要 JavaScript 的依赖,在一个间接传递的依赖有一个简单的功能:一段文本按照一定的规律换行,并且在注释写的是输入一段文字输出结果。可由于这段文字是从罗素的书里摘抄出来,这具有文字版权的。
由于 Apache 对于商标和 License 的要求很严苛,这个依赖还隐藏得很深,张乎兴团队只能通过各种方式紧急联系依赖的原作者。
还有孵化项目对知识产权的清理也是很重要,稍不注意便会掉入大坑:团队之前已将 Dubbo 的核心代码迁移到 Apache ,但有一些 Dubbo 大生态下的项目,是放在 github.com/dubbo 下的 group,由于“Dubbo”商标已捐献给 Apache,是不允许在第三方使用的。
没办法,张乎兴团队只好将这个 group 下所有的项目清空,能捐献的项目一并捐献给 Apache,联系不上作者的项目就先迁移到其他 group。
目前这部分的工作仍在陆续迁移中。
建议开发者:
与其浪费时间抱怨 工具 ,不如动手将它变好
面对 Dubbo 毕业,张乎兴在自豪之余,坦言“能够做到这一点的项目,国内还是并不多的。”
探索其中原因时,从项目上,张乎兴认为中国本身是有很多优秀的项目,但可能中国开发者在观念上较含蓄,不大愿意去宣传,所以外界不大了解。
从国内开发者投入到开源项目的时间上看,张乎兴认为国内开发者很多时候忙于公司的业务,而公司的 很多 项目和开源项目本身是割裂的,所以大家很难挤出时间来持续投入到开源项目里。
在做项目时,大多 程序员 先从各种各样的框架和依赖上挑选合适的,当遇到不好用的框架时,可能会有人抱怨吐槽:这个 工具 不好用。便舍弃不用它,再花时间寻找更好的框架。
但 张乎兴表示, “与其抱怨,不如亲自动手把它变得更好”。
在这个时候,他建议开发者可以换一种想法:我能不能尝试将工具的问题修复? 让框架变得更好用一点?
这样下来开发者不仅能让自己的开发效率提升,工具也会因为自己的技术变得更好用,团队和公司的人均会受益。开发者还可以从这项目入手,参与进开源项目来。
Apache Member 的使命:成为世界和中国的开源桥梁
目前张乎兴不仅在工作上忙开源项目,业务时间也会用在开源社区上:修复 Bug、回复邮件、处理问题等。令他感到欣喜的是, 在从事开源软件的这几年里,他看到中国越来越多的开源软件,越来越多的公司重视开源。
谈及未来计划,张乎兴将自己比作一座“桥梁”:期待能更好地连接世界和中国的 开源事业 。
在成为 Apache Member 后,张乎兴可作为导师协助更多的项目进入孵化。还有, 他希望能将自己的经验和方法分享出来,帮助国内开源项目去提升自己的影响力和话语权。
而作为 Dubbo 的负责人, 未来 张乎兴该 如何规划才能让其发挥更大的社会价值呢?
未来 Dubbo 的三个发展方向
张 乎 兴介绍道, Dubbo 将从这三个方向深耕:核心、生态、影响力。
一、在核心上,Dubbo 分为 2.7 版本和 3.0 版本。其中,2.7 版本将会主打云原生的微服务,并做到和 Spring Cloud 的应用能相互调用,因为 Dubbo 的出厂模型需要和 Spring Cloud 的出厂模型统一起来。张乎兴透露,这个功能将会在 2.7.3 版本或者 2.7.4 版本上支持。还有 Dubbo 在云原生下的部署服务发展。
而 3.0 版本将会主打技术的先进性,将会做响应式,支持React,拥抱标准协议HTTP2.0,还会考虑和 gRPC 的支持,在大规模复查的场景下,能自适用地做到熔断限流和更智能的负载均衡等。
二、在生态上,Dubbo 支持多语言,目前已支持六种语言:Java、JS、 Go 、 Python 、 PHP 、Node.js。后续会完善 Go 和 Node.js 语言的支持,做到目前在 Java 上的功能也能在Go 上支持。
还有,他们将继续演进 Dubbo 的微服务,包括监控诊断、微服务分布式、协议的转换(例如将 HTTP 的协议转换成 Dubbo 的协议)、服务的权限控制等功能。
三、在影响力上,Dubbo 将会持续地做 MeetUp 活动,还可能办技术大会,针对学生开发者,阿里举办有夏令营项目,这样学生开发者也能参与进技术研究上来。
从上面可以看出,无论是 Apache Member 张乎兴,抑或是顶级开源项目 Dubbo,均是在努力推进开源软件对世界的改变。
【End】
热 文推 荐
点击阅读原文,输入关键词,搜索CSDN文章。
你点的每个“在看”,我都认真当成了喜欢
以上所述就是小编给大家介绍的《你还在抱怨开发工具,为什么不动手优化? | 人物志》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Structures and Algorithms with JavaScript
Michael McMillan / O'Reilly Media / 2014-2-22 / USD 28.51
If you’re using JavaScript on the server-side, you need to implement classic data structures that conventional object-oriented programs (such as C# and Java) provide. This practical book shows you how......一起来看看 《Data Structures and Algorithms with JavaScript》 这本书的介绍吧!