文档章节

一名开源小白的Apache成长自述

微服务框架
 微服务框架
发布于 06/20 11:25
字数 1615
阅读 488
收藏 4
点赞 0
评论 4

      

    

    今天收到了来自Apache Vote我成为Serviceomb项目Committer的邮件,代表自己的贡献得到了充分的肯定;除了感谢团队的给力支持,我更希望将自己的成长经历——如何践行Apache Way的心得介绍给大家,让大家爱上Apache开源社区,也能和我一样成长为自己喜爱项目的Committer。

根据个人贡献获得价值(Government By Merit)    

          回忆我刚参与ServiceComb项目,面对上万行的存量代码,总觉得无从下手,甚至认为开源社区高手如云,如果没有深厚且对口的技术功底,还是不要来掺和了。

        在这个困难而关键的时候,社区导师给了我明确的指导——不要怕,从小事做起,不要“善小而不为”。于是我静下心来,在Jira上寻找最简单的任务,主动请缨的第一个任务是支持配置兼容,具体需求是cse.xxx配置项和servicecomb.xxx配置项要具备等同效果,经过一番努力,成功Merge PR ;之后我又接下另一个简单任务,增加一个Annotation用于支持Json String作为请求参数……

        Apache Way非常看重个人贡献,没有贡献,一切无从谈起,与开源软件同行,不仅看你获得了多少,更要坚持长期贡献,这是它与商业软件最大的不同。贡献并不区分大小,无论是增加重大特性,还是小小的改进、Bug Fix和修订文档错误,这些同样是项目茁壮成长的关键。

        实际上大多数开源爱好者都是从修订文档错误开始的,例如改正错别字、格式不正确以及订正描述等等,我对ServiceComb的理解也绝大多数来自这方面的工作;这样不但能够在阅读文档的过程中更快的了解技术细节,也比较容易入手做出贡献。

        总之坚持下来,个人积累的贡献慢慢变厚,获得Apache的认可自然水到渠成。

