技术开发 频道

RailsConf 2010 演讲台上的中国人

  【IT168 专访

  2010年,关于Rails的重大事件,莫过于RailsConf 2010了,RailsConf是ruby on rails社区最重要的会议。6月8日RailsConf 2010大会在美国马里兰州城市巴尔的摩举行,相信对于关注RailsConf 2010大会的国内的开发者来说,本届RailsConf 2010亮点不是新版本Rails 3的发布,也不是Ruby社区的头牌明星悉数到场,而是一个名不见经传的年轻中国人登上了RailsConf 2010的演讲台。这个年轻的中国人是谁?为何能够经过老外的层层筛选最终登上 RailsConf 2010的演讲台?为此,IT168采访了这位“80”后的年轻人——一德公司系统架构师郭磊。

 专访系统架构师郭磊
一德公司系统架构师郭磊

 专访系统架构师郭磊

(以下为采访内容)

  记者:能否简单介绍你自己和正从事的工作?

  郭磊:上大学时已经开始写代码,大学学的是环境工程专业,本身对计算机比较有兴趣,所以考研的时候在北航攻读计算机专业。最开始用VB做了一年的项目。04年开始接触Java。第一份工作是在用友,用.net开发。07年加入一德公司,直到现在。

  记者:请介绍下RailsConf 和参加流程,讨论的内容。

  郭磊:RailsConf是Ruby on Rails社区最重要的会议,由O’Reilly主办,开始于2006年,每年在美国举办一次。在会议期间Rails Core Team会介绍Rails最新的进展,往往也会成为新版本发布的时机,比如今年会议期间就发布了Rails3的最终Beta版。从2008年开始,在RailsConf上还会举行Ruby Heroes的颁奖仪式,表彰本年度对Rails发展做出突出贡献的个人。RailsConf刚开始的时候规模比较小,讨论的议题也相对比较单一,我们一德公司的创始人Jonathan Palley参加了RailsConf2007, 据他所说当时的议题主要还是集中在Rails可以做什么事情;经过近几年的发展,RailsConf已经具备相当的规模,比如今年就有一千多名来自世界各地的程序员参加,演讲者也是来自十多个不同的国家,并且讨论的议题也设计到编译器、JRuby等多个方面,也吸引了诸如google这样的大公司参加。

  RailsConf会在本次会议上发布下一年度会议的举办时间和地点,然后在举办前大约8个月的时候开始征集议题,任何人都可以提交自己的议题。征集过程会在大约会议开始前3个月结束,然后主办方会从数以千计的提案中挑选出60个左右的提案做为演讲主题。之后被选中的人就开始为准备演讲的ppt等。任何人都可以报名参加RailsConf,报名费大概是800美元左右。

  记者:RailsConf演讲议题挑选标准是什么?你觉得你的议题被选中的原因是什么?或者说你觉得你的议题最吸引人的是那方面?

  郭磊:他们有专门的组委会来挑选,有专家组。挑选的标准就是最能吸引人的、最容易引起别人关注的话题!

  两年前,随着公司业务的增长,代码变得越来越混乱,于是我们痛下决心,开始了一次彻底的重构;而两个月前,我们总结了两年来重构的经验,并很荣幸地被RailsConf2010选中做演讲。

  议题中最新引人的地方,我觉得应该是我们是把大的、单一系统分开成多个小的系统,小的系统互相协作。现在Ruby on rails 都是用一个系统,我们做的工作就是把大的、乱的系统分为很多小的系统。我们想来一些办法让这些小的系统更自然的互相协作。我们也和大家分享如何把大的系统划分为小的系统。

  记者:你们是怎么想到要把大系统划分为若干子系统呢?

  郭磊:我们也是经过比较长的过程,最开始是把大的程序划分为3个小的,但是效果不好。后来我们就想为什么不能根据不同的需求来划分小的系统让他们互相协作来做呢!

  记者:那是否会对数据库造成压力?

  郭磊:这就是我们当时面临的挑战,我们现在的做法就是每个小的程序都有自己的数据,当他们要交互的时候,比如我们要用A这个数据去读B的很多数据,我们就用A这个数据只读B这个数据,只能读不能写,这样就能保证效率比较高,因为只能读不能写,所以可以保证这个两个程序的职责比较清楚。如果要写的话只能从B来写。我们通过想了这些办法来解决数据库压力的问题。

  记者:能否分享下你们一德平台的重构原因,及经验呢?

  郭磊:一德公司创办于2006年,我于2007年7月加入一德公司。我们最开始的时候只有一个系统来处理所有的业务逻辑,后来到08年初的时候,我们的用户数量开始快速增长,随之而来也产生了很多新的需求,加上我们一直在不停的改进学习体验,不停的增加新功能,单一系统变得越来越庞杂,非常难以维护,增加新功能的周期也变得比较长,为了彻底解决这些问题,也为了给用户提供全新的用户体验,从08年9月开始,我们决定对系统做一次彻底的重构,搭建一个全新的EQ学习平台。

  因为我们这次是对原有系统一次比较彻底的重构,所以会经历一段比较痛苦的同时维护旧系统和开发新系统的时期。首先我们会基本锁定旧系统的功能,对旧系统基本只修改bug而不再做功能的扩充,然后在做新系统的时候除了把原来的业务逻辑搬过来,还加入了大量的新功能。要保证有比较好的测试代码,这样在你重构之后你的旧系统也可以比较好的运行。我们下一步还要做一个比较大的重构是基于Rails3 的!但是在这次重构前我们会完善我们现有的测试代码,来保证重构后不不会引入一些BUG和出现影响客户使用的问题!

  记者:你们公司为何会选用ruby on rails 去开发,而不用php这种在国内非常流行的LAMP组合?

  郭磊:我们的抉择过程跟当初rails的创始人DHH的选择过程很类似。DHH最初就是一个php的程序员,后来他到37signal公司做basecamp项目的时候,最开始打算用php来做,可是很快他就发现php在处理多用户角色复杂工作流的时候显得笨拙而复杂,而由于php的一些语言层级的天性使得他在应用框架后性能下降很厉害,所以DHH放弃了PHP选用ruby来做,Ruby的开发效率高的惊人更重要的是它的语法简洁优雅,DHH发现自己用Ruby一周时间写出的功能比用PHP做一个月还要多,再后来他就把自己的框架抽象出来并起名为ruby on rails。

  Ruby on rails的“习惯优于配置”的理念以及包装好的active record等基础设施使得web程序开发变得异常简单。而我们EQ学习平台要想在激烈的竞争中脱颖而出,必须要对用户的需求有最快速的响应,所以我们选中ruby on rails做为我们的开发平台,事实也证明我们的选择是正确的,我们现在每天会有四五次的系统部署和十几个功能的更新与改进,这对其他语言平台是不可想象的。

  记者:Ruby相对于别的新兴语言的优势是什么?

  郭磊:Ruby的框架已经存在了,你只要做自己的事情就好啦。它与JAVA 相比它是个动态语言比较灵活。写起来比较简单。非常接近自然语言,更容易被理解。

  记者:从你的博客日志我看到当天在演讲现场,不少国际友人“围堵”你追问开源的问题,你对开源这个模式怎么看?你会去把你们的技术开源么?

  郭磊:开源是一种非常好的促进技术和产业发展的模式,一个人、一个公司的力量总是有限的,而所有人加起来产生的力量是无穷的,开源可以最大限度的集中每个人的聪明才智,促进技术最快速的发展。试想如果DHH如果当初没有开源ruby on rails,现在就不可能有如此繁荣的rails社区,rails也不可能发展的这么好。我们会把我们系统架构的核心部分开源,事实上我已经开始在做这项工作了,预计很快就可以完成,我们希望可以得到很多回馈,这样我们才能把它做的更好。

  记者:你名片上的职位是系统架构师,你认为一个成功的系统架构师应该具备什么样的条件?

  郭磊:一个合格的架构师必须是一个优秀的程序员。架构师都是从程序员成长起来的,一个没有任何编程经验的人是不可能成为一个合格的架构师的。我在加入一德之前做了三四年的程序员,加入一德后也一直在写代码,现在我大部分时间还是会写EQ学习平台架构核心部分的代码以及部分业务逻辑的实现。只有从亲身经历的编码经验中,才能知道什么样的架构是好的,是让程序员用起来最高效的。

  架构师需要有广泛的知识体系和敏锐的技术嗅觉。做为架构师来讲,对技术的掌握并不一定特别深,但一定要很广。只有充分了解了各项技术的优缺点之后,才能找到最适合自己公司业务的技术。选择的范围越大,选出的东西才越好,所以视野一定要开阔,不能局限于某一种特定的技术。然后要有非常敏锐的技术嗅觉,要时刻注意业内动态,技术的发展方向,把别人好的想法和技术引入到自己的系统里面来,这样才能保持系统架构的优越性。参加RailsConf这样的技术盛会就是很好的机会,通过跟其他人的交流可以有很多新的启示。

  架构师一定要是开放的,乐于助人的,尤其是要跟程序员要时刻保持很密切交流。程序员可以说是架构师的最直接客户,只有跟自己客户多多交流,了解他们的感受,听取他们的意见,才能保持这个架构是最有价值的。

0
相关文章