最灵活的Web开发框架架构?

时间:2008-10-09 11:40:16

标签: php architecture frameworks

显然,没有一种解决方案可以满足每个人的需求;建筑始终是一种权衡。我想创建一个最初针对网络游戏RAD的框架。目标语言是PHP,虽然该架构应该广泛适用。

我对此框架的目标是:灵活地实现结果;开发人员的最大舒适度;连接模块,如LEGO®块;许多类型的输入,多种类型的输出,一种用于处理的格式。

不优先考虑的目标是速度,企业使用和赚钱。它应该是一个开源项目。

这种设计的基石是,在转换之前,所有内容都是用XML处理的(基于我使用过的EAI系统的想法,eGate)。数据抽象层 - 希望是一些智能ORM - 现在并不重要。输出将使用XSLT或任何其他自定义模块生成,几乎适用于任何客户端 - 旧浏览器的HTML,现代浏览器的XHTML / HTML5,移动客户端的简单HTML,AJAX / XMLRPC的XML等。

使用XML的主要原因是:

  • 这是一个众所周知的标准
  • 用于导航和修改内容的现有工具,如XPath,SimpleXML和DOM
  • XSLT提供了一种强大而统一的方式将代码转换为任何标签汤
  • 我发现XML标记非常容易阅读,因此我不认为JSON或YAML的优点在这里有所作为
  • 内容可以轻松堆叠,只要使用XSLT正确转换,内容的顺序就不重要了

页面生成过程包括以下阶段:

  1. 预处理:初始化模块,处理GPCS数据,应用默认[XML]模板
  2. 处理/生成:业务逻辑的主要部分,使用最大数据生成膨胀的XML(尽管希望优化不生成balast)
  3. 处理:一些额外的业务逻辑,例如削减部分标记,准备转型,报告,统计等。
  4. 后处理:通过转换引擎解析XML(很可能只是XSLT),输出。
  5. 将使用大量元数据(例如标签,权限,重要性,必要性,目标输出类型)生成内容,这些元数据将在后处理过程中被删除。

    所以,我的问题是:除速度外,这个解决方案的缺点是什么?在框架的开发/维护及其应用程序中哪里可能出错?这种架构的缺点是什么?

5 个答案:

答案 0 :(得分:3)

XSLT管理起来可能很庞大,并且本质上增加了开发人员必须使用的额外编程语言(至少如果我正确理解您的描述)。我的经验是相对较少的人知道它,甚至更少的人可以做到他们想要的。

答案 1 :(得分:2)

我不确定向你提出什么样的“灵活框架”。这一切都取决于你的舒适度和个人品味。

我知道的一件事是,它首先看起来有多吸引人,就是远离XSLT。使用XSLT做Hello World类型的东西和简单的例子非常简单。但是,使用XSLT,更复杂的项目变得完全无法管理(更不用说难以理解)了。我的经验是它给项目带来了巨大的压力。

答案 2 :(得分:1)

我认为你正在寻找一个非常复杂的解决方案。简单地设计和构建您将使用的Schema是一项重大工作。如果您的项目总共涉及5-6人,那么您可能需要进行有组织的架构设计工作。我认为这是你所知道的一点。

我质疑并可能会在前端选择PHP。我还认为你错误地在很大程度上决定了XML。

以下是我的工作:

  1. 使用Grails.org构建服务层
  2. 保留所有可以休息的RESTFUL资源
  3. 使用Grails中的X-fire插件构建任何需要构建的SOAP服务
  4. 利用Grails的GORM和RAD功能来缩短开发时间。
  5. 使用X或Y语言或平台构建客户端以使用这些服务。
  6. 我绝对希望纯Java的速度能够完成我的所有XML翻译/处理。如果您有大型文档,那么处理这些文档需要相当长的时间。

    你比任何人都更了解你的环境的力量,但我会提醒你做最先行的最简单的事情而不是过度建筑。

答案 3 :(得分:1)

您所描述的内容可能会使用tox来实施。它使用混合MVC-ARS架构。我看到的障碍是成本点tox,因为它依赖于Oracle。当然,既然它是开源的,你可以convert it to Postgresql

答案 4 :(得分:-2)

我过去曾参与过一些网络游戏,老实说,他们都没有需要任何复杂而笨拙的东西。