新blog、CakePHP、jQuery和其它

| 13 comments 2007-11-11 22:46:01

有两个多月没有更新过这里了,这段时间陆陆续续地写着新blog(如你所见)的程序,工期远远超过了原有的预想,甚至直到现在我也没能最终完成原计划的功能!因此写这篇文章的目的,就不仅仅在于表明新blog的开张,还在于把其间的一些感受和经验分享出来。

CakePHP

这是一个PHP的开发框架,基本上,你可以把它看成是Ruby on Rails的PHP实现。我于05年春天接触到Cake,并当即用它给一个客户做了个网站(我有时会利用业余时间做网站,算是赚外快吧),当时就被这个框架的魔法(“automagic”)迷住了,并一直使用至今。

应该说,Cake的功能是非常强大的,Rails的思想很容易让初次接触的人着迷,然而用的越多,我却越来越陷入一个两难的困境:Cake能让你在极短时间内畅快地完成一些支持“魔法”的任务,比如ActiveRecord、Routes(类似URL映射)和Cache处理等,然而在不支持“魔法”的任务上,你不得不花极高的成本、以不怎么优美的方式去完成,最终的结果,便是前者所带来的效率提升往往被后者所抵消甚至超过,因此要么放弃Cake并花费许多精力自己从头构建一个框架,要么在Cake上花更多的学习时间。

出现这一问题的原因有很多,除却我自己的水平问题外,可以归结为以下几方面:

  1. 文档缺乏。毫不夸张的说,我有50%的时间都花在找文档上。作为号称最流行的PHP开源开发框架,Cake文档的缺乏到了令人发指的地步!官方只提供了一个内容不多的手册(Manual)、一个API查询站点(谢天谢地,虽然内容非常简单,但至少提供了API查询)、一个Google Group和一个称为“Bakery”的社区。核心开发小组中没有人出来解释一下隐藏在成千上万行代码下的Cake到底是如何运行的,手册只能让你对整个框架有个非常初步的认识(最新的1.2版甚至连手册都没有!),API库中的函数功能描述往往语焉不详,没有示例,甚至连参数和返回值都没有相应说明,从我的个人经验来看,要解决一个问题,最有效的方式就是在Google Group中不停的搜索。

    Cake的开发小组如果真想让更多的人了解和使用Cake,与其不停地增加新功能,倒不如花时间在写文档上。

  2. 设计更新太频繁当然这只针对尚处于“pre beta”阶段的1.2版而言,然而即便如此,变化的速度还是有些快了,用了一个月的函数在新的nightly版中失效,或是处理逻辑上出现大的变化,这样的例子屡见不鲜,让人很难适应。

在对Ruby及RoR做出了一段时间的考察后,我越来越倾向于放弃Cake并转移到RoR上来。

jQuery

这是我见过的最棒的Javascript框架!我曾经花了几个月的时间去了解和评估当前的一些JS框架,尝试了PrototypeMoo ToolYUI/YUI ExtQooxdoo等等一系列框架,最终被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下我还没有找到像CSSEditCoda这样好用的CSS编辑器。

啰啰嗦嗦地说了一通,其实心里还是很高兴新Blog开张的,:D

