系统与NakedObjects类似?

R. *_*ell 6 javascript php naked-objects

不久之前,我读了一本关于Naked Objects的书,并对这些想法很兴奋.只编写我的核心业务逻辑并自动生成UI?报名参加!

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

  • 缺陷
  • 有用的交互模式(对于UI实现,如果一个人持有UI基本上是"编写域对象的脚本"的观点,则尤其相关)
  • 新功能.

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

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

你知道其他任何系统吗?

Ric*_*son 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规范的一个很酷的事情是,您可以针对任何服务器实现运行相同的客户端.我建议你好好看看它.


R. *_*ell 2

我偶然发现了一些其他可能的关键术语,并发现了一些,尽管并非全部都在 javascript 中。

这些似乎更适合...

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

它们还包括与类似产品的比较页面。

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

更进一步,对于任何 UI 自动生成,都有与数据库绑定的 CRUD 可视化工具。

我仍在研究这些,特别是对象的,并且愿意接受其他建议。