问题标签 [model-driven-development]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
254 浏览

php - PHP:从抽象生成代码(xml、json、数据库,...)

注意随意提出一个更好的标题,因为我认为“生成代码”和“抽象”可能不是我想问的最佳表达方式:)

我正在寻找一种从某种抽象层生成 PHP 代码的良好模式/标准方法。

例子

我已经构建了一组充当文本处理过滤器的类。这些过滤器可以链接在一起以将一些输入文本转换为一些其他输出文本,例如

结果代码

相应的源代码如下所示:

我想创建某种抽象层,以便最终用户(非程序员)可以构建自己的过滤器链,而无需自己编写代码。“抽象”是指像 XML、JSON、存储在数据库等中的东西。

XML 示例(建议)

备注:示例非常简单。想想更高级的东西,比如“复杂对象作为过滤器的属性”、“过滤器的继承”(上面的过滤器可以得到名称“RegexToLowerFilter”并且可以被其他过滤器引用)等等。

方法/想法

是否有解决此类问题的标准方法?到目前为止,我已经考虑为每个过滤器构建自定义 XML、JSON 等序列化器/反序列化器,但这似乎需要做很多工作并且可能容易出错,因为它是为每个过滤器单独完成的。此外,我想这需要使每个可能的依赖项也以相同的方式可序列化——这在使用第三方库(例如JsonPath)时可能会出现问题。

我想最优雅的方法是创建Domain Specific Language。不幸的是,构建编译器并不是最简单的任务,而且可能并不总是适合该领域的每个问题。(话又说回来,请随时纠正我:))

TL;博士

我正在寻找一种合适的方式/模式来在(非程序员)最终用户和我的源代码之间建立一个抽象层。解决方案应该采取“简化”的抽象并“生成”相应的代码。

0 投票
1 回答
592 浏览

mysql - Several Issues regarding the usage of UML in SPA Angular

While we are waiting for the next upcoming version of javascript, that is ECMAScript 6 codename Harmony, we are enforced to use object-based/functional-based javascript. Currently there are no class construct, interface, inheritance, means for information hiding, and so on. But I won't argue about its usefulness, I just wondering about the usage of UML constructs in complete Single Page Application framework such as AngularJS.

  1. Is UML only appropriate for ECMAScript 6 Harmony?

  2. It is said that when we use mongoDB we are no longer need ORM anymore because the output is already object, then now Oracle has provided HTTP Plugin that enable MySQL to provide RESTful CRUD API and has JSON as its output. The question is, when I creates Class Diagram, I can convert it to JPA entity class, than is it still useful when I use Restangular-->MySQL or just nice to have?

  3. In Doug Rosenberg & Matt Stephens' book Use Case Driven Object Modeling with UML, they use one boundary lifeline for each page and entity lifeline for each domain model that are involved within his sequence diagram, so when I use Angular-UI's UI-Router, then what is it count to be boundary lifeline? is it each state? then I guess the control lifeline is my angular's registered controller, and entity lifeline for my javascript object that I pass to each Restangular's post/put/delete method, aren't they?

  4. I think Restangular is a kind of Data Access Object, isn't it?

  5. Is this kind of Model Driven Development not appropriate for AngularJS at all, if so then what it is that appropriate?

code example for accesing mysql directly from restangular:

0 投票
1 回答
521 浏览

caching - Mendix 中的缓存和 AOP:Mendix 应用程序中的服务器端缓存是否有统一或标准化的方法?

使用 Mendix Business Modeler 构建 Web 应用程序与使用 Java/Spring/JSF 等技术开发 Web 应用程序有着根本的不同。但是,为了这个问题,我将尝试比较两者:

在基于 Java/Spring 的应用程序中,我可以将我的应用程序与 3rd 方产品 Ehcache 集成以在方法级别缓存数据。例如,我可以将 ehcache 配置为存储给定方法的返回值(具有特定的生存时间)。每当调用此方法时,ecache 将自动检查该方法之前是否已使用相同的参数调用过,以及缓存中是否有存储的返回值。如果是这样,则该方法永远不会实际执行,而是立即返回缓存的方法返回值。

