新blog、CakePHP、jQuery和其它
有两个多月没有更新过这里了,这段时间陆陆续续地写着新blog(如你所见)的程序,工期远远超过了原有的预想,甚至直到现在我也没能最终完成原计划的功能!因此写这篇文章的目的,就不仅仅在于表明新blog的开张,还在于把其间的一些感受和经验分享出来。
CakePHP
这是一个PHP的开发框架,基本上,你可以把它看成是Ruby on Rails的PHP实现。我于05年春天接触到Cake,并当即用它给一个客户做了个网站(我有时会利用业余时间做网站,算是赚外快吧),当时就被这个框架的魔法(“automagic”)迷住了,并一直使用至今。
应该说,Cake的功能是非常强大的,Rails的思想很容易让初次接触的人着迷,然而用的越多,我却越来越陷入一个两难的困境:Cake能让你在极短时间内畅快地完成一些支持“魔法”的任务,比如ActiveRecord、Routes(类似URL映射)和Cache处理等,然而在不支持“魔法”的任务上,你不得不花极高的成本、以不怎么优美的方式去完成,最终的结果,便是前者所带来的效率提升往往被后者所抵消甚至超过,因此要么放弃Cake并花费许多精力自己从头构建一个框架,要么在Cake上花更多的学习时间。
出现这一问题的原因有很多,除却我自己的水平问题外,可以归结为以下几方面:
文档缺乏。毫不夸张的说,我有50%的时间都花在找文档上。作为号称最流行的PHP开源开发框架,Cake文档的缺乏到了令人发指的地步!官方只提供了一个内容不多的手册(Manual)、一个API查询站点(谢天谢地,虽然内容非常简单,但至少提供了API查询)、一个Google Group和一个称为“Bakery”的社区。核心开发小组中没有人出来解释一下隐藏在成千上万行代码下的Cake到底是如何运行的,手册只能让你对整个框架有个非常初步的认识(最新的1.2版甚至连手册都没有!),API库中的函数功能描述往往语焉不详,没有示例,甚至连参数和返回值都没有相应说明,从我的个人经验来看,要解决一个问题,最有效的方式就是在Google Group中不停的搜索。
Cake的开发小组如果真想让更多的人了解和使用Cake,与其不停地增加新功能,倒不如花时间在写文档上。
设计更新太频繁当然这只针对尚处于“pre beta”阶段的1.2版而言,然而即便如此,变化的速度还是有些快了,用了一个月的函数在新的nightly版中失效,或是处理逻辑上出现大的变化,这样的例子屡见不鲜,让人很难适应。
在对Ruby及RoR做出了一段时间的考察后,我越来越倾向于放弃Cake并转移到RoR上来。
jQuery
这是我见过的最棒的Javascript框架!我曾经花了几个月的时间去了解和评估当前的一些JS框架,尝试了Prototype、Moo Tool、YUI/YUI Ext、Qooxdoo等等一系列框架,最终被jQuery强大的功能、简洁优雅的语法、方便的扩展性和庞大的用户群所吸引,并决定以它作为今后几年的主力JS框架。如果你还在为做出正确的选择而犹豫不绝,或者喜欢Ruby那种接近自然语言的语法,我强烈推荐jQuery。
Qooxdoo(QX)
此外要提的是Qooxdoo(QX)。它的设计思路明显不同,其它JS框架可以说是对由HTML/CSS构成的用户界面和行为的补充,但QX则不仅完全以其自身来构建用户界面,而且还提供了许多其它类库。给我的感觉是,其开发团队要么野心非常庞大,要么就是思路的确与众不同。
CSS
做网页也有8年多的时间了,这是我第一次完全弃用表格、并使用CSS定位。对我这个初学者来说,使用CSS最爽的便是逻辑和控制。各个HTML元素、或者说样式定义都能体现彼此间的逻辑关系,这样事物会显得井井有条;其次,使用CSS而不是表格来控制布局,可以真正做到灵活多变,这是表格布局很难做到的;此外,CSS的定义方式很好的体现了“Dont't Repeat Yourself(DRY)”的思想,尤其适于我这种懒人。总的来说,使用CSS布局是一种令人愉快的体验。
当然问题也不是没有,各个浏览器对CSS支持的程度和方式不同,也是非常头疼的一点。并且在Windows下我还没有找到像CSSEdit或Coda这样好用的CSS编辑器。
啰啰嗦嗦地说了一通,其实心里还是很高兴新Blog开张的,:D



13 comments so far