November 7th, 2007 by 张磊
终于开始做事了。睡午觉时在考虑Camel的用户后台,想到里面零碎地有很多种数据,有点头大。于是打算用一个框架抽象一下,就像ROR那样,可以自动把表转化成对象。 PHP下面这样的框架很多,Cake/Flea等都可以做到。可是在项目里再引入这些框架实在显得太臃肿,还可能被他们绑住手脚。我一下就大胆起来,要不自己写一个吧。说做就做,起床花几个小时写了一个粗糙的框架,我先把它叫做CF(Camel Framework)。主体就是一个抽象类,可以自动侦测表结构,然后提供一些常用操作的函数。不支持ROR里那些复杂的东西。 程序只有70行(写得太快就没写注释),进行了些简单的测试还比较满意,因为太粗糙了就不放出来了。将来的Camel里数据操作必然会用到这个精巧的CF,面对再多样的数据也不会发愁了——也许还能在未来的其他项目中用到CF呢。 不过据说CF写好,某人会有奖励哎 。
April 7th, 2007 by 张磊
昨天晚上和一个朋友聊起rails框架。他有多年编程经验,对ruby有一定了解,但是对rails并不熟悉,我当时心里感叹,这才是牛人啊。我就不一样了,我是因为rails才知道了ruby。事实上,如果没有rails框架,恐怕ruby只是小部分Geek玩耍的工具了。一个框架捧红了一门语言,可想而知,rails是多么地好用。douban最初就选择了ROR,我的一个朋友,现在我使用的这款WP主题的汉化者,也在潜心研究ROR。我和POPO也没有免俗,都借了ROR的书来看。 不只是ruby有框架,框架是一个普遍的概念,最初应该是从Java引入的。早期的PHP也可以看作是C的框架,而在PHP之上建筑起来的框架又有很多,譬如ZendFramework,CakePHP等等。AJAX的兴起也催生了一大堆新的框架,我所熟悉的CPAINT曾经是很好的,但现在面临着很多后起之秀的挑战。 今天一早起来,我开始为我手头的一个项目作最后的冲刺。我手里总有做不完的事,所以如果不快点,可能就真的做不过来了。最后的任务是添加一些AJAX的点缀上去。虽然好久没有做过AJAX了,但用CPAINT框架能让我从繁重的编程工作中解脱出来。很快我就搞定了一块,这时Alone还在床上大睡呢。 框架能给我们带来什么呢?我觉得最重要的就是开发效率的提升。使用Rails框架号称“把东西做出来的时间比想出来的时间还要少”。再比如写AJAX,使用现成的框架可以让你免去写创建xmlHTTP对象、浏览器判断这方面的东西,很多框架还可以做一些Js的特效。写CGI程序最早用的C,PHP的出现大大简化了CGI程序的开发。我们在php中接触到的字符串处理函数都是C语言函数的封装。而PHP之上又建筑起来了一系列的框架,比如cakePHP可以很轻松地做MVC开发,也有人把它称为PHP中的rails。 但是另一方面,使用框架也会使开发过程中对程序的控制不够精确,有时也会出现一些让人摸不着头脑的问题(很少很少)。所以我一直都想自己写一套PHP框架,包含基本的功能,可以方便以后的开发。我心中理想的框架是这样的:支持AJAX(可以封装CPAINT,加入一些我常用的函数),包含图像处理,成形的模板系统,一些使用广泛的类。不需要MVC和ORM。实际上这些在我现在所做的项目里都有体现,我需要做的就是把他们提炼出来,用于以后的开发。 框架是个好东西,在这个什么都追求效率的年代,有一套趁手的框架就像是关云长拿到了青龙偃月刀。很久没写技术方面的东西,一点感想,备忘而已。