【开源访谈】网易移动端技术专家项望烽:开源最初都是被动的

凝小紫 发布于 2016/12/20 18:43
阅读 3K+
收藏 10
开源不只是开源代码,还包括长期的维护开源项目的过程。开源的核心和精髓是什么?能否引用延伸至其他领域?国内开源技术发展现状如何?面临哪些挑战?本期,【开源访谈】邀请到了网易移动端技术专家项望烽,带来他对开源的理解。

【本期嘉宾】

项望烽,网易移动端技术专家,09 年毕业于浙江大学,入职网易后先后参与并负责了网易泡泡,易信,云信等多个 IM 产品开发,拥有丰富的移动开发和 IM 产品开发经验。热爱开源事业,业余有大量开源组件和技术文章输出,对 iOS 性能调优有自己独到的见解。

【访谈实录】

1)能否先介绍您自己和您的职业经历?
大家好,我叫项望烽,2009年毕业后进入网易,前期主要负责 pc 端的一些工作,11年以后负责移动端 IOS 开发。主要是负责网易泡泡、易信、云信等 IM 产品及 SDK 的开发。


2)您所理解的“开源精神”是怎样的?
我所理解的开源精神:一是分享,二是共同进步。
我个人开源的初衷非常简单,就是觉得有趣。我将自己的 idea 做出来后开源和大家分享,然后收到一些反馈。大家(包括我)都可以从中学到知识。


3)您开源过的项目有哪些?为什么想要开源呢?现在还有维护和更新吗?
刚进入职业生涯时有很多不懂的地方,为了多学习多实践,开源过一些小项目去验证一些观点。
其实一开始开源也是被动的,写了这么多的代码,需要有一个托管的平台来存放。那时候做的比较多的只是开放了源代码代码。由于工作与时间的缘故,很多项目现在基本没有维护 了。
2011年负责移动端 IOS 开发后,随着经验的积累,有了更多的想法,想做更多更好的产品出来。一有 idea 时,会先上网搜集资料是否有类似的产品可供参考,很多时候都没有找到。这时就想自己造一个出来。造出来发现功能、性能都不错,于是开源出来和大家一起分享,大家就不用再重复造轮子。  
移动端 IOS 方面的话,开源了一些组建,比如符富文本的组件,目前都还有在维护。


4)在参与开源工作的过程中有什么心得可以分享的吗?
一是坚持。坚持不懈地维护开源项目。有一些项目开源后很流行,关注度和使用度很高。但由于一些原因,不再维护了,这个项目就直接沉寂了。
打个比方,IOS 开发方面很有名的开源 http 类库—— ASIHTTPRequest。这是 IOS 开发者除苹果自带的项目外必用的一款框架。但,作者很快就停止了对这个项目的维护更新,不再支持后续高版本的 IOS ,这就导致之前使用了这个类库的开发者只能将它舍弃掉,重新用别的来替换。
所以说,一个开源项目,特别是热门的开源项目,无法长期坚持维护更新,造成的伤害和影响都是比较大的。
二是要有敢于开源与接受批评的勇气,也即是说脸皮要厚。很多开发者的能力其实很强,可能是不够自信,总觉得自己的水平与国外的开发者差距很大,不敢开源自己的项目。但其实,很多很好的想法和项目是值得开源的。
举个励志的例子,在 IOS 开源社区里面,有个中国开发者写了一个项目。在很多大牛眼中,他的水平就相当于刚毕业的或者是初学者,根本不值一提。但这位开发者坚持做这个项目,不断迭代、优化。现在他的项目关注度和使用度很高。
一个不完美甚至很糟糕的项目,通过作者坚持的迭代、优化逐步趋于完善,服务于更多的开发者。我想这也是开源的初衷所在吧。


5)现在还有再做一些关于开源方面的事情吗?
前段时间开源了 云信 SDK 的UI 组件源代码,但不算完全的开源。现在把文档、流程都更新上去了,算是真正开源了。然后发现关注的人还挺多的。
至于自己的一些开源项目,相对比较稳定,没怎么维护了。也有在做一些感兴趣的项目,进度相对较慢。


6)在您的观察中,国内外的开源社区有何异同?
开源是没有国界的。尤其现在国内不少开发者能力越来越强,代码、文档都写的特别好,完全和国际接轨了。如果要说差异的话,我觉得国内开发者对于开源的理解还不够透彻。大部分开发者认为开源就是将源代码开放,后续做一些维护即可,往往忘了开源项目中很重要的一个东西——文档。文档不完善或者完全丢失,开源后很多人也不知道如何用这个项目。因此,要想把一个开源项目做好,完整的文档和后续的维护都是必不可少的。


7)您认为目前国内开源技术发展现状如何?面临哪些挑战?
我感觉国内很多做开源要么是利益驱动,将一些项目开源,以方便客户更好的使用项目。要么是KPI 驱动,不少企业会在公司内部建立任务,要求分享和开源。这样,开源的本质就变味了,一旦失去利益或者 KPI 的驱动,那些开源的项目就会停止,不再维护,长远来说,对于有需要的用户而言伤害挺大的。
开源的精髓是分享,发自内心想要去做这些事情。就目前这种由外部驱动力迫使的项目开源生命周期不长。我觉得解决这个问题的关键在于解决开源驱动力的来源。
但是个人项目的问题在于,由于各种外在原因,个人项目不太稳定。比如 nodejs 社区的 Express.js 这个第三方库基本算是 nodejs 的标准库了,但是随着作者的工作和兴趣的原因,他开始转向了 Go 语言,也就不再继续维护这个第三方库了。所以我觉得,如果有一个自发的组织性的机构或团体来做这些事情会比较好。


8)开源的核心与精髓能否引用延伸至其他领域?
刚刚说到,开源的精髓是分享。关于分享,目前很多领域都有这种形式存在,和开源的精髓是相关联的。比如滴滴、uber等,可以说开源的一个延续。每个人贡献一些,加上一些微创新,就有了一种新的模式,就会变得越来越好。


9)近期您有没有接触新的开源技术?有哪些新技术或者新项目可以推荐给大家的?
主要接触的是 IOS 方面的。IOS 已经过了最火爆的阶段,目前趋于稳定。也还有人有新的 idea,会去做一些产品出来。
在这里推荐一款 IOS 的开源项目给大家。是国内开发者开源的 YYKit 。它是一个 非常庞大,功能特别丰富的 IOS 组件。对于刚入门的 IOS 开发者提高能力有很大的帮助。它的 UI 组件库非常完善,很多知识点,难点问题用极其优雅的方式解决,是非常值得学习的。

加载中
0
大洋的顶端
大洋的顶端
网易开源的项目大部分要死不活的
0
purple_grape
purple_grape
网易也算是开源友好型的公司,就是不明白上次为啥跟蘑菇街的teamtalk干架, 网易泡泡开源也是不错的,就算不开源也可以贡献一两个开发人员,表示支持一下也行啊。 由于网易的干预,teamtalk很快从牛逼闪闪的明星项目走下神坛。
0
百世经纶之傲笑红尘
百世经纶之傲笑红尘
网易的大多数项目就是自欺欺人
0
晨曦001
晨曦001
非常开心网易有ubuntu下的网易云音乐,还不错。要是真心开源,为什么不把易信来个ubuntu版?
0
Jason
Jason

网易云音乐就是良心产品

返回顶部
顶部