转载

打造高效的移动开发团队——专访QCon北京2015讲师、网易云音乐技术经理曹偲

网易云音乐诞生不久,就在移动音乐市场占据了一席之地。在即将于4月23日~25日在北京国际会议中心举行的 QCon北京2015大会 上,网易技术经理 曹偲 将在“ 知名移动案例分析 ”专题中分享网易云音乐的技术和开发经验。

曹偲,2008年毕业于浙江大学,后进入网易工作,一直从事后台开发和技术开发管理工作。近两年带领团队完成网易云音乐的开发,注重实用、高效的技术架构和开发模式。喜欢音乐、旅游和养鱼。目前在网易研究院任技术经理。

InfoQ中文站在大会开始之前对曹偲做了采访。

InfoQ:首先请您介绍下网易云音乐开发团队的情况吧。

曹偲:网易云音乐的技术团队大概有20来人,人数也算还可以的。整个云音乐,包括后端,还有曲库整理等工作,之外还有包括Web端在内的7个客户端在做,所以团队比较短小精悍。我个人感觉团队的战斗力还是比较强的,但也会因为人手问题存在一些困难。

InfoQ:网易云音乐现在有Android、iPhone、iPad等诸多版本,核心代码是不是有很多可以重用?

曹偲:虽然最早做的是iOS客户端,但是从产品角度讲,我们对每个平台都是非常尊重的。除了平台相关的一些事情每个平台的决定都是各自去做的,而像统一的一些事情,比如一些算法,最简单的像歌曲随机播放列表,真要做好并不是那么简单,不是用随机数处理一下就可以,我们也会根据用户感受增加一些因素。再如外部用的CDN播放资源,有些择路优化,这个也是整个团队一起讨论,用Python行成类脚本语言的描述,放到我们的Doc系统中,然后由各个端去用不同的语言实现。

从开发角度看,iOS和Android差异还是蛮大的,但是实际上网易云音乐在各个端上的App,除了因为人手的问题可能迭代周期会有所不同,但体验其实是类似的,我想这跟我们的集体讨论算法,集体描述,集体实现这个流程有关。

InfoQ:现在很多应用都在走HTML5和Native融合的一个趋势,从开发流程上讲,HTML5的迭代可以快一些,开发也会方便一些,网易云音乐有这方面的尝试吗?

曹偲:网易云音乐的UI非常复杂,而且非常精美,从我们的调研来看,目前HTML5在体验上还达不到这种效果,所以核心功能还是Native方式。不过我们也不排除在一些分支功能上做一些尝试,快速迭代和更新。我们也有一些类似WebView的东西,以后也会在一些独立的模块中尝试,我们会考虑那些走中间路线的尝试,像Facebook的 React Native ,网易这边也有类似这种机制的自研组件Colortouch,是基于Lua的。整体而言,这个目前还不是我们产品的核心。

InfoQ:20来个人要维护7个客户端,人员是如何分配的呢?

曹偲:我们团队的人员能力还是比较优秀的。举个例子,4个人的iOS开发团队其实维护了3个客户端,包括iOS、iPad和Mac。就Mac端而言,我们感觉整个业内的经验都不是非常的丰富,我们这边是由1位同事花了两个月的时间把PC端的程序移植到Mac上的,同时我们还完成了2.0的一个改版,实现了整个软件的扁平化。当然这跟大家的辛苦也是分不开的。Android方面,目前的主力开发是3个人。

InfoQ:服务端开发的工作量是不是也挺大的?

曹偲:服务端开发工作量也是相当大的,我们服务端目前有两拨人,一拨是在做应用开发,另一拨是在做曲库开发,当然我们外围执行团队也蛮多的,比如说做推荐的,做搜索的,然后做音乐识别,都是一些外围团队在帮我们做一些技术支撑,这个不可能是我们团队能独立完成的东西。其实我们的QPS和什么东西也不是很低的,我们也会去考虑一些结构,架构级别的东西。除此之外,更多的精力我们会花在业务开发上面,比如说我们差不多每2.2天就有一个SVN版本在合并,维护的API也已经达到几百个的级别,另外一个端可能要对多个端的这种开发框架也是很大的。

InfoQ:网易云音乐还有一个特色,那就是对用户的反馈响应很快,而且让人感觉很有诚意。这方面是怎么做到的呢,开发团队也会参与其中吗,是不是有流程来保证这一点?

曹偲:我不知道大家对把程序员拉去做反馈感觉如何。实际上我们团队就是这么做的,从某种角度上说,我们并不希望有单纯的技术人员和产品人员的区分,我们对所有技术人员的要求都是——他首先是个产品人员,对这个产品一定要非常热爱。接触实际的用户反馈,其实对技术人员的工作积极性,产品的认知,甚至一些Bug的修改都是有一定正向帮助的。当然我们也并不是说真的把开发作为反馈人员来使用,最主要的还是希望大家举一反三地解决问题。比如说,我们发现某段时间可能删除歌单这类误操作非常多,一方面是要修复,另一方面,我们还会去和交互以及策划的同事提意见:这么多误操作,是不是模型本身有问题?这是一个良性互动的过程,而这个流程更多来源于团队的参与感,倒不是特别严格去保证的。

InfoQ:您的团队要负责多个端的开发,很多开发人员都是多面手。在人才的成长和培养方面,可以分享下您的经验吗?

曹偲:其实我本来是做后端开发的,但是因为管理着整个团队,有前端,有后端,也就妄谈几句。我认为移动开发是一个模式的颠覆,像之前的Web开发,一天可以有20次上线,不用考虑迭代周期的稳定性;也不像之前的PC端软件,很久一个版本;而App有自身的迭代周期,比如一个月一个版本,迭代周期介于传统的Web和PC之间。

移动开发有这种特点,如何应对呢?我觉得有几点。第一,开发人员要尽量接触新东西,目前我们所看到的,技术也好,思维也好,都是日新月异的,不可能在一个小圈子里待太久而不接触新东西。第二,我觉得技术人员还是可以深挖的,不能说我们是移动端开发,就完全不关注底层的东西了,像网络协议之类还是需要了解。做久了之后,会碰到很多问题需要解决,如果根基不扎实,只是做了两个精美的App,后面问题会越来越多。第三,作为产品开发人员,也不是非要追求什么技术最新,什么技术最热,实用主义往往是第一位的。想做到既小又美,就是这样。

曹偲将在QCon大会上分享更多细节,敬请期待。

正文到此结束
Loading...