【开源访谈】斗鱼安卓创新组主管霍启圣:程序员如何培养创新思维

OSC源创君 发布于 2017/05/12 07:17
阅读 3K+
收藏 28

【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告”

EasyApp是一个面向中小型安卓App的开发框架,核心思想是“Easy” 通过封装以及原创巨量工具、组件与模块,为使用者提供极大的便利,甚至可以通过类似“搭积木”方式来快速创建一个安卓App。当初发起 EasyApp 开源项目的初衷是什么?安卓开发人员如何培养创新思维?安卓开发未来如何?本期,【开源访谈】邀请到了 斗鱼移动端安卓创新组主管霍启圣老师谈谈程序员如何培养创新思维能力。

【本期嘉宾】

霍启圣,斗鱼移动端安卓创新组主管,EasyApp 开源项目发起人,九年互联网从业经历,曾担任 DotA 汉化组组长、供职于斗鱼,对安卓、React/React Native、WP 开发有着丰富的经验积累和技术成果。

【访谈实录】

1. 嘉宾自我介绍(技术背景、工作经历和学习经历等)

大家好,我叫霍启圣。目前在武汉斗鱼网络科技有限公司担任安卓创新组开发。其实我一开始学的是并不是编程,而是机器制造。转向编程主要是因为毕业之前一个偶然的机会,让我接触到了 DotA ,因为是纯英文的,所以 DotA 在国内的受众很少,所以我就决定把它翻译成中文。在这个过程中我一直跟 DotA 的作者 IceFrog(冰蛙)保持 QQ 联系。当时我的英文不是特别好,想说一句话要查半天词典,在跟他交流的过程中自然而然就把英语水平提上来了,这时候再去看那些代码就像看中文那样,一目了然。当然在这个过程中还有一个很重要的因素就是兴趣,有兴趣才有动力和上进心去学好编程。

 

2、当时为什么选择直播行业?

其实也是因为机缘巧合。其实我是通过朋友推荐来武汉掌门人对战平台做视频后期处理的,当时我们公司发起新项目叫 AcFun,公司里面懂代码的人不多,我们总经理就过来随口问了一句,会写代码吗?要不要试试做客户端?我就说,行,我来试试。但是其实那时候我连 Java 都不会写。但是通过边学、边做、边试,最后给做起来了。后来从AcFun 中衍生出斗鱼,也是通过那位朋友介绍我从 AcFun 转到斗鱼,就一直干到现在。

 

3、直播算是一个比较新的行业,刚开始接触的时候遇到最大的困难是什么?后来又是如何适应的?

首先直播是一个新行业,从技术层面讲,不同于我们以往那些只做资讯的客户端,直播行业要求的是视频技术,涉及到视频以及通讯方面的技术,这是一个非常复杂的东西,相当于一个直播视频客户端把 Android 方面基本上所有的技术都用一遍。当时我们没有现成的技术,只能把这些技术,比如列表、或者数据,发起网络,解析数据,还有数据库管理……等等这些所涉及到的技术环节一点一点地攻克,然后自己从头开始搭建。

 

4、您同时对 React/React Native、WP 开发有丰富的经验,这些经验在安卓开发中起到什么作用?

我是通过 WP 来了解视频的解码技术的,在这之前我自己写了一个 WP 的视频播放器,通过这个了解了视频直播之后再把它转到安卓上,这是一个很好的过渡过程。

React/React Native 对解决我们安卓客户端的更新技术很有帮助。现在用户都不喜欢更新,如果出问题了我们要强迫用户更新了怎么办呢?这个技术就是为了解决这个问题的,它使我们的客户端即使不主动安装更新也可以随时保持最新版本。如果我们的客户端全面使用 React Native 的话,那么我们不再需要版本更新的代码了,一打开客户端,内容就不一样了。

 

5、对开源有什么看法?

我觉得开源是一个非常非常有必要的过程。一开始我们是更倾向于保护自己的代码,把自己的代码藏起来掖起来不让别人用,或者要付钱才能用,但是这样会导致我们的很多的创新思维被扼杀在摇篮之中,比如说有个问题解决了,但是别人不知道,这对整个行业来说是一种巨大的损失。

对安卓开发人员来说,虽然开源可能会使自己的个人或者公司损失一点利益,但是换来的是技术的发展,这对整个行业都是有有帮助的,整个行业有所提高之后,我们才会有更大的收益。

 

6、创建 EasyAPP 这个开源项目的初衷是什么?

