gpt4 book ai didi

persistence - Smalltalk/Seaside 中的数据持久性

转载 作者:行者123 更新时间:2023-12-03 13:27:16 27 4
gpt4 key购买 nike

我最近花了一些时间熟悉 Smalltalk 和 Seaside。我来自 Java EE 世界,正如您可以想象的那样,让我的思想围绕一些 Smalltalk 概念很有挑战性。 :)

目前,我正试图掌握在 Smalltalk 世界中最典型的数据持久性是如何实现的。作为一名 Java 程序员,我的假设是使用 RDMS(即 MySQL)和 ORM(即 Hibernate)。我知道 Smalltalk 不是这种情况(至少使用 Hibernate)。我不一定要寻找最接近 Java EE 完成方式的方法。

将数据保存到图像、对象存储还是 RDMS 中最常见? Smalltalk 应用程序使用 RDMS 是不是很典型?

我知道这里没有一刀切的方法,正确的持久性策略将取决于应用程序的需求(数据量、并发性等)。什么是可以开始简单但也可以扩展的好方法?

我看过 video Avi Bryant 讨论他用于持久性和扩展 DabbleDB 的策略。据我了解,客户的数据直接保存到图像中(每个客户一张图像)。这在他的用例中很有效,因为客户不必共享数据。这是一种常见的方法吗?

希望我没有制作这个 TLDR。非常感谢 Smalltalk 人员在我之前的问题中提供的见解。值得赞赏。

最佳答案

贾斯汀,

别担心,Smalltalk 在这方面与其他语言没有太大区别,它只是添加了基于图像的持久性选项。

有像 Hibernate for Smalltalk 这样的 O/R 映射器,GLORP 及其 Pharo 端口 DBXtalk 无疑是当今最流行的映射器。如果您了解 Hibernate,这些对您来说应该会很舒服。

然后是诸如 GemStone 或 Magma DB 或 VOSS 之类的 OODB 解决方案,以及许多其他解决方案,可以让您将所有 O/R 映射问题抛在脑后。其中大部分仅限于存储 Smalltalk 对象,GemStone 是一个异常(exception),它提供了与 Ruby 和其他语言的桥梁。

还有一些工具可以将 Smalltalk 对象存储在现代 NoSQL 数据库中,例如 CouchDB、Cassandra、GOODS 或其他数据库。这里的技巧只是将 Smalltalk 对象值转换为 JSON 流和一点 HTTP 请求。

最后还有保存完整 Smalltalk 图像的选项。我想说你可以在生产环境中做到这一点,但这不是许多人的标准或首选方式。您在开发过程中经常这样做,因为您可以简单地保存图像并在下次完全恢复您的工作时,所有对象都在您保存时的位置。

所以基线是:您所知道的所有存储选项都可以在 Smalltalk 中使用,另外还有一个。

约阿希姆

关于persistence - Smalltalk/Seaside 中的数据持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343414/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com