科普丨程序员Apache开源社区进击之路
来源:互联网 发布:拒了华为海洋网络 编辑:程序博客网 时间:2024/05/09 13:21
链接:https://zhuanlan.zhihu.com/p/24487169
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
与顶尖程序员交流合作进步有多快?
自己的代码被上亿用户使用有多爽?
面试时甩出一句『哦,我在Apache有个开源项目,你可以去瞧瞧』有多酷?
作为一个有理想有情怀的程序员,还没有加入一两个顶级开源社区吗~
BitTiger 带你开启世界知名开源社区Apache的进击之路。
『补丁组织』的一点儿历史
话说上世纪90年代,一群开发爱好者在前人的基础上搞出了一个非常厉害的Web服务器。他们仰慕北美勇猛剽悍、充满耐力的印第安部落Apache,便叫这个新版本的服务器ApacheServer。
“Apache Server” 与“A Patchy Server”(一个补丁服务器)谐音,用来称呼这个大家不断打补丁(Patchy)的产物十分贴切。这群开发者们也开始骄傲地自称为“ApacheGroup”。
享誉世界的Apache基金会
『补丁组织』业务发展、项目增加,1999年非盈利组织Apache软件基金会(ApacheSoftware Foundation,简称ASF)正式成立,为Apache开源项目提供组织、法务上的支持。
现在的Apache社区已有来自六大洲的5000多名提交者 (committer)!Apache出品的企业级软件大受追捧,尤其是大数据方面,拥有一批炙手可热的顶级项目。没听说过五个以上Apache项目的同学请自行面壁!
做开源软件的 ASF 一点儿都不差钱。Google、Facebook、Yahoo!等各大科技公司纷纷解囊,华为也是黄金赞助商之一。
Apache社区进击路线
Apache社区的管理体系那是相当的严格,不同角色有不同的担当和权利。融入Apache社区就像打怪(修bug)升级一样,要想提高等级就必须先为项目努力奋斗。所谓 “Those that prove they can do, get to do.” 这也是Apache之道中『任人为贤』(Meritocracy)的绝佳体现。
初入Apache
凡是使用Apache产品的人就是用户 (user)。用户可不光是taker,他们是宝贵意见的来源,对改进产品大有助益。想要了解Apache的开源软件,不妨先挑一个用用看吧。
当你开始在开发者邮件列表 (developer mailing list) 里参与讨论并提供补丁、文档和建议,就会成功晋升为开发者 (Developer or Contributor)!晋级开发者可不是那么容易的事儿。你需要有不断钻研的精神和独立思考的能力,去发现可以改进的地方。有时候,光是理解开源项目里成百上千的文件就足以让人懵逼了。毕竟大部同学都还只是停留在使用Apache开源产品的层面上。在简历里拥有『Apache开发者』的头衔绝对会让HR眼前一亮!
请注意,所有的 Apache沟通、合作都是通过邮件列表完成的!Apache社区里有句话一定要记牢:“若没有在邮件列表中讨论过,则当没有发生过。”参与Apachemailing list的讨论真是很重要的。
Apache的提交者
当你不断修炼 (提交Bug报告、贡献代码、参与邮件列表讨论、参与社区建设),就有可能受邀成为提交者 (Committer)。提交者可以算是Apache社区里的正式成员了,不但有代码仓库直接写入权限,还可以拥有一个http://apache.org域名的专属邮箱!
你造吗,Apache社区每个月的代码提交行数是16000行!这可不是随便的16000行代码——Apache提交者需要确保提交的代码足够清晰易读,保证高质量。
Apache寻找的是能持续做出贡献的成员,就像Apache部落一样具有超凡耐力、持之以恒。Apache虽有项目三百,可平均每月只增加15个提交者,且大都参与新设项目。已有项目一年大概只增加一两个提交者。成为Apache的提交者是一件非常有挑战性和令人自豪的事啊!
提交者须签订贡献者协议许可 (CLA),因为Apache的产品都遵循Apache许可证(Apache License) 。Apache许可证是世界使用量前三的开源许可证,它让写代码的人保有专利又授权用户免费使用。用户使用时必须放置许可证,并且要说明修改的部分。这样可以帮助提交者了解哪些项目用了自己的开源内容、修改了什么,十分有利于项目的改进。
进入PMC
成为有影响力的提交者后可以被选入项目管理委员会 (Project ManagementCommittee, 简称PMC) , 晋级为PMC成员(PMC Member)!PMC 作为一个整体,独立监管一个或多个项目。除了PMC,就算是ASF的理事会(Board) 也不能干涉项目社区内的具体事宜。
若是能成为PMC 主席 (PMCchair) ,那可就是ASF的副总裁 (Vice President)了!
PMC主席直接对理事会负责,是Board和PMC之间的桥梁。在Apache的176名PMC主席中,华人只有7位。
其中值得一提的是Daniel Dai.他是Apache顶级项目、大数据领域最火工具之一 Pig 的PMC 主席,也是Hive项目的提交者。 Pig是用来快速、轻松处理大规模数据的高级查询语言。Pig之所以如此命名,是因为它具备吃掉所有种类数据的能力。雅虎和推特都采用了好胃口的ApachePig.
另一位华人Jun Rao是顶级项目Kafka的PMC主席。Kafka是一个横向扩展的消息处理系统。LinkedIn部署的Kafka每天处理的消息已超过1.1万亿(一个“T”加上四个逗号!)。Kafka还有Netflix、Uber、Cisco 、GoldmanSachs等各种大牌用户。
Administration roles
从用户到PMC 主席,都属于Apache社区里跟项目开发有关的角色。在Apache社区内贡献巨大最终可成为法律意义上ASF的『股东(Shareholder)』!也就是Apache基金会成员(ASF member)。 ASF成员可以选举或进入理事会 (Board of Directors, 简称Board)、有权提名新项目进入孵化器(incubator)。目前Apache有487名ASF成员。
理事会负责监管ASF内各种商务和日常事务,包括给项目分配资金。理事会也选出公司高管(Officer),分管ASF财务、法务、市场、筹款等事务。但关于社区开发、产品发布都是由PMC一手决定的。
社区胜于代码CommunityOver Code
社区胜于代码是ASF的核心原则。Apache Web服务器项目负责人BrianBehlendorf曾在采访中提到,健康的社区远比优秀的代码重要——代码太烂可以重写,但社区太烂,代码也会付之东流。Apache如今不只是一个服务器、一个社区、一批开源项目的代名词,它已成为一种协作开发的典范。
除了Apache社区,ASF还会举办Apache 技术研讨会议(ApacheCon),让开发者和用户共聚一堂。ASF 也会举行其它大型会议和活动,包括BarCamps、Hackathons、MeetUps、Key Signings等等,活动范围覆盖北美、欧洲、亚洲。想与大牛交流的小伙伴们赶紧关注活动相关信息哦!
跟Apache PMC Chair 成为Apache Contributor,BigDataEngineer直通车
参考资料:
https://zh.wikipedia.org/wiki/Apache%E8%BD%AF%E4%BB%B6%E5%9F%BA%E9%87%91%E4%BC%9A
http://www.slideshare.net/willem.jiang/apache-8111328
How the ASF works
The 10 Best Open Source Projects You Should Be Volunteering To Help With
“一片羽毛的故事”:Apache软件基金会成立15年-观点 ◆ 热议|Linux.中国-开源社区
17个Apache基金会的运营之道
[原创]Apache Pig的一些基础概念及用法总结(1)
Apache Kafka现在在LinkedIn每天处理1.1万亿条消息
程序员不可不知的版权协议
- 科普丨程序员Apache开源社区进击之路
- 向中级程序员进击之路
- JAVA程序员的进击之路——致一个程序员该有的自律
- 进击的大神之路
- 开源社区之美
- 架构师进击之路一--启航
- JavaScript进击之路(1)
- JavaScript进击之路(2)
- 进击的程序员
- LUPA开源社区 源码之家
- Mysql之字符串函数by菜鸟的进击之路
- Two Sum-LeetCode-弱菜进击之路
- 攻陷三次元! 二次元动漫的进击之路
- kafka进击之路(一) —— 入门
- kafka进击之路(二) —— 架构设计
- flume ng进击之路 (一)—— 入门
- node进击之路(1)——调用函数
- node进击之路(2)——调用模块
- POJ3278 Catch That Cow(广搜BFS)
- java 判断字符串中是否包含emoj表情及过滤,完美解决。
- 简答——进程死锁
- SPI协议内容及STM32 SPI的操作
- Java_Json转换_FastJson 用法调研
- 科普丨程序员Apache开源社区进击之路
- 进入recovery进行手机备份
- 树莓派探空气球
- scala 学习(八)——lazy加载和try
- 【解密】jmeter随笔(30)-读取自己jar包配置的代码实现
- 性能优化十之UI卡顿之CPU与GPU优化
- 【操作系统】抖动与工作集
- android 颜色叠加
- PYTHON 正式起航!