社区驱动(Community)

        参与社区是技术成长最快的方式之一,Follow Apache社区的方式有订阅邮件列表和加入Gitter聊天室;从看大家讨论(讨论邮件一般会使用[Discussion]开头),到回答大家的问题(回复邮件和发送Gitter聊天),相信用不了多久你就能收获颇丰,并冒出自己的想法,迈出第一步提交第一个PR也就不难了。

        ServiceComb作为一个微服务一站式解决方案,融合侵入式、非侵入式场景并支持多语言,解放开发者,帮助用户和开发者将企业应用轻松微服务化和上云;大家在这里讨论的话题、发起的投票、以及提交的代码,无不与微服务密切相关。在这个社区中我不但学习到了知识,完成了开源(也包含微服务)小白的蜕变,还进一步接受了开源的洗礼——前辈指导我进步,我将所学传递给新人;这个过程中我结识了很多新朋友,大家互通有无,不但极大的开阔了视野,也提高了自己的社交能力。

        Apache开发者来自全球,社区大多都是用英文来交流。通过阅读英文资料,使用英文在Gitter[2]上与开发人员直接交流,通过英文邮件来探讨问题,在不知不觉中自己的英文水平也大大提高了。

 协作开发(Collaborative Development) 

        这也是我极力推荐参与开源社区开发的重要原因之一,当你提交PR后,无论代码有多么烂,你总能收获宝贵的Comments,不花钱获得编程大师的指点——教你怎么写出优秀的代码,这是多么合算的买卖!

        我在参与ServiceComb社区前,只知道Java基本语法,IDE不熟练(之前一直是用VS写C#,不使用Eclipse和IntelliJ IDEA),不会Git,不懂Maven,还能有更糟糕的起点吗:)

        不用担心,社区会指导你。我前文提到的第一个简单的任务,花费了将近一周时间,被打回来了四五次后才被Merge;一个PR收获60+ Comments也是家常便饭。这个过程中我的Java水平成长得飞快,不久后就能独立承担新特性的设计和开发——Metrics,当然,完成这个新特性的过程中Committer和其他开发者给予了很多支持,所以,请大胆的提交你的第一个PR,成为一名Contributor吧。

民主,开放和透明(Consensus, Open and Transparency) 

        在Apache社区里投票至关重要,你可以感受到你的建议将被充分重视,我很喜欢这种参与感;大家的讨论和建议也完全公开透明,并且能够长时间通过邮件列表查询到,沟通效率非常高。所以大家多多参与,一定能收获惊喜,从万能的社区里寻找自己想要的答案,请记住,当你对某个问题产生困惑,即使是强大的StackOverflow也不会有原作者的答复更为准确。

 我可以做哪些贡献 

           你想快速上手,可以在JIRA列表中认领newbie的任务

            你规划能力强,可以在邮件列表里为ServiceComb的发展出谋划策

            你擅长设计,可以为ServiceComb的网站和VI提出自己的意见

            你热爱写作,ServiceComb更是欢迎你来补充文档,将ServiceCenter的英文文档翻译成中文或许是个不错的上手选择[7]。

写在最后

         最后,我想说从一名开源小白成长为Apache Committer并不是无比艰难又遥不可及的事情,只需要日积月累的在社区中投入一点业余时间,就能梦想成真。当然最好找到自己感兴趣的社区,这会让这段旅途更加愉快,也能交到更多志同道合的的朋友。

 

广告时间:我所在的Apache ServiceComb(incubating)正持续招募贡献者,非常欢迎大家加入,让我们一起构建更好的微服务框架,点击了解更多

© 著作权归作者所有

共有 人打赏支持
微服务框架
粉丝 47
博文 11
码字总数 26220
作品 1
深圳
运营/编辑
加载中

评论(4)

微服务框架
微服务框架

引用来自“EumJi”的评论

姜老师很和蔼
哈哈,天天打交道的呢,进到社区里面可以直接交流
EumJi
EumJi
姜老师很和蔼
微服务框架
微服务框架

引用来自“undefine”的评论

加油!
感谢您的支持!
undefine
undefine
加油!
一名Java架构师分享自己的从业心得,从码农到架构师我用了八年

工作了挺久,发现有个挺有意思的现象,从程序员、高级程序员,到现在挂着架构师、专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了。 这些疑问有些来自于跟小伙伴的交...

Java高级架构师进阶技术分享
01/07
0
0
【开源访谈】Apache Eagle 联合发起人陈浩:如何发起和维护开源项目

Apache Eagle是开源分布式实时Hadoop数据安全方案,支持数据行为实时监控,能立即监测出对敏感数据的访问或恶意的操作,并立即采取应对的措施。它是如何成为Apache 顶级开源项目的呢?在发起...

OSC源创君
2017/06/04
1K
0
【开源访谈】Kyligence 软件架构师李栋:开源是程序员巨大的财富

作为领先的大数据OLAP分析平台,Apache Kylin正逐渐从Hadoop上的传统OLAP演变为一个实时数据仓库。尤其是新引入的Spark Cubing构建引擎,大幅度提升了Cube预计算过程的效率。在这个过程中架构...

OSC源创君
2017/05/04
2.8K
3
跟风Google Brain,Facebook AI研究机构启动见习项目

2015年,Google Brain公布了其帮助机器学习研究者进阶的见习项目,研究内容灵活、薪资福利又高、发展机会应有尽有,瞬间吸引了大量的申请者,其中甚至还有Node.js之父Ryan Dahl,AI科技大本营...

dqcfkyqdxym3f8rb0
2017/12/06
0
0
程序猿成长计划--growing-up

程序猿成长计划 程序员成长计划包含了作为一名程序猿成长过程中的所学,我把这些以教程的形式开源出来,供大家一起学习、补充,共同成长。 三十分钟学会AWK Docker学习笔记-基础命令 一小时学...

mylxsw
2016/11/30
704
0
微信开源围棋 AI PhoenixGo,还能不能让人类好好下棋了?

5月11日,微信翻译团队正式开源其围棋AI程序 PhoenixGo。PhoenixGo 基于 AlphaGo Zero 论文实现,具有超越人类棋手的围棋功力,在2018年4月于福州举办的世界人工智能围棋大赛上获得冠军。 微...

雨田桑
05/12
0
0
【开源访谈】eBay 刘力力:Griffin 在 Apache 孵化背后的那些事

Griffin 是一个应用于分布式数据系统中的开源数据质量解决方案,在 Hadoop、Spark、Storm 等分布式系统中,提供了一整套统一的流程来定义和检测数据集的质量并及时报告问题,于2016年12月提交...

王练
2017/05/17
1K
1
程序猿自述:我是如何工作三年在北京买房的

图片发自简书App 我叫张小北(化名),经过3年的努力,我住上了北京的房子。 3年前,我毕业于上海一所211、985重点学校,是计算机科学与技术专业的一名优秀毕业生。因为女朋友在北京工作,毕...

来年秋天
2017/11/27
0
0
智能设备后台服务器开发需要的技术?

我在服务器端开发是新手,有很多不明白的地方,希望多年开发服务器的高手指点下. 我们的服务器端需要连接很多嵌入式的设备(单片机或者嵌入式linux),通信的方式可能为TCP/UDP HTTP Websocket等方...

vector_ming
2016/02/19
216
2
开源专业人员必备的四项非技术技能

对于期待更上一层楼的开源专业人员来说,增强自身的一些软技能是让自己对雇主来说不可缺少的一个好方法。如果专注于这些技能,你既可以在职业生涯上求得发展、吸引潜在雇主,又没必要学习一些...

linuxprobe
2016/07/25
2.5K
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

NNS拍卖合约

前言 关于NNS的介绍,这里就不多做描述,相关的信息可以查看NNS的白皮书http://doc.neons.name/zh_CN/latest/nns_background.html。 首先nns中使用的竞价货币是sgas,关于sgas介绍可以戳htt...

红烧飞鱼
26分钟前
0
0
从MySQL全备文件中恢复单个库或者单个表

从MySQL全备文件中恢复单个库或者单个表 提取建库语句 sed -n '/^-- Current Database: db_cms/,/^-- Current Database: `/p' backup.sql > db_cms.sql & 提取ddl sed -e'/./{H;$!d;}' -e ......

yysue
58分钟前
0
0
Java IO类库之管道流PipeInputStream与PipeOutputStream

一、java管道流介绍 在java多线程通信中管道通信是一种重要的通信方式,在java中我们通过配套使用管道输出流PipedOutputStream和管道输入流PipedInputStream完成线程间通信。多线程管道通信的...

老韭菜
今天
0
0
用Python绘制红楼梦词云图,竟然发现了这个!

Python在数据分析中越来越受欢迎,已经达到了统计学家对R的喜爱程度,Python的拥护者们当然不会落后于R,开发了一个个好玩的数据分析工具,下面我们来看看如何使用Python,来读红楼梦,绘制小...

猫咪编程
今天
0
0
Java中 发出请求获取别人的数据(阿里云 查询IP归属地)

1.效果 调用阿里云的接口 去定位IP地址 2. 代码 /** * 1. Java中远程调用方法 * http://localhost:8080/mavenssm20180519/invokingUrl.action * @Title: invokingUrl * @Description: * @ret......

Lucky_Me
今天
1
0
protobuf学习笔记

相关文档 Protocol buffers(protobuf)入门简介及性能分析 Protobuf学习 - 入门

OSC_fly
昨天
0
0
Mybaties入门介绍

Mybaties和Hibernate是我们在Java开发中应用的比较多的两个ORM框架。当然,目前Mybaties正在慢慢取代Hibernate,这是因为相比较Hibernate而言Mybaties性能更好,响应更快,更加灵活。我们在开...

王子城
昨天
2
0
编程学习笔记之python深入之装饰器案例及说明文档[图]

编程学习笔记之python深入之装饰器案例及说明文档[图] 装饰器即在不对一个函数体进行任何修改,以及不改变整体的原本意思的情况下,增加函数功能的新函数,因为这个新函数对旧函数进行了装饰...

原创小博客
昨天
0
0
流利阅读笔记33-20180722待学习

黑暗中的生物:利用奇技淫巧快活生存 Daniel 2018-07-22 1.今日导读 如果让你在伸手不见五指的黑暗当中生存,你能熬过几天呢?而大千世界,无奇不有。在很多你不知道的角落,有些生物在完全黑...

aibinxiao
昨天
6
0
Hystrix降级逻辑中如何获取触发的异常

通过之前Spring Cloud系列教程中的《Spring Cloud构建微服务架构:服务容错保护(Hystrix服务降级)》一文,我们已经知道如何通过Hystrix来保护自己的服务不被外部依赖方拖垮的情况。但是实际...

程序猿DD
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部