欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

元数据驱动还是标签引擎?

程序员文章站 2022-05-11 08:54:52
...

 ——OpenBiz Cubi试用随感
PHP的开发框架,是向用户提供元数据驱动还是标签引擎?可能很多人几乎无法回答。因为,此问题太抽象了。
何为元数据驱动?一般情况下:页面几乎没有PHP的程序代码,几乎极少的代码。但是,任一功能,必须要有基于XML/YAML格式的配置文件,来告诉程序,页面处理哪些数据,如何处理。这就是说,元数据驱动本身,有一个通用的处理程序。
元数据驱动最大的好处是其快速开发能力。因为,一切只要配置,甚至,可以写一个向导,生成这些配置文件。对于一些额外的,无法配置的,才用代码来完成。
近日来,发现PHP的框架,基于元数据驱动来势汹猛,特别是OpenBiz Cubi进入中国以后,使人们对元数据驱动完全刮目相看。
何为标签引擎?JAVA中的STRUTS是近乎标准的标签引擎。但PHP的SMARTY,只是抄袭的JAVA。所以,从这一点来说,PHP至今没有一个很好的标签引擎。
其实,无论是元数据驱动还是标签引擎,其目标是能让用户快速开发。并且,从二者的长处来看,并不能偏废任意一个。因为,元数据驱动的界面都是标准界面,它无法处理灵活的布局,不同的STYLE。所以,它是一个比较完美的企业应用解决方案。并不适用于互联网,特别象是WEB2.0一类的网站的开发。
标签引擎,最大的问题,是会让开发者感到,为了MVC而MVC,独立的标签页排板,最终面临的性能上的消耗。但只有标签引擎,才是真正适合网站一类的开发。
今天有幸试用了OpenBiz Cubi,但绝对没想到,一个开发10年之久的这个框架是如此粗糙。现描述我试用遇到的问题:
1、安装时,直接使用WINDOWS的安装包,下载的是3.09最新版。然而,就是到创建快方式时程序不再工作,陷入死循环之中。
经过多次折腾,结果发现,安装包不允许操作系统中有APACHE,MYSQL这些已注册的服务,否则,就会报错。
当然,中国的软件公司,绝大多数都是使用AppServer,这种极为初级的开发环境。在一台机器中配置多套WAMP,这样的公司并不多见。所以,该我倒霉,OpenBiz Cubi3.09一开始就是始终安装不上。
2、OpenBiz Cubi最为吸引人的亮点,那就是它有AppBuilder。这就是说,这个框架可以编程序。初次使用AppBuilder,添加数据库链接,测试链接,正常,但点击下一步,异常错误。数据库就是连不上。
AppBuilder最让人痛苦的是,每一个表,每一个字段都得一一录一遍。这对于使用数据库设计工具的,或己经完成数据分析,表己经生成的,完全是一个脱裤子放屁的事情。
我试着将表导入到库中,这里,吸取前一次的教训,我只用现有的数据库Cubi,导入进去后,选择一个表,创建应用,结果,在完成前一步,出错,报错的内容,居然是要往USER表中插入一条记录失败。
这是一个开发工具,开发中有很多例外的需求,我无法想象,OpenBiz Cubi的QA是如何做的,OpenBiz Cubi的需求分析水平是什么水准?打心理希望OpenBiz Cubi能有一两个真正的架构师。
联想到本人PHP技术历程中,一直不断带领团队在开发PHP的框架。从最简单的,无设计模式的,WEB界面组件库的WOLF v1.0(Web Object Light Framework)(一个程序库式的框架)到WOLF v2.0,(基于元数据驱动的框架),以及Ulex v1.0(Util Librarie Enterprise eXtension)(一个基于标签库,但希望能拥有基于元数据驱动的优点的框架)。这些框架都没有敢开源发布。主要原因有几个方面:一是框架本身不够完善。其次,一个喜好重造*的人,让一个企业的团队,进行新技术的研发,特别是,针对基于标签库,但希望能拥有基于元数据驱动的优点的框架,走上的技术上的不归路。本人得到的几乎不是经验,更多的是教训。WOLF v2.0的使用,让我深深了解到元数据驱动的局限性,有时,会大大影响开发的进程。这当然,是一些题外话了。
但当我看到OpenBiz Cubi,或者看到Phalcon框架之时,我仍有一种冲动,因为我发现,我的梦想仍然没有实现。可惜的是,写代码的生涯现并不多算是结束了。
Phalcon的标签引擎相当初级,没有对应的界面组件。这当然与Phalcon本身的定位有关,因为,它是注重于性能的。它只是一个PHP的扩展,无法涉及JS,HTML层面。
PHP相对于JAVA,是不是永远在其初级的层次上转圈子?看看JAVA,除了SSH,还有TAPESTRAY。
OpenBiz Cubi有它与时俱进的一面。它将自己定位是PAAS。它确实可以称为是一个PAAS。而且,虽然经历了漫长的10年的开发,云计算给它带来了新的生机。