专访李祎:Java在Testin的技术应用

李祎,Testin崩溃分析项目负责人。曾担任西门子手机技术创新部高级工程师,源讯公司(Atos Origin)开源软件专家全程参与2008奥运IT集成项目。www.139.com移动微博架构师,主持开发了139网站的用户平台,社区平台、监控平台,海量数据存储访问,推荐引擎架构,以及图形数据库(graph database)开发。关注移动和互联网领域的新技术和新应用。

日前,CSDN记者采访了李祎,请他分享Java在Testin的技术应用。


李 祎

CSDN:请先简单介绍下自己,以及目前所负责的领域。

李祎:曾经在西门子担任高级工程师, 139微博的架构师和研发部门经理,主要是用Java做搭建平台。目前是Testin崩溃分析的项目负责人。

CSDN:你与Testin是如何结缘的?

李祎:来Testin之前就和公司内的很多同事认识,我们在139微博的时候就有合作,都是很好的朋友,互相都比较了解。之前崩溃分析项目随着业务量的不断增长,遇到一些性能架构上的瓶颈。我受朋友邀请帮忙解决了一些技术问题,也通过这个机会逐渐走近这个产品。我发现在这里我的潜力能得到最大限度的发挥,而且这个产品还有机会实现我做一个世界级的产品人生梦想。于是义无反顾的离职加入了Testin,和小伙伴们一起打拼属于我们自己的未来。

CSDN:你们团队是如何分工的?

李祎:麻雀虽小,五脏俱全,我们现在有客户端开发团队, Web前端开发团队和Java平台开发,以及测试,产品和运营的同学。基本上就是一个创业小公司的完整配置。 

CSDN:Testin在开发过程中有哪些重要的节点?你对Testin的技术改造主要体现在哪些方面?

李祎:Testin崩溃分析在发展中遇到最重要的里程碑性事件发生在一个月内访问量从3千万迅速内迅速突破5千万那个阶段。由于前期的系统为了节省开发成本都是用PHP来搭建的。当访问量暴增后,PHP不适合处理海量数据的弱点被迅速放大,造成数据处理经常延迟,大量的请求因为无法及时处理只能被丢弃,直接影响产品的用户体验。为了应付业务的暴增,整个研发团队被临时拉进一间会议室封闭开发。由于那个会议室是储藏室改建的,三面是墙一面是玻璃门,终日不见阳光,被兄弟们称为“小黑屋”。

我对Testin崩溃分析技术上的改造,主要是引入了Storm开源框架来处理海量数据的实时计算,使用Spark来进行离线数据的计算;同时对系统流程中各个重要节点,搭建完善的监控,当出现访问洪峰或者系统异常时,能及时预警和分析查找问题原因。

CSDN: Testin与其他同类产品相比,有哪些优势?

李祎:我们的产品可以帮助开发者查找导致Bug的原因,让开发者清楚知晓哪些代码导致了应用崩溃,从而可以更为容易地修复这些问题。国外类似的产品有不久前被Twitter收购的Crashlytics。我们做了一个Testin崩溃分析和Crashlytics的全功能对比,见下图。


从图可以看出,在功能点上,Testin崩溃分析和Crashlytics平分秋色。不过,如果从手游开发者的角度来说,对他们最重要的就是工具对Android NDK及引擎脚本错误的分析。这个方面显然Testin要完胜Crashlytics;并且它的使用也很简单,只需嵌入Testin崩溃分析提供的SDK,就能够同步真实用户的访问体验,即时发现手游在使用过程中发生的各种问题。这一SDK的大小只有几十K,嵌入手游之中对用户体验不会有任何的影响。

CSDN: Testin的架构是怎样的?在产品开发过程中,主要采用了哪种语言?为什么?

李祎:Testin崩溃分析的主要业务是收集SDK上报的应用启动,崩溃的数据,进行实时统计和计算分析。部分跨天的业务需要进行离线计算。考虑到海量数据的实时计算和离线计算要求,我们采用了现在比较流行的Storm进行实时计算和Spark负责离线计算。这两个计算框架主要以Java语言为主。前端的API接口层由于比较简单,使用PHP+Nginx 来实现。


CSDN:听说你是Java技术牛人,你是从什么时候开始接触Java的?是什么地方吸引了你?

李祎:技术牛人谈不上,只是工作中有大量的机会使用Java进行项目开发,十几年中用过学过Java知识相对其他语言多些。刚开始接触Java是在2000年毕业后到的第一家公司,那时Sun推出的Java刚兴起,公司为了培养新人,鼓励大家去考SCJP 认证,考过了公司报销相关费用。我为了考试猛学了一阵Java的基础知识。现在回头看,那段经历给为之后的Java学习打下了很扎实的基础。

CSDN:你怎么看待目前Java发展现状?Java发展至今已有二十年了,你经历了哪些技术变迁呢?

李祎:我一直处在IT这个圈子里,身在其中感觉时间过得好快, Java都已经过二十岁生日了。太宏观的见解也谈不上,我就聊聊自己这些年和Java相关的项目。 

2000年刚毕业时, servlet刚出来不久,我们做的MIS项目主要用Servelet和JSP来编写。那时Java刚出来不久,国际化问题没有很好的解决方案。我记得当时在网上开发人员问得最多的Java问题,是各种中文乱码的解决方法。之后 EJB 和J2EE的概念开始流行,特别是4个火枪手著的《设计模式》一书影印版的引进,MVC的理念和框架几乎成了程序员面试的必谈问题。 2004年我进入西门子手机研发部,大量用到了J2ME,由于手机资源的限制,很多编码都需要考虑内存大小和包大小。那个时候最有成就感的事情,就是学习各种开源代码,裁剪移植到J2ME手机上。2008年我加入了139微博,正式进入了互联网圈。面对各种高并发,高可用性的挑战,个人认为Java是最适合解决这类问题的开发语言。因为它兼有很好的性能,同时因为使用广泛,有很多配套的工具可以使用,节省开发周期。这个时候接触较多的是Java + redis/memcache + tomcat/jboss。

CSDN:近日,Oracle宣布停止发布JDK7安全补丁和升级包,此举,你怎么看?

李祎:Java一路走来都在不断的推出新包,放弃维护老版本,这是在正常不过的软件迭代路线。不过从我的角度倾向于选用比较成熟的JDK作为基础软件。 Testin现在使用JDK7的包,我想我们很长时间内不会考虑升级的事。

CSDN:你平时最常用的开发工具有哪些?现在还会经常编码吗?

李祎:开发编辑工具Windows下我比较喜欢用简单的文本编辑工具,加命令行的方式来写代码。这样编码不容易被编辑器的自动编译打扰,编码像写文章一样可以一气呵成。 2011年之后工作重心向管理倾斜后很少写生产类的编码了。到Testin后,虽然是我一手搭建了现在的平台,但是也在尽量限制自己编码,一方面自己时间不够,无法长时间投入编码;二是为了锻炼新人,让他们有更多的成长机会。我今年年底的目标是要研发团队所有成员的SVN提交次数都超过我。我会利用碎片时间上SVN做代码Review,发现有问题的地方面对面或邮件指出来,建议他们修改。

CSDN: 回头看这一路的努力和经历,有哪些让你最为难忘的人或事?

李祎:最难忘的还是在2008年139微博时期,和兄弟们一起加班熬夜,快速推出产品并成功上线后的目标达成后的喜悦。我非常享受带领团队赢得胜利带来的那种喜悦和刺激大脑的兴奋。


转载自:http://www.csdn.net/article/2015-05-25/2824764-Java-Testin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值