【问题标题】:The most flexible framework architecture for web development? [closed]最灵活的 Web 开发框架架构? [关闭]
【发布时间】:2010-09-16 06:10:19
【问题描述】:

编辑,2020/09:如果有人想知道,12 年后,是的,我们现在都已经迁移到 JSON 和 Kubernetes。原文如下。

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

我为这个框架设定的目标是:以灵活的方式实现结果;为开发人员提供最大的舒适度;连接乐高®积木等模块;多种输入,多种输出,一种处理格式。

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

此设计的基石是所有内容在转换之前都在 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(尽管希望优化为不生成压载物)
  3. 处理:一些额外的业务逻辑,例如减少一些标记,为转换、报告、统计等做准备。
  4. 后处理:通过转换引擎(很可能只是 XSLT)解析 XML,输出。

生成的内容会包含大量元数据(例如标签、权限、重要性、必要性、目标输出类型),这些元数据将在后期处理过程中被剥离。

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

【问题讨论】:

    标签: architecture frameworks


    【解决方案1】:

    我过去曾开发过一些网页游戏,老实说,它们都不需要这么复杂和笨重的东西。

    【讨论】:

      【解决方案2】:

      XSLT 管理起来可能很笨重,而且本质上增加了一种开发人员必须使用的额外编程语言(至少在我正确理解您的描述的情况下)。我的经验是,知道它的人相对较少,能够让它为所欲为的人更少。

      【讨论】:

      • 我使用 XSLT 的经验没有显示出这些缺点。
      • 您提出了一个关于掌握 XSLT 的人数的有效观点;将 PHP 与 XSLT 耦合存在一些分歧,但它似乎是转换 XML 的唯一正式语言。我可能想提供 XSLT 的替代方案。谢谢。
      【解决方案3】:

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

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

      这是我的工作:

      1. 使用 Grails.org 构建服务层
      2. 保持所有可以 RESTFUL 的资源处于静止状态
      3. 使用 Grails 中的 X-fire 插件构建任何需要构建的 SOAP 服务
      4. 利用 Grails 的 GORM 和 RAD 功能来缩短开发时间。
      5. 用 X 或 Y 语言或平台构建客户端以使用这些服务。

      我绝对希望纯 Java 的速度能够完成我所有的 XML 翻译/处理。如果您有大型文档,则处理这些文档需要相当长的时间。

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

      【讨论】:

      • 感谢您的意见。然而,即使我的想法对于一个简单的 CMS 来说过于复杂,它也不会涉及冗长的文档处理——我很确定在 PHP 中使用 XSLT 处理我的 XML 会比调用 web 服务快得多且简单得多是使用 YET 另一个语言构建的。
      【解决方案4】:

      我也不确定向您建议什么“灵活框架”。这完全取决于您的喜好和个人品味。

      我知道的一件事是远离 XSLT。用 XSLT 做 Hello World 类型的东西和简单的例子非常简单。但是,使用 XSLT,更复杂的项目变得完全无法管理(更不用说不可读了)。我的经验是它给项目带来了巨大的压力。

      【讨论】:

      • 我使用 XSLT 的经验没有显示出这些缺点。
      【解决方案5】:

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

      【讨论】:

      • 如果您对tox有任何疑问,请告诉我,网站的问题按钮来找我
      猜你喜欢
      • 2015-08-09
      • 2013-06-16
      • 2016-02-29
      • 2012-09-22
      • 2010-11-22
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2012-03-18
      相关资源
      最近更新 更多