系统与NakedObjects类似?

时间:2015-02-24 20:53:05

标签: javascript php naked-objects

不久之前,我在Naked Objects上阅读了这本书,并对这些想法感到兴奋。只编写我的核心业务逻辑并自动生成UI?报名参加!

此外,潜力超出了这个范围。这可以是域建模中的一个很好的工具。由于能够直接调用某个对象,因此鼓励人们直接使用一个域对象,然后就可以发现...

  • 缺陷
  • 有用的交互模式(对于UI实现,如果一个人认为UI基本上是“编写域对象的脚本”的话,那就特别相关了)
  • 新功能。

为此,我对任何与Naked Objects类似的系统感兴趣。我做了一些腿部工作,比如在“Direct Manipulation UI”等字符串下搜索命中,但是没有找到任何有用的东西。

你知道沿着类似路线做过什么工作吗?我更喜欢PHP或JavaScript中的东西,并不认为我正在运行Linux机器。我知道NakedPHP和Spiro(找不到相关文档),但它们基本上都是PHP和javascript的Naked Object实现。

你知道其他任何系统吗?

2 个答案:

答案 0 :(得分:8)

作为Naked Objects书的合着者,我想补充一下我的观点。

人们非常喜欢裸体对象模式的概念并不常见,但不喜欢特定的UI。你没看多久前你看过实现,或者确实是哪一个。两个主要的开源实现(还有一些其他的,但不太成熟)是:

  • 适用于.NET平台的Naked Objects Framework
  • Apache Isis,用于Java平台

这两个都有多个UI。但是,让我们假设您已经查看了所有默认用户界面并且对其中任何一个都不满意。首先,大多数在企业环境中使用任一框架的人最终都会自定义默认UI,无论是仅使用.css还是使用其他JavaScript - 但仍然遵循“通用”的概念。动态创建的UI。

最近,Dan Haywood和我通过引入Restful Objects规范 - 一种适用于任何富域模型的超纯REST API - 进一步推进了裸体对象模式的思想。两个裸对象实现现在都实现了Restful Objects规范。关于这一点的要点是,使用RO API现在相对容易设计与RO的服务器实现通信的新的,完全不同的UI(通用的或完全定制的)。换句话说,创建自己的裸对象概念的客户端实现相对容易,重新使用两个主要服务器端实现中的任何一个。

你提到过,Spiro是我们第一次尝试使用JavaScript(实际上是TypeScript)和Angular.js创建一个构建块库来创建这样的UI。使用RO规范的一个很酷的事情是,您可以针对任何服务器实现运行相同的客户端。我建议你好好看看它。

答案 1 :(得分:2)

我找到了一些其他可能的关键术语并找到了一些,但并非所有关键词都在javascript中。

这些似乎更适合......

Metawidget特别有趣。它支持javascript,易于使用。你可以只提供你的域模型(一个JSON对象),它可以为它生成一个UI。此外,它不会接管您的页面,因此它可以存在于预先存在的UI中,并且它允许UI自定义。

They also include a comparison page with similar products.

另一个有趣的是BlueJ;它是一个基于(的想法?)裸体对象的教育平台,但可以用于较小的项目。基本上,您可以通过上下文菜单以图形方式创建类的实例,然后您可以通过相同的方式检查和调用生成的对象方法(可能在该过程中创建更多对象)。

更远的地方,为了寻找任何UI自动生成,CRUD可视化器与数据库绑定。

我还在研究这些,尤其是对象,并对其他建议持开放态度。