因此,理想情况下,在我看来,基于单个模式定义,我应该能够在Web上下文中完全生成完整的创建读取更新删除(CRUD),即:
理想的; 我只是为具有名称和姓氏和地址字段的Person数据类型定义一个模式,然后调用宏或函数(defcrud Person my-person-schema),它可以工作,我可以转到网页,查看数据表,编辑/删除数据,并将数据一直保存到服务器.
我的问题是:在clojure世界中有什么东西(或部分地)如上所述吗?
在我最近的第一个完整的clj/cljs项目中,我发现自己为这些基本内容编写了大量代码.在过去,当我使用一个名为SmartGWT的GWT框架时,我只需要定义一个new ListGrid(myDataSource),并定义一个数据源(相当于模式),其余部分被推断出来(至少有一些合理的默认值).
SmartGWT的高级开发能够为我需要经常构建的业务应用程序实现真正的快速原型设计.GWT有它自己的缺点,比如更大的应用程序的编译时间非常慢,以及我必须编写Java的事实,但它是我在Clojure中寻找的服务器 - 客户端集成的开箱即用水平.
免责声明,我是 closp-crud 的作者。
首先,感谢 @mac 对我的图书馆的暗示。
其次,你所要求的正是我想要实现的,但以不同的方式实现。我讨厌当你做诸如推断代码之类的事情时所发生的所有魔法。所以我的方法有所不同,所有代码:
已生成,之后可以完全更改。
当然这还有其他缺点,但我很乐意接受。
也就是说,文档仍然缺乏,我上周开始了一个激励:http://closp.net,并将继续努力。
如果您需要的话,我接下来可能会添加 closp-crud 的文档。
除此之外,我两天前制作了一个介绍视频: https: //www.livecoding.tv/sveri/videos/wrnL1-clojure-closp-webframework-41,它以非常基本的方式展示了 closp 和 closp-crud 的用法。
大约 12 分钟后开始使用 closp-crud。