从事大数据开发也十年多了,之前也改过Hadoop,HBase,Hive,presto的源码,但是也只是自己在实际工作中遇到问题,修改Bug,没有去社区提PR,也没有去提Issues等,包括最开始使用Hadoop 0.20的时候,那个时候NameNode是没有HA的,自己通过NFS(共享文件系统)和Zookeeper实现NameNode HA,代码也都是自己使用,对外保密,遇到问题也就是通过google搜索找解决方案,找不到的自己去研究源码想办法修改。
从去年开始接触Apache doris(源百度Palo项目),从一开始的使用,接触到社区的核心开发人员,被他们的热情和激情所感染,加上国内这几年开源的兴起,覆盖了各个方面,而且很多进入到了Apache顶级项目,这是一个好事,我国最近几年开源的第一个现状就是中国越来越离不开开源,各个公司都在大量的采用开源技术框架来解决自己的业务问题,同时也越来越多的开发这参与到开源项目中,为开源项目贡献代码。我们和开源世界的融合越来越深,当然,我认为这是绝对的好事。同时开源世界越愈发离不开中国。
其实中国开源问题也不少,比如把开源当成 KPI 项目;不知道该如何从头运营一个开源项目;不知道开源如何和业务做结合。只是为了KPI而开源,把代码朝Github上已上传就完了,后续也基本不维护,文档也少,还有就是国内的开发者语言使用上(不是说不能使用中文,而是要使用一种大家都在接受和使用的语言),在很多开源项目上下面经常来一段中文,老外也不认识中文,也没办法回答你的问题。要选择一种大家都容易接受的交流方式和语言。
说一下我这两年参与开源的感受,这两年给我最大的感受就是开心和成就,当你提交一个PR到社区,最后被采纳合并到主干,被更多的人使用,会非常开心和有成就感,在就是在这两年中深深的感受到了doris的快速发展壮大,越来越多的人参与到了社区的建设,我在工作之余会修改一些bug,完善社区文档,在群里帮助其他的使用者解答一些问题,从一开始大家遇到问题都是去艾特doris开发人员,慢慢大家开始艾特我的越来越多,我在时间允许的情况下都会尽可能的解答他们的问题,这两年认识了很多朋友,有技术大佬,也有和我一样使用doris的技术人员,和大家分享我在使用中的经验及方式,同时我也学到了很多,包括我没有遇到的一些情况,相互交流,成长很快。
在开始使用 Doris 的时候我是被 Doris 惊艳到了,而且社区的开发人员真的很 open ,一开始使用的时候遇到困难,社区人员积极帮我解决问题,当时我就想我要参与进去。促使我最开始贡献的代码是感觉 Doris 的 Web UI 太丑了,想先把这个给改进一下。在改进的过程中,发现 HTTP 这块是基于 Netty,页面都是写死在程序里的,很难做到前后端分离,这时候和社区的陈明雨讨论,想把这块使用 SpringBoot 进行重构,接口全部改成 Rest 方式,做到前后端分离,方便后面的扩展及其他小伙伴有定制的需求,这个想法也很快得到了社区的支持,最终我完成了这块的重构及改造,提交给社区并被社区采用。虽然我也写了Web UI因为社区这块采用的技术栈是Reactjs,我是使用VUE,最后社区用Reactjs重新写了UI
后面我就不断地参与到社区中,包括我的团队提交 Flink Doris Connector 、 Bug修改、帮助社区完善文档、在社区群里解答一些小伙伴的问题等。到现在我团队的小伙伴和百度doris团队,网易有道课堂团队一起去开发Doris Manager ,实现doris一键自动化安装部署,启停,配置,监控,运维等,小伙伴们激情很高,情愿牺牲自己业余的时间去做这些事情,
这两年对断断续续提交PR,发现居然提交了不少,毕竟还有工作,不能全职的参与进去,截图为证,哈哈哈:
同时我自己也开源了自己写的一个BI可视化的项目在Github上,大家也可以拿去使用或者去提交PR完善它:自己写的一个BI可视化系统(支持Apache Doris)hf200012/oceanus.bi (github.com)
就像我在社区在对我做访谈里说的那样,通过为开源项目做出贡献,最终能与其他志趣相投的人进行协作,很多人技术人的深厚友谊都是通过共同参与开源项目所建立起来的。开源项目一般都会有一个和谐、热心的社区,在社区里我们可以不断提升技能,大家会把自己的工作成功和经验分享出来,这样大家就不再花费时间去探索相同的问题,大大降低重复劳动的现象,最后你可在社区中不断提升能力,并树立信心。
帮助他人解决问题也是一种乐趣,在一次成功 PR 过程后,或许会暗喜很久,毕竟大型的开源项目里都是大型团队,他们在认可你做出的努力,对编程人员或设计人员的鼓舞或者说精神支柱,就是他们设计的软件受欢迎,那是一种难以言喻的体验,在提升技能同时也能从帮助他人树立自信心。
还用社区访谈的时候那句话结尾吧:一个人可能走的更快,一群人会走的更远,希望越来越多的人参与到开源中,一起做开心,有趣的事情