前言
作为一名职业程序员,如果去除待遇,薪资等等的因素考虑,从纯技术的角度出发,如何才能达到一个比较高的境界呢,答案是与最顶尖的那一批人交流合作,当然,最顶尖的那批人很多几乎估计都不在身边,而且大多在国外。那么难道就没有办法了吗,不是的,不要忘了还有网络这个东西,可以通过社区,邮件进行交流,提出自己的想法。这些人往往活跃于许多开源社区,比如Apache.下面有很多的子项目,都是非常棒的系统。所以本文的1个关键词,开源社区。所以说,如果一个普通开发者能够向开源社区打出自己的patch(补丁),并且此部分代码能够被merge进主干代码中,将会是一个开发者非常令人骄傲的一个事情。不要以为这个事情很难,开源社区的代码中也可能出现比如显示文字出错这样的低级错误,如果被你发现了,也是一个patch。总的一句话,能够向开源社区打patch的人,也许不能说明他又多强,但是一定程度上能说明他是具有钻研精神和思考能力的,毕竟大部人都还只是停留在使用这些开源社区的产品的层面上,对于内部复杂的设计与实现却只是略知一二。下面就来讨论一下,作为一个非Commiter,如何向开源社区提交代码,打出自己的patch。
打Patch的前提
首先打patch的一个前提条件是建立在你已经拥有分析和改造已有开源系统代码的能力之上。但是鉴于开源系统本身的复杂性,你可以专注于研究其中部分模块代码。比如Hadoop代码,你可以选择研究HDFS,或者说YARN