周末去了上海参加了两天的rubyconfchina(rubyconfchina.org)大会,此等规模(或以上)的技术大会我还是第一次参加。虽然不是个个话题都很干,但是因为话题基数比较大,总的来说收获还是很多的。
第一天第一场的自然是Matz开场。很可爱的一个日本人,更让人欣慰的是说英文没什么口音。Matz主要说了3点:
- Be a programming language desinger。一开始他问在场的有谁写过自己的语言?无意外的无人举手,然后他抛出了另个一个观点:作为一个专业的程序员,不应该只会写应用级别的代码,应该去设计自己的语言。即使不能真正的设计出自己的语言,也应该去设计自己的框架,库,或者DSL(嗯,还是叫DSL体面点。而且其实因为ruby的语法特性,很容易写出DSL风格的库)。我当时就在想,这个退而求其次的“设计自己的库”是专门为了来中国演讲准备的吗,知道我天朝的计算机教育水平有限,很难出现新语言的作者,还是鼓励大家做着力所能及的事情来锻炼自己,同时贡献社区。
- 第二点谈了谈mruby,一个轻量级的ruby实现。最小的解释器只需要300k。甚至可以不需要操作系统直接装在一个单板上运行ruby程序。还有一点最大的不同是,之前我们的cruby可以通过extension的方式调c代码,现在可以通过c代码调mruby代码。。。具体可参看 http://github.com/mruby/mruby 。说来说去其实我不知道到底有什么用,估计我在可预期的未来也不会用到它。。。
- 最后提了下ruby2.0的新特性。其间举了几个核心module API的变化和monkey patch的优化。最重要的是1.8将在明年8月份失去支持。check https://www.engineyard.com/blog/2012/ruby-1-8-7-and-ree-end-of-life/ and http://www.ruby-lang.org/en/news/2011/10/06/plans-for-1-8-7/
接下来是一段长达一个小时的cloud foundry宣传片。来自CF的一位工程师给我们大概介绍了一下其实现原理。因为对云啊,openstack啊并没有太深入的理解,所以也没有太深入的共鸣。不过其中一段话引起了我深深的思考:“我们的UT跑的特别快,integration就慢了点,大概要3到5分钟”。3到5,到5,5。。。这个到底是产品代码本身就比较少,还是coverage很少呢,抑或是测试代码极其优化呢?anyway,该项目是开源的:https://github.com/cloudfoundry 回头研究研究。
然后是来自澳大利亚的Fred wu给我们带来的geek show。吴先生是一个非常有热情的人,对代码非常有热情(热心开源,github,pull request。。。),对正确的做事方式很坚持(干净的代码,完备的测试。。。),并且隐约透露(个人揣测而已)出这个是澳大利亚IT界的常态,天朝程序员应该朝这个方向发展。我想说其实我司就是这么要求的,并且大多也都做到了。
下一个话题的黄志敏确实让我眼前一亮。面无表情的,慢条斯理的讲出了很多干货。其主线是一次rails程序的通过迁移到jruby达到的性能调优,不过其中也描述了该应用的一些当前部署模型,典型的大规模HTTP应用的部署模型。黄志敏还开发了很多的gem和在线应用来帮助更好的开发rails应用,比如http://rubygems.org/gems/rails_best_practices, http://rubygems.org/gems/code_analyzer 等gem, http://railsbp.com/ 等在线服务来帮助你使用线下或者线上的工具来帮助你发现自己代码中的潜在问题。类似于sonar的功能,不过这个是针对于web和rails的。说到性能问题,当真自己的应用有了性能的问题,大多是因为用户量太大造成的,那还真是甜蜜的烦恼。。。BTW前面说道的那个性能调优的实例是openfeint,据说已经宣布要被关停了。。。
接下来就是米高同学show了,除了普通话稍有瑕疵,其他各种都完美了。最后QA的时候还被大家陈老师前,陈老师后的不停的叫。。。内容我就不多说了,要现场听才有意思~
另一个比较有趣的一个话题是来自享誉东南亚的rails技术博客(blog.xdite.net)博主郑伊廷。基本上还是以performance为切入点。发现performance问题,定位performance问题,深入定位performance问题。其实也没有太深,就是到了rails的框架代码而已,最终揪出了rails框架中在给你便利的同时也给你种下了performance问题种子的那些点。我觉得这些点是很有价值的,如果你的应用真的大(我是说用户量)到了rails默认配置会引起性能问题的地步。不过我觉得最关键是这种发现问题,并且执着的定位问题的态度和能力,有了这点,在很多日常工作中都是有用,都会收益的。
太擂(railscast-china的创始人),也是一个非常有激情的小伙。跟Fred Wu一个范儿,讲的内容倒是很普通,rspec,jasmine等,但是那种激情,那种自信很能感染人。
剩下的就不一个一个说了。大会主持人说会把PPT放出来,但是刚才google了一下,还没有看到。等等吧,应该会有的。如果大家有兴趣可以关注一下。
这次大会有很多话题,有很多其实都跟rails/ruby没什么关系。不过也无所谓了,反正都是技术吗,听什么不是听。在两天的会议中,听到了来自业界很多其他企业的同行的分享,在QA的时候也听到了一些台下听众的分享,还是不乏高手的。想起了米高的话:“对手不在身边”,没错,对手就在各种各样的论坛里,各种各样的大会里~