其实是因为一件比较尴尬的事情。我刚开始在 AcFun 的时候,亲手创建了 AcFun 的客户端,所以这对我来说是很重要的东西。结果有一天忽然空降过来一个产品经理,然后产品经理又找了一个人过来完全按自己的方法去做,花了两三天时间就把我整个客户端全搞乱了。

我就开始反思,如果我们没有统一的技术和规范,任凭不同水平的人乱搞,会造成多大的混乱。以此为契机,我就想自己去搞一个功能整合体,只提供一些规范和技术,方便我们自己用。后来随着技术水平和知识等级的发展,我觉得不仅仅可以做成一个功能整合体,我还能把它整理成一个框架,一种规范,或者是一种标准,只要按照这种标准,我们就能把东西做得更快、更好、更简单。

其实我是在11 年的时候就在做这个了,但是因为公司限制,不能把代码放到网上去,但是一直在更新,现在公司内部政策有所转变,领导也开始比较赞同开源,所以我的项目才有机会放到网上供大家使用以及后期的维护和发展。

 

7、其实国内很多程序员都没有太多精力去追求创新和为开源做贡献,你怎么看待这个事情?

我们公司的工作其实还好,就算加班比较多,但总会有休息时间的,比如周末,这时候如果有人来提问的话,我是非常愿意在这个时间段和技术人员进行交流的。因为 EasyAPP 一开始是我全权负责维护的,但是比如我写了一段代码,过几天之后再回来看,想不起来当时为什么这样写,觉得应该还有更好地实现方法,所以我觉得一个人维护是远远不够的,不断有人来提出问题,发现问题,或者一起探讨怎么实现新功能,才能把这个项目做得更大、更好。

 

8、您认为程序员如何培养创新思维能力?

首先是不要读死书。据我长期观察发现,很多刚入门的开发者仍然是从书本上获得知识,比如我们书本上学的是 Android 4.x 的系统开发,他们也还是一样地用,尽管现在的主流版本已经是7.x了,甚至马上就要出8.0了。

其次就是思维不要太固化。不要觉得网上有代码,抄来就可以用了,有时候要自己去看看。有可能哪天我们的需求要改了,那么这段代码已经不符合我们的需求了,这个时候就需要自己动手去做出来。

还有就是要开脑洞。我们的目的可能只有一个,但是实现的方法可能有很多种,与其干等着别人给你代码,不如自己想办法去解决,自己试一下,可能就会对创新有更深的了解。

 

9、您认为安卓开发未来会如何发展?这对安卓开发者提出了怎样的要求?
现在的安卓无论是市场占有率还是用户数量还是其他一些参数已经远远高于其他手机操作系统,所以安卓在目前这段时间内还会持续地发展下去,保持其霸主地位,这点是不用担心的。

我觉得作为一名开发者,首先不能读死书,想要什么东西直接到网上找,要知道书本上的知识永远比网上的落后;其次不要抱有一种排斥的心态,如果总是不愿意接受新东西,慢慢地就落后了,过一段时间就会发现你的知识跟不上别人的速度了。

 

10、从最近发布的 Android O 预览版看来Android 8.0 有什么值得期待的特性?

我觉得最值得期待的特性是安卓 8.0 的动态图标。它有一个内在的更新机制放在安装包里面,会自动更新。比如今天是什么节日,它的图标就变成什么样,这个特性对于我个人来说更像是一种视觉的改进。因为从安卓 2.3 开始到安卓 4.4 版本,安卓给人的印象就是丑,从安卓 5.0 开始引入了新的材质风格之后,才慢慢被大众所接受,但是安卓 5.0、6.0 更多的是优化性能,安卓 7.0 才同时对视觉和实用功能做出了一些改变,所以对于 8.0 来说,最重要的是要变得更好看,然后才是它的功能和实用性能。

加载中
0
flazx
flazx

EasyApp开源地址是多少呀?

王练
王练
https://git.oschina.net/harreke/EasyApp
0
kentxp
kentxp

国内开源框架使用的一大风险就是  框架本身慢慢烂尾 最后无人问津      无数的案例了

0
本是天上逍遥的仙
本是天上逍遥的仙
该评论暂时无法显示,详情咨询 QQ 群:点此入群
开源中国胖纸
开源中国胖纸
还是刷个火箭吧
0
梅开源
梅开源
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
自由书
自由书
评论有问题?
0
理工小强
理工小强

形象有点差啊 

0
野渡无人舟自横
野渡无人舟自横
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
我没有钱
我没有钱

为啥没有看到申请专利的RecyclerFramework的代码呢

0
h
herman256

长期开发肚子大

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部