我想在 Mendix 中拥有相同的功能,但在这种情况下,我将缓存 Microflow 返回值。此外,我不想被迫在各处添加操作,明确告诉 Microflow 检查缓存。我想在一个集中的地方注册我的微流进行缓存,或者简单地标记每个微流以进行缓存。换句话说,这个问题与 Mendix 中的面向方面编程 (AOP) 的概念和缓存一样多:有没有办法将挂钩连接到 Microflow 调用中,以便我可以应用执行前和执行后操作?在我看来,AOP 在 Java 中占有一席之地的原因与 Mendix 中存在的原因相同。

0 投票
1 回答
260 浏览

ruby-on-rails - 是否有用于 Ruby on Rails 的可视化/图形 MDD 工具?

这将是非常模糊的,所以我希望我已经被禁止了。

我一直在学习各种动态 Web 工具,例如 ruby​​ on rails,它们可能需要在文件(主视图控制器、资产等)之间进行大量引用。通常,在设计 Rails 应用程序时,我现在在inkscape 中绘制整个内容,以便直观地表示所有文件如何相互连接。

如果我可以将简单的工作流程图翻译成一些骨架代码,那将非常有用。例如,将红色块拖到页面上会创建一个控制器,将箭头朝命名视图的方向拖动会def在控制器中创建等等。这只是一个想法,但我想知道结果是否有任何图形我可以操纵工具来完成这种任务吗?

如果这样的工具不存在,我很乐意自己尝试编写一个 - 有什么想法可以作为起点吗?

0 投票
0 回答
42 浏览

sql - 数据库迁移和模型转换语言

我正在考虑将数据库从 SQL 服务器迁移到 PostgreSQL。

提议的新 Postges 数据库的设计与旧的 SQL 服务器模型略有不同。

我听说过模型转换语言,并认为它们可能值得考虑完成这项任务。

几年前我在有限的范围内使用过 TEFKAT,但它并没有让我觉得它足够成熟来完成这项任务(尽管那是很多年前的事了)。

但是还有其他可用的选项,例如ATLAS,我还没有使用过。

有没有合适的模型转换语言?或者这整个模型转换的东西是错误的方法吗?

0 投票
1 回答
338 浏览

model - MDSD和MDD之间的区别

我想知道两者之间是否有任何区别:

  1. 模型驱动软件开发 (MDSD)
  2. 模型驱动开发 (MDD)

我总是在许多文章和公共文献中找到这两个术语,但没有人强调它们的区别。

0 投票
2 回答
1420 浏览

eclipse - 来自ecore的类图

我有 .ecore 元模型。如何从中自动生成类图?

0 投票
2 回答
308 浏览

sql - 数据库触发器:列值与空变量的比较

我正在准备关于模型驱动开发的考试。我遇到了一个特定的数据库触发器:

此触发器旨在防止经理向外部经理报告的输入,即来自不同公司的经理。对应的 OCL 约束为:

相关表格如下所示(简化):

教科书说,当新插入的管理器不向任何人报告时(即NEW.reports_tois NULL),此触发器也将正常工作,并且实际上,在测试时,它确实可以正常工作。

但我不明白这一点。如果NEW.reports_tois NULL,这意味着变量v_company_name将为空(未初始化??NULL),这意味着比较NEW.company = v_company_name将返回false,导致抛出异常,对吗?

我在这里想念什么?

(显示的 SQL 应该符合 SQL:2003。MDD 工具是 Catedron,它使用 Firebird 作为 RDBMS。)

0 投票
0 回答
143 浏览

eclipse - 以编程方式从 EMF 资源生成 GMF 图

我要做的是以编程方式从 EMF 资源中获取 GMF 图。

我找到了这个 NotationFactory.eINSTANCE.createDiagram() 方法,我知道我可以通过这种方式创建节点和所有内容。但我不确定这是否是实现这一目标的最佳方式。

我认为这个条目:以编程方式创建 GMF 图显示了同样的问题。

先感谢您。

0 投票
0 回答
45 浏览

epsilon - ETL的控制流程图

是否已经开发Control Flow Graph (CFG)ETL转换?我怎样才能访问它?