javascript - 反射 Web 应用程序 (WebIDE)

标签 javascript reflection

序言

因此,这个问题已经得到解答,但由于这是我针对该项目提出的第一个问题,我将在针对该项目提出的其他问题中继续引用它。

对于来自另一个问题的任何人,这里是基本思想:创建一个网络应用程序,可以使创建其他网络应用程序或网站变得更加容易。为此,您基本上会创建一个带有“小部件”的模块化站点,然后将它们组合到最终显示页面中。如果您使用 Prototype 或 .prototype.fn,则每个小部件可能都有自己的一组功能组合在一个类中。

目前

我正在研究基础知识:编辑 CSS、创建用户 JavaScript 函数并动态查找他们的名称/输入,以及项目的其他关键技术方面。很快我会为我希望创建的功能创建一个粗略的时间表。完成此操作后不久,我打算创建一个博客,让每个人都了解项目的状态。


原始问题

大家好,我目前正在尝试将我对个人项目的想法正式化(稍后可能会变成专业项目)。这个概念是一个反射式网络应用程序。换句话说,可以构建其他 Web 应用程序并积极用于构建和改进自身的 Web 应用程序。将其视为一种用于创建网络应用程序的网络应用程序 IDE。

因此,在我开始进一步解释之前,我想问大家一个问题:您认为一路上最艰难的挑战是什么?从哪里开始最好?

现在让我试着在这里简要解释一下这个概念的一些方面。我希望此应用程序尽可能接近所见即所得,因为您有一个显示区域,可以显示网站的全部或部分内容。您应该可以自由浏览它以到达您想要处理的区域,并使用 JavaScript 调试器/控制台询问“如果……会发生什么?”问题。

我打算通过组件构建网络应用程序。换句话说,结果将是一个非常模块化的 Web 应用程序,因此您可以相当轻松地进行小范围或大规模的调整(通常它应该比在 <insert editor of choice> 中手动编码所有内容更好)。

完成网站/网络应用程序后,该网络应用程序应该能够生成安装和运行创建的网站/网络应用程序所需的所有代码(因此数据库的 CSS、JavaScript、PHP 和 PHP 安装程序)。

以下是迄今为止我遇到的几个主要挑战:

  • 即时更改 CSS
  • 在 JavaScript 中实现反射
  • 准确而简洁的 DOM 树查看器
  • 允许用户选择 JavaScript 库(即 PrototypejQueryDojoextJS 等)

也欢迎任何其他意见和建议。

编辑 1: 我真的很喜欢 AppJet 的想法,我会在这个周末有空的时候详细检查一下。然而,我唯一担心的是,这应该会创建可以进入其他网络服务器的代码,因此虽然 AppJet 可能是我更快开发此应用程序的好方法,但我仍然认为我必须为我的用户生成 PHP 代码放在他们的服务器上。

此外,当我觉得它已准备好供 Beta 测试人员使用时,我一定会免费向网站上的所有人发布它。但我在想,在测试版结束后,我应该遵循类似于 git 的方案:开源应用程序免费,私有(private)/专有应用程序收费。

最佳答案

从概念上讲,您将构建小部件、小部件工厂和制造工厂。

因此,您必须找到制作小部件时可能发生的所有不同类型的交互、小部件之间、工厂内以及多个小部件制造工厂之间的交互才能获得灵感。

有什么东西可以控制抽象到什么程度?

**我认为您需要能够为应用程序空间本身完全抽象出几个层。然后你必须为这一切构建一些管理工具。 **

- 表示、工作流和数据层。

演示:您正在接收反馈或进行输入。通常是点击或输入内容的结果。一个简单的例子是在数据库中创建动态 Web 表单。你必须在数据库中存储什么关于它来自/来自哪里?这可能会构成表示层。这可能是最好的开始练习,以了解您可能需要做什么。

工作流:构建一个简单的工作流引擎是明智的。我构建了基于 Windows Workflow 的模型,我在 2 天内启动并运行了它。它可以设置应该运行的初始事件等。从设计者的 Angular 来看,我会想象一个 visio 类型的程序来链接这些事件。然后,工作流中的事件将驱动表示层。

数据:您必须像存储应用程序中的数据一样存储有关应用程序的数据。因此,表单、事件、数据结构可以通过存储 xml 文档来完成,具体取决于您是否需要使用表单中的任何数据。应用程序的数据也可以存储在您填写的空 xml 模板或实际表格中。到那时,您必须创建一个表创建例程,该例程将为应用程序维护一个符合规范的表。 Google 在他们的在线 google DB 中有类似的东西。

希望对您有所帮助。分享您最终得出的结论。

关于javascript - 反射 Web 应用程序 (WebIDE),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/521723/

相关文章:

javascript - 选中时如何从datalist->option元素中获取 'rel'值?

java - 是否有任何 Maven 插件允许生成一个接口(interface)实现的文件列表?

reflection - Haskell:为什么要进行类型检查?

javascript - Angular promise .then() 重复?

javascript - 如何使用 wordpress 网站的引导轮播删除移动版本中的第一张幻灯片

javascript - jquery 和 asp.net 文本区域

javascript - 为什么当我在事件监听器中时我的变量会初始化?

c# - 如何获取实现接口(interface)的类列表?

java - 非法参数异常 : object is not an instance of declaring class

c# - 如何迭代通用反射方法?