加入爱奇艺的时间不长,但我感受到的震撼却不小。在外企打拼了十几个春秋,今年终于有机会进入一家国内顶尖的互联 企业,真真切切地有一番不太一样的体验。
不过,我今天并不想说在外企工作与国内企业的差别。目前,我负责“爱奇艺PPS影音”PC客户端软件的研发。也许有人会有疑问:怎么还在做PC软件家不都一窝蜂似的转去做移动开发了吗而,大家要明白的是,虽然PC行业已经风光不再,但PC饱有的体量仍然是巨大的,并且PC自有其不可替代的价值;PC软件还要继续做,今天我想说一说的是,怎样以互联 思维来做好客户端软件。
上面说到了快速试错。那么,怎么试呢怎么知道我们是对还是错呢就要依赖数据啦! 站有它的先天优势,可以很方便地收集到这些数据:用户在 站上停留了多久,点了什么 页,在 页上点了什么按钮,用户使用的是什么浏览器,同时有多少人在线,访问的峰值出现在什么时间段,等等。我们在客户端里也加入了类似的投递代码。我们还有强大的数据统计和分析团队的支持,让我们对客户端软件性能以及用户行为了如指掌。我们很容易就能知道客户端软件的启动耗时、崩溃率、用户在我们客户端里看了哪些视频、播放是不是有卡顿等信息。在我们尝试做了一个新功能、但又不确定用户是否会喜欢的时候,我们也可以通过一个小渠道发布这个版本,然后在后台观察各种统计数据,以此来帮助我们决定是否应该继续开发这个功能,或者在后续迭代里需要在哪些方面做改进。
我们每两周对外发布一个版本。我们也深知,发出去的版本就像泼出去的水,也是我们未来必须背负的包袱。时间一长,客户端版本碎片化,几千万用户手上的版本多达几十种。我们固然可以通过软件自带的升级机制把最新版本的客户端送到用户手上,但出于种种原因,新版本能够做到高于90%的覆盖已经不错了,而这个数字绝对达不到100%。然而, 站却能做到。 站添加了新功能之后,一旦部署,顷刻之间就能被全世界的所有用户使用上。问题是,我们怎么在客户端里获得像 页那样的灵活性呢们的做法是,对于性能要求不高并且可能会频繁调整的部分,用HTML/JavaScript来实现,并在客户端里用内嵌浏览器打开这些 页;而对于性能要求高的部分,坚决采用我们强大的C++皮肤库来把 页本地化。一个很好的例子就是爱奇艺影视大全(http://v.iqiyi.com),在与 站保持协同的基础上,我们让它在客户端里表现出了更为卓越的性能。
在功能实现方面,我们时刻保持着一种意识:尽量不把业务逻辑在客户端里写死。否则的话,一旦业务逻辑有变,我们必须修改客户端的代码,然后再做全 升级,一来周期比较长,二来新版本也做不到100%的覆盖,结果就比较被动了。举一个VIP会员相关的例子吧。在客户端,我们有针对当前登录用户的类型来做不同会员套餐促销的需求,具体的业务逻辑是:如果当前是普通会员,则跳到白银套餐的购买页面(url1);如果当前是白银会员,则跳黄金套餐页面(url2);如果当前是黄金会员,则跳铂金套餐页面(url3)。一些经验欠缺的开发人员会把上述逻辑直接实现在客户端软件里,就像下图中左边所示的那样。遗憾的是,一旦VIP会员套餐的促销逻辑有变,比如,要改成对所有用户都推销铂金套餐,那就惨了!更灵活的实现方式应该像下图中右边那样,客户端只是调用一个相对固定的url(并带上必要的参数),而把具体的业务逻辑实现在服务器端。

PC软件真的没落了吗实不然!也许我们只是需要顺应潮流,改变一下自己的思维方式。我们相信,只要有用户存在,每个终端都是重要的。因此,即使没有聚光灯、鲜花或掌声,我们仍然在坚持不懈地努力做好产品,全心全意为我们的用户服务!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!