我一般都是Rails和ruby的粉丝,可能会着手为金融机构构建企业应用程序。我非常喜欢磁悬浮的想法,并想知道它是否值得考虑。我没有找到关于磁悬浮是否在野外生产中使用的更多信息,更不用说出于高安全性目的。
是否有人使用MagLev成功部署了任务关键型应用程序?如果是这样,您能否提供有关您的体验的详细信息,并为应用程序命名?
答案 0 :(得分:23)
TL; DR:我们即将在MagLev上发布一个生产应用程序。你应该等一下。
我为这个长度道歉;我对此有很多不连贯的想法,我仍在尝试连接。
我的团队即将在MagLev上推出第一个生产应用程序。这是一条坎坷的道路,但我们相信最终它将被证明是正确的决定。我在今年的几个会议上谈到我们的经历,我很高兴能够更详细地聊聊它,但这里是一个(长期)概述。
正如您可能已经知道的那样,GemStone拥有悠久而自豪的历史,为金融行业的公司提供支持。我们主要是Ruby商店,我们开发财务应用程序。我们关心我们的数据,因此GemStone对我们来说是一个明显的选择。 MagLev允许我们使用我们现有的Ruby知识和大部分代码,并将我们的数据存储在GemStone中。它(似乎)是完美的婚姻。
我们选择了一个对我们的用户来说是新的小应用程序,并且是最容易移动的风险。我们选择了与我们的托管结账平台相关的发票申请表。能够简单地持久化对象而不必担心映射或转换,这使得开发变得非常快速和愉快,并且我们已经避免了与ORM和持久性相关的许多问题。我们计划继续将其余现有应用程序移至MagLev。
那就是说,除非满足以下所有条件,否则你应该等待:
您是(或与之合作)熟悉该语言及其实现的Ruby专家,以调查和修复实现细节,其中许多都是用Smalltalk编写的。
您是(或与之合作)开发人员,他们了解在Smalltalk中工作的细微差别,但通常是基于图像的环境。
您可以非常熟悉GemStone / S平台,语言,部署机制和工具。
如果你撞到了一堵砖墙,你准备废弃一切并在Smalltalk中重写你的应用程序。 (我承认:我希望MagLev有时会完全失败,只是为了找个借口。)
我们有一些问题在持续存在。因为,对我们来说,以上都是真的,我们继续前进。我们经常处理以下每个“问题”。有时每天。
Backtraces几乎不可能自己阅读,当你遇到很多异常时,你必须使用GemStone Smalltalk的命令行调试器。这里有一个学习曲线。
Ruby库兼容性......比你希望的要少。基本上,你可以指望用纯Ruby编写的大多数东西都没问题。基本上任何使用没有ffi的C扩展的东西都出来了。这是一个令人惊讶的东西。过度使用元编程的图书馆使MagLev感到困惑。这是Rails land中的很多东西。
代码重新加载和迁移是手动的。更改磁盘上持久对象的类定义时,必须管理加载新代码并手动迁移现有的持久实例。
所有这一切都说明了,对我们最有帮助的事情是,我和大多数(所有?)那些在GemStone知道MagLev的人都是朋友。他们对我们来说太棒了。 HPI的学生也非常有价值地修复错误并帮助我们解决问题。
关于我的团队,因为我拥有的团队基本上是让这成为可能的。我们是四个开发人员。我们每个人都有十多年的经验(我认为我们实际上都超过了12-15岁)。我们中的一些人(至少我)拥有十多年的Ruby经验。我们在Smalltalk方面有不同程度的经验,尽管我们都没有运送过生产应用程序来赚钱。我在Ruby和Smalltalk社区中很活跃(并且从前者到后者都是“过渡”)。
我们的经历有点不稳定,但大部分都很愉快。如果我知道我现在所知道的,我会再做一次。我希望我们在这方面的工作能够帮助其他人在将来做同样的事情。我认为MagLev是未来的宝贵工具。