BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

QCon杭州讲师专访:Red Hat首席软件工程师方越

| 作者 彭超 关注 0 他的粉丝 发布于 2012年9月29日. 估计阅读时间: 7 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

编者按:由InfoQ中文站主办的2012杭州QCon即将召开。我们对一些专题的讲师进行了采访,谈谈他们要讲的议题。

本次采访的是Red Hat首席软件工程师方越,在此次QCon,他将会主持“Java20年”的专题,并会做主题为“开源,从另一个角度看世界”的演讲。

方越自2005年以来全职参与企业级中间件领域多个开源项目的开发,是WebService/SOA/ESB/OSGi等领域的专家。方越目前活跃在多个有影响力的国际开源项目中:

  • Apache CXF initial committer/PMC member
  • Apache Karaf initial committer/PMC member
  • Apache Servicemix committer/PMC member
  • Apache Camel committer
  • Apache Felix committer
  • OPS4J Pax Web committer
  • OPS4J Pax Logging committer

方越70年代出生于中国中部的一个城市,现居住在北京,日常在家工作。工作之余,他很享受和刚满周岁的儿子一起玩耍的时光。他的微博是@Freeman小屋,他的博客在blogspotsina

InfoQ:您将在10月份举行的QCon大会上演讲。能介绍一下您关注的领域吗?

方越: 我主要关注企业级中间件领域需要用到的技术,主要集中在ESB,SOA,例如WebSerivce,OSGi容器,EIP等等。

InfoQ:开源的目的是要解构商业社会吗?

方越: 不是。我认为开源是商业社会的有益补充,甚至本身就是商业社会的一部分。有这样一种开源商业模式,围绕开源社区和开源软件,通过雇用主要的开源项目开发者,向外提供付费的商业服务,这种付费服务包括订阅、咨询、培训等。在我看来,这种开源商业模式下,开源项目和开源社区因为有了商业公司的介入更加活跃,开源开发者有了稳定的收入获得了可持续发展,付费用户由于有了商业支持能更有效地使用开源软件,非付费用户也能从活跃的开源社区获得支持,构成了一个共赢的生态环境。

InfoQ:互联网产品开源与不开源的利弊有哪些?

方越:我并不很熟悉互联网产品,因此这个回答我不想限定于互联网产品,从软件本身谈谈开源的优点,我想这个也适用于互联网产品。

  1. 成本优势,不是说开源不用花钱,而是说你在确定某开源软件能否符合你的需求之前不需要一次性投入太多的钱。
  2. 代码可见,可深度定制。
  3. 系统高度自由,无需绑定到特定厂商。
  4. 更敏捷, 一个活跃的开源社区,对问题的反馈速度超乎你的想象,有的时候你的问题报出来,半天就给你解决了,因为有源代码,你也可以很方便的自己打patch,编译和替换有问题模块。
但是要想用好开源软件,需要自身的研发团队有较强的技术实力,具备把开源软件吃透的能力。 更多的时候,开源项目(尤其是企业级应用)的背后都有商业公司的支持,你可以购买相关的服务,这样你的问题可以得到更有保障的解决。开源可以为有钱的人省时间,可以为有时间的人省钱。

InfoQ:怎样加入一个开源项目?

方越: 我认为正确的使用邮件列表参加讨论是一个好的开始。可以首先选择自己工作中用到的或者是感兴趣的项目, 订阅该项目的邮件列表,看别人是怎么讨论的,然后参与讨论,比如提问题,回答问题。参与邮件列表的讨论是一个很好的提高自己的方式,通过讨论,你可以极大的扩展自己的眼界,看世界级别的技术大牛是如何工作的,以及他们所能展现出来的能力,从而你会对自身有一个重新认定的过程进而设定更高的目标,这个过程你会得到很大的收获;参与讨论也是融入社区的一个好方法,我一直认为社区其实比代码本身更重要。另外就是通过提交patch做贡献,你可以为自己发现的问题提交patch,也可以为别人发现的问题提交patch。 Apache下项目是这样的,你的patch会被一个committer review,如果没有问题会被提交到代码库中,如果有问题会公开讨论,直到patch被接受。如果你在邮件列表足够活跃和提交了足够数量的高质量的patch,达到了某个项目的准入门槛,PMC会发起VOTE,如果VOTE通过,会邀请你成为该项目的commiter。

InfoQ:如何更有效地学习开源项目的代码?

方越: 从我的经验来看,首先要了解这个项目主要要解决的问题和架构,这些信息一般都能从项目的官方网站上找到。如果要了解更细节的实现,我推荐一种测试驱动的学习方式,任何一个好的开源项目都会有数以千计的testcase,这些testcase保证了feature是工作的,也是代码可以不断重构的基石。如果你想了解某个feature是如何实现的,建议你看这个feature的testcase, 通过单步跟踪的方式把代码走几遍, 这样你会很快对代码有一个很直观的了解。除了testcase,开源项目附带的例子也很有用,把例子搞明白,对学习这个开源项目也会很有帮助。

InfoQ:Apache基金会的资金来源是什么?基金会下面的程序员有没有薪水,如何领薪水?

方越:Apache基金会的资金来源主要靠公开捐助。Apache基金会会有极少数的雇员可以从Apache基金会领到薪水,从事基础性的服务工作,例如维护infrastructure(邮件, jira, svn等)。至于各个Apache项目的committer,是不会从Apache基金会领到薪水的。但是正如我前面提到的基于开源的商业模式,会有一些商业公司基于开源社区和开源软件,提供商业服务,如果你在某一个开源项目中贡献足够大,有相当的影响力,会有商业公司愿意雇佣你,让你全职为开源做贡献。

InfoQ:随着这几年国内传统软件以及互联网公司的发展,越来越多的公司走向开放,拥抱开源,但是有没有一种可能,大家也把这种对技术发展和分享的集中起来,使得国内出现像 Apache 一样的开源组织?

方越: 国内有很多开源小组/社区,会定期组织交流分享,这是很积极的一面。但是要达到像Apache基金会的这个高度和影响力,可能性是有的,但是我不知道具体什么时候会出现。就我了解的情况,国内的公司目前主要是使用开源项目,对开源社区的回馈相对还比较少,据我所知也没有能像Apache下项目那样得到全球范围内广泛使用的原创性的开源项目。实话说,虽然有些令人沮丧,但是我们还有很长的路要走。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

国内生存压力太大,对于软件产业的理念也不同,不具备做开源的基础。 by zhang xiaofei

如题

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT