2013 QConf上海软件开发大会总结

带着工作中的一些疑问,我参加了在上海举办的QConf 全球软件开发大会。会议以主题的形式按分会场召开,我主要选择知名网站案例分析、大数据处理技术、高效能团队建设和金融系统架构与设计四个主题内容。三天会议下来,通过和业界的前辈和同仁沟通交流,加深了我对一些问题的思考。下面结合我个人理解和会上的所见所闻,从四个主题方向分别进行介绍。

1. 知名网站案例分析

该主题下,我主要听了阿里巴巴带来的“跨境网站性能优化的挑战和思路”。背景是:跨境电子商务网站,由于各种原因如买家分布地区分散,而卖家多来自国内,并且严重依赖于搜索爬虫引流而使得性能优化的手段受到很大的限制。这些特点决定了优化思路与传统的网站思路会略显不同,也会出现传统网站不同的问题。主要有两类:

a. 爬虫依赖问题,性能优化手段受到了很大限制:网站性能的优化,很多时候是通过异步加载(Ajax)实现用户体验的提升。由于该网站依赖搜索引擎的引流,导致不能通过异步加载方式提高性能。原因很简单,搜索引擎需要解析网站的内容来决定该网站与搜索关键字的匹配程度,而如果使用异步加载网站内容,则搜索引擎无法抓取网站内容,导致网站排名靠后。但是,如果不降低响应时加载的内容,在网速不变的情况下,性能是很难得到大的提升的。最终的解决方案是,Google出台了一套标准,通过在网页源码中增加特定标签来解决该问题。即正常访问时,网站仍然是通过异步加载方式加载页面。当爬虫抓取网页时,如果遇到前面说的特定标签,会自动发起第二次请求获取网页内容。听到这个解决方案后,有人会提出,其实我们自己也可以识别出爬虫访问和正常访问。然后,根据不同的请求源,采取不同的加载方式。理论上,这种方式是可行的。但是,商业经验告诉他们,这种迎合爬虫请求的方式是有可能会受到反作弊程序的惩罚的。所以,商业社会,不仅仅是技术的考量,还要有商业因素的考量。

b. 买家分布在多个国家,网速差别非常大,如何保证性能:即使网络通畅的情况下,物理距离本身就是一个问题。解决的方法是在不同的地区分别部署服务器,增加静态文件的缓存力度,通过CDN将请求分发到距离最近的服务器。维护的过程中,需要查看CDN的回流情况,如果回流比例太高,需要仔细检查引起回流的原因。只有回流比率较低,即大部分情况下命中缓存,网站性能才能有保障。

2. 大数据处理技术

该主题下,我主要听了由百分点公司带来的“照进感性世界的大数据之光”。背景是:工业技术发展使人各方面的生活需求被大量、迅速的满足。但以服饰搭配为典型代表的感性需求,仍然一直被视作技术难以企及的禁地,因此无法大规模的自动化、量产化。大数据,给予了互联网从业者突破这一禁区的可能性。
在推荐系统领域,之前的推荐多是满足客户的理性需求。举例而言,一般用户在购买三星Note3手机时,大部分人都会购买一块某品牌的电池。基于统计结果,推荐系统可以非常容易地推荐新购买三星Note3手机的客户该款电池,而且推荐的成功率很高。而所谓的感性需求是指非标准化的,难以度量的以及非常个性化的需求。服饰搭配就是典型的感性需求,每个人的爱好都不一样。一般的统计方法,无法找出规律。例如,有的人喜欢白色包搭配红色的上衣,而有的人喜欢黑色的包搭配红色的上衣。最终的解决方案是从两个方面入手,解决感性需求。首先,基于个性化数据进行挖掘提高推荐准确性。其次,分析客户之间的相关性,推断某个客户时,利用相似客户的数据集提高推断准确性。

3. 高效能团队建设

该主题下,我主要听了由豌豆荚带来的“如何通过文化建设来提升团队效能”。他们认为:文化是一个人群的共同特性,是他们在具体行事中的思维方式的一种内在基础与外在表现。文化建设一定程度上来说是对这些共同特性的有意识的、主观的刻画。然而正因如此,所以文化建设既是有排他性的,也一定存在被团队中的具体个体所排斥的问题。 所谓“好”的文化不是无视这些文化自身的问题,而是在文化建设的基本原则、规则与逻辑中找到一个合适的方式来消化这些问题,使文化与具体行事之间得以契合。因此一切无视文化的实效性,而空谈文化建设的行为都无异于耍流氓。

我理解豌豆荚作为一个创业团队,在从几人、几十人到两百人的团队规模的快速推进中。主要通过四个手段解决个体特性与团队特性之间的矛盾,并且做到在二者共洽以提升团队的效能。a. 开放的团队文化:不仅仅体现在开放性的办公室(没有老板办公室),更加体现在思想的开放性。鼓励团队成员打破权威,追求内心的真理,挑战CEO是一件没有任何压力的事情。b. 自上而下的汇报制度:管理层定期的向全体员工汇报公司的发展情况以及战略规划,培养每位员工的主人翁意识。c. 信任每一位员工:公司内部没有秘密,包括公司的盈利数字,账上的现金等信息,都放在文档库里面。每个人都有权限,需要时可以查阅。一开始会担心,员工泄密怎么办?其实,没什么可以隐瞒的,竞争对手可以从很多渠道知道你的数据,只要你的数据是真的就不怕泄密。d. 高效的合作方式:尊重每个人的工作时间,保证每个人工作时间的连续性。每个人都分享自己的Google日历,需要开会时通过Google日历即可,无需询问。如果不想被打扰,任何人都不能干扰你的工作时间。

4. 金融系统设计与架构

该主题下,我主要听了阿里金融带来的“云决策平台与应用”。主要分享了:互联网信贷业务特性与问题、云决策平台应用架构及解决方案和云决策平台技术架构。阿里金融是当前互联网金融领域做的比较成功的一家。他们基于阿里电商的交易数据,线上计算出客户的信用等级。其中,对于易变的业务规则的处理和我所在项目的计算引擎非常相似。阿里也采用了Drools规则引擎来处理易变的业务规则。但是,我在使用过程中,遇到了性能瓶颈,速度非常慢。通过和阿里嘉宾进行沟通,他们在规则引擎的基础上写了一个编译器,在编译时将规则引擎文件编译成Java代码。因为,规则引擎文件在运行时是解析执行的,速度必然会慢,通过编译后,运行时无需再解析,性能会有大的提升。这个经验对我非常有借鉴价值。我们没有人力去开发一个编译器。但是,可以沿着这个路子,将规则引擎文件做成编译器代码,在运行时通过一次反射再调用,速度也会有大的提升。这也是我当前正在做的工作。

这次参会,收获颇丰,美中不足之处在于每个专题的分享时间太短,导致内容的深度不够或者忽略很多细节,相关经验不足的人员听起来非常费劲。所以,在会后,大胆的和演讲嘉宾面对面的进行交流。不用“胆怯”他们很多人也是和我们一样,出道不久。即使是非常资深的人士,也无所谓,参会的目的不就是为了提高自我吗?学到东西才是最重要的。

你可能感兴趣的:(软件开发)