13 comments so far

  1. 学习笔记 2008-04-18 17:14:10

    我学习之路是这样的:html -> CSS -> JavaScript -> jQuery 现在在学PHP,想找个PHP的框架快速入手,看了你的文章让我对cakePHP有点担心,

    作为一个PHP新手,对PHP还不太了解,而且本人的英文也不是很好,所以要不要学cakePHP看样子得重新考虑了~

  2. Felix 2008-04-23 11:38:27

    PHP的优势在于非常成熟,相关资料和讨论区很多,有问题很容易解决。遗憾的是,如果使用Cake的话,这个优势就不明显了,英文不好的话会很麻烦,Cake的中文讨论区很少,比较活跃的只有台湾那边的“TWPUG”(http://twpug.net/modules/news/article.php?storyid=211),如果英文还可以接受的话,推荐直接去IRC解决问题,Cake的作者经常在上面。

    Ruby的前景比以前要好很多,各种开发环境也在不断地成熟,RoR的中文资料很多。不过唯一的问题就是,相比较于PHP,Ruby的总体环境还不是很成熟,典型的如支持Ruby的虚拟主机就不是很多。

  3. YuZhen 2009-02-04 07:02:10

    我也在找适合自己用的框架,cakephp zend framework CodeIgniter 还有很多国内的,楼主觉得 哪个框架和 就jQuery smarty配合的比较好,后面两个我已经用了一年多了 觉得很顺手.

  4. 丁宇 2009-02-04 20:14:51

    @YuZhen 我不用Smarty,所以也不太清楚。不过Cake下有第三方的Smarty支持。至于jQuery,Cake内建了prototype的helper,使用起来非常方便,缺点就是js代码会和html混杂在一起。如果写无侵入js的话,php和js各自的框架应该互不影响吧。

    看了你的blog,澳大利亚的天空真蓝,呵呵。

  5. YuZhen 2009-02-04 20:31:18

    澳洲最不缺少的可能就是阳光了.

    有机会多沟通吧,也作了好多年网站了,还要不断学习新的东西 好累阿

  6. AquarHEAD 2010-03-11 00:02:44

    看到西乔新推发现你的博客,终于在国内看到一个Cake的开发者,还写了个博客,哇,观摩观摩。

    我是在翻译<a href="http://article.yeeyan.org/view/aquarhead/51909">关于PHP开发框架</a>的时候知道Cake的,刚被保送浙大了,学校微机室让帮着做一个学生评价的系统。就选了这个Cake。

    学了能有一周了,算做出个“原型”,不过Cake的文档问题确实很很很严重。幸亏我英语还好。而且Cake的API怎么不列出来有什么选项,FormHelper->input的type我至今还是不知道都能用啥。。。

  7. 丁宇 2010-03-11 10:19:29

    @AquarHEAD 强烈建议你放弃Cake,转用Rails。Cake是模仿Rails来做的,但很多地方比Rails做得差很多,了解得越多,越是感觉如此。你现在还年轻的很,时间也充裕,学习一门新的语言(Ruby)应该不是什么难事。我虽然一直想转到RoR上来,无奈时间有限,成本太高。

  8. AquarHEAD 2010-03-11 12:26:10

    @Felix Ding 哦,原来看过介绍Ruby的文章,不很喜欢那种自由度太高的编程方式,一个功能各种写法,统一风格不是很困难么?

    P.S.我的Gravatar怎么不显示捏。。。

  9. AquarHEAD 2010-03-11 12:58:59

    对了,你觉得Python/Django这个框架怎么样?

  10. 丁宇 2010-03-11 13:36:50

    @AquarHEAD 统一风格给你带来的好处,远不及一个不是很好的框架给你带来的坏处多。如果你一定要严谨的话,Java的Hiberate/Spring/Struts等东西应该适合你。

    我对Python不熟悉,我找个同事来回答你。

  11. Zhou Rui 2010-03-11 13:53:36

    @AquarHEAD 个人看法django的优势在ORM,可以把对数据库的操作封装起来,让你只关心摆弄数据的逻辑,不过template就有点弱,但是文档很全面(甚至还有一本中文书),个人没接触过RoR,但是既然是学生那就没必要怕折腾,都拿来用一下,找个最合自己开发习惯和理念的工具,相比PHP,Python的用途也会更广一些

  12. AquarHEAD 2010-03-11 15:30:28

    @Zhou 嗯,是个好主意~当初我在Django和Cake之间犹豫了一下,然后我寻思Django还可以写桌面程序,就Cake了。。。

    @Ding 刚看CakePHP的命名规范时觉得很死板,不过要是就做Cake有的那些功能还是挺方便的。先把手头这个网站弄完吧~以后肯定会转型。:D

  13. 学习笔记 2010-03-12 19:29:02

    这文章是我很久以前回复的,刚看邮箱才知道有人在讨论,呵呵!

    我不用cake有一年多了,cake有点大,也不够轻快,现使用的是kohana,如果你感兴趣可以看下!

    最近发现个doophp,开发团队有华人,但还处于开发阶段,文档以及功能都不是很强大,不过我很喜欢doophp的开发思想以及设置方式。

(Support Gravatar)
  • angel.gif
  • glasses.gif
  • hum.gif
  • sad.gif
  • caresse.gif
  • sick.gif
  • angry.gif
  • zip.gif
  • gun.gif
  • emu.gif
  • big_smile.gif
  • clin_oeil.gif
  • devil.gif
  • wahou.gif
  • confus.gif
  • mad.gif
  • larme.gif
  • wave.gif
  • scare.gif
  • lang_1.gif
  • ask.gif
  • xd.gif
  • eye_up.gif
  • mdr.gif
  • smile_1.gif
  • lang_2.gif
  • zzz.gif
  • bad_smile.gif
  • jet.gif
  • smile_2.gif
  • love.gif

About

我在厦门拍的照片

丁宇(Felix Ding),电脑Geek,狂热的爱书和爱乐分子,99年迷上网页设计,并从此一发不可收。现在在上海做用户体验/产品设计咨询。Email: felixding[AT]gmail.com。

订阅到RSS