Project Camel Explained
最近在忙着做一个叫Camel的项目,用上GTD之后,我也把项目的进程放到了里面,这样可以被监督着。Camel是用来做一个提供建站服务的东西,可以让用户轻易地搭建一个功能齐全的网站。同时我也想对现有的一些同类的程序做些改进,看看他们的数据库和页面,做的实在不让人满意。 从技术上,我觉得我可以从中学到很多。开始在web程序中试用面向对象,是从牛扑开始的(Project ZLLP)。但独立地大规模地使用对象,是在期末软件实习里面做的在线购物车(Project OLBK),老师看完我做的东西之后,说可以拿来当毕业设计了,顺理成章地拿了优──实际上我只做了7、8天的样子。而现在我正在做的Camel 里面,一切都是对象。 当接到一个HTTP请求,服务器上会用.htaccess文件将所有的都请求重定向(不是301或302,而是Rewrite)到一个叫做page.php的文件,当然,带着不同的GET参数。page.php中会初始化一个Site对象,这个对象里除了一些必要的内部变量,还包含了缓存对象、数据库对象、smarttemplate对象,以及我自己写的字典对象、语言包对象、分页对象、校验对象等等。所有的任务都在Site内部完成,然后通过smarttemplate显示出来。现在,这样的一个骨架已经完成了。 后台管理我也打算采用类似的方式,不过还没有进行设计,相对来说可能要花更多的精力。 很久以前读了Babel的程序,感叹Livid的才华。用完全的面向对象写一个社区程序,之前的人们也许想都没有想过。最大的那个文件有几百K──想像一下,全部手写的程序,几百K实在是庞然大物了。而Babel的设计思想至少影响了我的3个项目,虽然,和babel的差距还很远。 2005年我刚上大学时17岁,85年出生的Livid20岁。明年即将满20的我,不知道能学到Livid的几分。而Livid更打动我的是那种轻松闲适的生活态度,同样是85年,有的人让我顶礼膜拜,有的人在我心里还是小女孩。

