TurboGears 2.0

2009年05月31日 10:57

前天跟猛禽碰了一下头,讨论了一些狗屎皮项目的问题,其中不可免俗的再次提到了开发框架的选用问题。当然,我坚持认为Pylons是一个很有前途的好框架,但是为它选择各种middleware也是一件非常累的事情。于是我们又想到了Turbogears 2.0,这个基于Pylons的框架。于是去它的网站一看,运气不错,TG2.0正式版5月27号新鲜出炉。于是我当然是非常有兴趣去看一眼了。

TG2的开发团队,显然对这个新的框架很满意。他们说

TurboGears 2是对TurboGears的再造,它回到了TurboGears的根源。
TurboGears2之于Pylons就相当于Ubuntu之于Debian。

他们想做一个用户体验更好的环境,但是当用户需要更强大的能力时,他们也能提供。实际上他们也基本上做到了这一点(得益于Pylons的优秀架构)。它基本上完全继承了Pylons的一切,只是做了少量的改进(有一部分不能算是改进,只能算是对TG1的兼容性考虑),集成了不少第三方开发包(有一些其实也是TG1已经在用的)。

当然,一些改动也不可避免的造成了开发习惯和风格的变化。下面我就具体的说一说目前我了解到的一些区别。

1. TG2的安装比Pylons稍复杂一些,虽然也使用了virtualenv和初始安装脚本tg2-bootstrap.py(非常类似于Pylons 0.9.7的go-pylons.py),但安装的东西明显多了,而且因为使用了respoze.who作为权限认证框架,必须要安装zope_interface库,而这个库是需要现场编译的(所以在Ubuntu下必须要安装python-dev,安装文档还要求装build-essential,很吓人,不过我实际测试下来build-essential应该不是必需的。)。而且比较奇怪的是,在安装完TG2之后,创建项目时,文档要求你再做一步 python setup.py develop,这个步骤又会补充安装一部分组件。很奇怪,不知道TG2为什么要把组件安装分成两个步骤来做。

2. TG2创建项目的命令是 paster quickstart 而不是 paster create -t turbogears2(不过根据paster的帮助信息显示,后者应该也可以用,具体有什么区别还不知道)。

3. TG2默认会创建一个root.py的controller,而不像Pylons那样用命令新建Controller。而且它的URL是使用TG1风格的expose而不是Pylons的routes。(虽然Routes仍然可用,而且实际上TG2还是基于Routes的)。这个变化会导致TG2的开发风格跟Pylons有所区别。不过对于大多数情况来说,expose确实要比routes简便一些。而且单controller的风格也减少了过度使用Controller的风险。(我个人认为,一个Controller应该是一个大的功能块,比如前台界面是一个controller,后台管理是另一个。在Pylons里因为没有硬性限制和风格导引,有些人会把controller当作功能区分来用,这样其实会比较混乱。TG2的风格导引我认为是比较正确的)

4. 在创建项目的时候,TG2会问你是不是需要使用Authorization和Authentication的功能。如果你选择Yes的话,TG2会自动帮你创建user、group、role等的一套数据模型,并且会产生一个security.py的controller,里面写好一系列差不多算是演示性质的代码。这对于新手而言,当然是比较方便,因为居然有一系列现成可参考的代码在那里。不过,其实我不太喜欢这种做法,你生成出一堆对我来说无用的代码,还要我来修改或者删除,这是何苦来哉。不过,应该是可以在生成的时候选“No”,然后自己手工增加Auth功能,虽然没试过,不过根据我使用Pylons的经验,应该没太大问题。

5. TG2选择了ToscaWidget来做自动生成Form的工作,这个东西,从文档介绍来看,似乎不太合我的胃口。具体使用效果要待观察。不过,大不了我可以不用。

6. TG2的文档比Pylons要好很多,毕竟它是一个“立即上手”类型的框架,对于很多实际开发中的问题都做了阐述和解决。不过大概是2.0刚刚正式推出,文档的完善程度和准确度还需要提高。

7. TG2默认的模板引擎是Genshi而不是Pylons默认的Mako,不过TG2可以相当方便的切换默认模板引擎,Mako也是它默认支持的引擎之一。所以换成Mako是非常方便的。而且TG2还支持多模板引擎混合使用。

目前大概就了解成这样。总体来说,我对这个框架印象还不错,最不济我可以把它完全当作Pylons来用。而它提供的那些集成功能,有多大程度能帮到我,需要进一步做试验。但是我想,完全没用的可能性是不大的。

悄悄的升级了

2009年05月19日 22:39

最近一段时间因为新版本要上线,忙得焦头烂额,自然也不顾上写blog了。

今天晚上上了一下线,有人告诉我说,PivotX 2.0正式版发布了

于是就小小升了一下级。因为是从beta升到正式版,改动相对不算太大,外观也没有什么变化。仅仅在这里记录一下。

虽然这个blog并不十分完美,现在也懒得再折腾了。能用就行。

飙车、撞人 没有评论

2009年05月11日 13:59

上周一周在北京出差,基本上处于与世隔绝的状态,因此直到回上海之后才开始听说并关注了一下杭州的70码事件。

在这些天里,网上的评论已经铺天盖地,对事件的介绍也是比比皆是。该说的,该骂的,都做得差不多了,我本来也没什么更多的可以说,不过因为自己在文二西路那一带也曾经工作生活过一段时间,所以还是想说点什么。

不算是评论。对于事件本身,我没评论。

1. 撞人的小子凭他那态度,再被骂狠点也不解气。

2. 但他不应该成为这次事件的替死鬼。

3. 这件事被闹大的原因,比这件事本身要重要得多。

4. 这件事,以及很多很多其他的事情,不应该在热闹一阵子之后被渐渐遗忘。

就这么多。

Design downloaded from free website templates.