中国网络工程师侠客行大会第一天
本文按署名·非商业用途·保持一致授权作者:
,发表于2007年05月20日00时26分
以下提到的今天,都是指5月19日,周六。其他时间代号以此类推。
在一群路痴和GPS,加上一个“新手司机”danger的带领下。在上海溜达了一个多小时,终于进了沪杭高速。经过一个小时的高速公路的行驶,进入杭州。结果又是“逛”了接近两个小时,最后终于入住酒店。这时候已经是今天凌晨1点了。放好车和简单的行李之后,去吃了些东西,3点钟半过后才睡觉。今天早上7点多起来,赶去浙江省人民大会堂。
上午
登记,领同声翻译机,入座,然后开始。
前两个是领导,然后接着是马云。和技术基本无关,我也没太注意,倒是最开始的开场武打比较震撼。
接着是php创始人rasmus的演讲,讲了php的发展,讲了web的安全(主要还是php方面),php的debug(xdebug),php的性能,讲了web的api(例子主要是用php来说明)。这些技术对一个合格的php开发人员,并不是很高深。不过rasmus对web开发的熟悉出乎我的意料,我本来以为他只对php的内核处理比较熟悉(除了作为php创始人和核心开发人员,他还是多个流行的php扩展的开发者,例如apc。纯web方面的开发他好像并没有太多建树)。
在讲到安全性的时候,他多次提到了stupidity in IE。看得出是个比较愤的人,不过他所讲的倒是非常正确。
然后是著名技术blogger – jeremy的演讲。首先是一番自我介绍(顺便还为他那本《high performence mysql》做了广告,哈哈)。之后很大的篇幅都用来讲了api的应用。他提到很多web应用不再只是提供一个web page,而是提供一个资源的接口,任何人都可以使用,无论是商业还是非商业的。期间使用了大量例子来展示这些应用,包括使用他个人blog上的一些api应用。
在rasmus和jeremy的演讲结束后,都有提问时间。我本来想问一个关于smarty的问题,但是最后没问。不过下午的场里,这个问题被我提了出来(当然这是后话)。
下午
下午去了php和ruby的专场。演讲php方面主要是rasmus和phpchina的一个总经理。由于中午饭吃得过久,导致下午rasmus的演讲我并没有全部听完,不过由于迟到的原因,没有剩余普通座位的情况下,我们得以坐到第一排的贵宾席,近距离地听完剩下的演讲。
rasmus这次还是对技术的细节做了很多分析,我看主要是安全方面的。这次他说的东西对我来说感觉都比较偏,或者说基本上国内没见人讨论过的一些安全细节。例如pdf的脚本执行漏洞这些。这个演讲幻灯片的内容我得抽时间再去了解一下。
rasmus演讲结束后,我提了两个问题。一个是问他是否了解zend framework里lucene模块,因为这个模块在处理中文或者说多字节的时候,存在很多问题。这个以前在zend的邮件列表里也看过讨论,但是好像到目前为止都没有太大进展。不过rasmus明显对zend那一套东西很不感兴趣,直接说不了解了。后来我想这个问题也问得蛮傻的,因为从以前一些网络上的讨论来看,rasmus对于zend一直有抵触情绪。zend framework他当然是不了解的。
第二问题是关于smarty的,我一直对smarty这个东西感觉不满,觉得他不过又是重复发明了轮子。因为php以其可内嵌的特性,本身就是一个很完美的模板引擎。我一直认为rasmus当初创建php就是打算创建一个很完善的模板引擎,这个模板引擎用c实现(当然最早是perl)。而php相对于c来说之所以不是重复发明轮子,我觉得最重要的一个就是可内嵌的特性,然后是简化了开发(当然如果够nb也可以写一堆很完善的c宏出来简化开发)。当我问“你对smarty有什么看法,我觉得你当初创建php就是以模板引擎这个目的来进行的”,rasmus好像是爆发了,讲了大概5分钟对php和smarty的看法。大概的意思就是他觉得smarty确实是在重新发明轮子,随着smarty的越来越大,随着它的完善(while,foreach,if都有了),它将成为一门新的语言(我那时候也脱口说出了becomes a language)。这是一门和php类似的,但却是构建在php上的语言!他还提到yahoo在应用中也是以php作为模板引擎的,并没有引入一套smarty或者其他类似的引擎(但是他们有其他方法可以自由修改模板,这个我没太听清楚,因为站着没戴同声翻译)。
其实我并非反对模板引擎,我只是反对创建一套新的语言来解析模板引擎(除非你确实需要给用户一些修改模板的权限,这样使用原生的php可能会出现一些安全问题)。在web开发里模板引擎的作用我觉得只需要2个原生语言不支持的功能——方便的模板管理和变量输出。其他什么逻辑处理啊,循环啊之类的使用原生的语言即可。
我这次问rasmus,其实主要是想确认一下他对一些东西的认同度。因为作为php语言的发明人,我想他是最有资格对此作出评价的人之一。而smarty是否有存在的理由,这个我在过去的几年里已经和无数人的讨论甚至争吵过了,也有点厌倦了,不想再对此做更多的讨论了。很高兴rasmus和我的看法基本上是一致的。
接下来phpchina那场技术上涉及不多,我就不提了。
最后是来自javaeye的范凯,当然他这次并没有讲java,而是讲了REST在rails里的使用。REST的理念就是一切的操作和访问都根据http的请求方法来进行。例如get请求,就必须获得一个资源(通常是一个html页面),并且该资源的数据在请求结束之后不会发生任何变化。但是当前http实际上在使用的请求方法只有get,post等,而put,delete并没有被支持。于是不被支持的方法,就采用post来模拟。在post数据里多加一个字段,来标志这是一个put或者delete操作。在rails里规定是用__method这个post字段来标志。这并非新的东西,实际上很多项目里,虽然没有明确提到这个rest,但是实际上都采用类类似REST的开发模式。只不过这种模式在rails里被明确地提出来,并可以在这个框架中很方便地使用这种模式。
关于rest那场演讲结束之后的提问里,有人提到安全问题。我觉得提问的人根本没有理解REST,甚至没有理解http的基本的东西。我当时在下面就脱口说出了“要安全传输数据,用https!”。虽然有点打扰问答者,但是我觉得技术讨论就应该这样。一问一答或许不太适合这种技术会议,不过如果讨论太放开,我怀疑讨论的质量是否能被保证(当然即使是按照目前的情况,讨论问题的质量也异常低下!)。
资料
rasmus演讲之PHP on Hormones
rasmus演讲之Performance and Security
后感
一天下来,感觉还是有蛮多收获的,主要是在一些rasmus讲的web的安全和性能的技术细节上,另外对REST的了解也很明确了,并且稍微接触了rails,看了那些代码,感觉是蛮简洁的,就好像在写配制文件一样。另外jeremy和rasmus提到的api和web作为一种资源中心的理念,以前一直很认同,经过这次会议,我觉得自己对这种认同感进一步加强了。
这次会议里涉及web应用的示例基本上都是和yahoo的产品有关,因为两位嘉宾都是来自yahoo的。其实google在web,api方面走得很远的,我觉得会议的演讲者对google过于忽略了。
我一直搞不明白的是为什么下面的提问者都用中式英文在提问题,很多时候都是需要再次把这些英文再转译一次成标准英文上面的老外才听得懂的。而下面的其他听众和同声翻译者有时候也被搞得稀里糊涂。难道说英文是基本的礼节?这我就不知道了。反正我是在我参加过的所有场次里唯一一个用中文(普通话)提问题的。由此我也有很大的希望成为第一个用普通话来向php爸爸提问的人,哈哈。
另外八卦一下。jeremy在中国遇到了gfw,并且为此写了blog。看来随着中外交流的越来越频繁,这个gfw,也会越来越成为阻碍中外友好的一个东西。


2007-05-20 00:48:06
Smarty itself also needs a template engine too….
中
2007-05-21 22:59:28
原来那个提问的就是你啊。
呵呵
2007-05-23 11:10:48
帅 ~ 下次来杭州通知一声啊 ~ 呵呵
2007-06-03 03:36:47
to heiyo:
好啊,下次去杭州的话一定通知你
2007-06-13 09:52:05
一个字,真帅