是否可以使用MagLev为ruby构建生产Web应用程序?

ace*_*des 14 ruby web-applications maglev

我一般都是Rails和ruby的粉丝,可能会着手为金融机构构建企业应用程序.我非常喜欢磁悬浮的想法,并想知道它是否值得考虑.我没有找到关于磁悬浮是否在野外生产中使用的更多信息,更不用说出于高安全性目的.

有没有人使用MagLev成功部署任务关键型应用程序?如果是这样,您能否提供有关您的体验的详细信息,并为应用程序命名?

小智 23

TL; DR:我们即将在MagLev上发布一个生产应用程序.你应该等一下.

我为这个长度道歉; 我对此有很多不连贯的想法,我仍在尝试连接.

我的团队即将在MagLev上推出第一个生产应用程序.这是一条坎坷的道路,但我们相信最终它将被证明是正确的决定.我在今年的几个会议上谈到我们的经历,我很高兴能够更详细地谈论它,但这里是一个(长期)概述.

您可能已经知道,GemStone拥有悠久而自豪的历史,为金融行业的公司提供支持.我们主要是Ruby商店,我们开发财务应用程序.我们关心我们的数据,因此GemStone对我们来说是一个明显的选择.MagLev允许我们使用我们现有的Ruby知识和大部分代码,并将我们的数据存储在GemStone中.它(看似)是完美的婚姻.

我们选择从一个对我们的用户来说是新的小应用程序开始,并且是最容易移动的风险.我们选择了与我们的托管结账平台相关的发票申请表.能够简单地持久化对象而不必担心映射或转换,这使得开发变得非常快速和愉快,并且我们已经避免了与ORM和持久性相关的许多问题.我们计划继续将其余现有应用程序移至MagLev.

也就是说,除非满足以下所有条件,否则您应该等待:

  1. 您(或与之合作)熟悉该语言及其实现的Ruby专家可以调查和修复实现细节,其中许多都是用Smalltalk编写的.

  2. 您是(或与之合作)开发人员,他们了解在Smalltalk中工作的细微差别,但通常是基于图像的环境.

  3. 您可以非常熟悉GemStone/S平台,语言,部署机制和工具.

  4. 您准备废弃所有内容并在Smalltalk中重新编写应用程序(如果您碰到了一堵砖墙).(我承认:我希望MagLev有时会完全失控,只是为了找个借口.)

我们有一些问题在持续存在.因为,对我们来说,以上都是真的,我们继续前进.我们经常处理以下每个"问题".有时每天.

  1. Backtraces几乎不可能自己阅读,当你遇到很多异常时,你必须使用GemStone Smalltalk的命令行调试器.这里有一个学习曲线.

  2. Ruby库兼容性......比你希望的要少.基本上,你可以指望用纯Ruby编写的大多数东西都没问题.基本上任何使用没有ffi的C扩展的东西都出来了.这是一个令人惊讶的东西.过度使用元编程的图书馆使MagLev感到困惑.这是Rails土地上的很多东西.

  3. 代码重新加载和迁移是手动的.更改磁盘上持久对象的类定义时,必须管理加载新代码并手动迁移现有的持久实例.

所有这些都说明了,对我们最有帮助的事情是,我与大多数(所有?)那些在GemStone知道MagLev的人都是朋友.他们对我们来说太棒了.HPI的学生也非常有价值地修复错误并帮助我们解决问题.

关于我的团队,因为我拥有的团队基本上是使这成为可能的.我们是四个开发人员.我们每个人都有十多年的经验(我认为我们实际上都超过了12-15岁).我们中的一些人(至少我)拥有十多年的Ruby经验.我们对Smalltalk有不同程度的经验,尽管我们都没有运送过生产应用程序来赚钱.我在Ruby和Smalltalk社区中很活跃(并且有点像从前者到后者的"过渡").

我们的经历有点不稳定,但大部分都很愉快.如果我知道我现在所知道的,我会再做一次.我希望我们在这方面的工作能够帮助其他人在将来做同样的事情.我认为MagLev是未来的宝贵工具.

  • 这正是我所寻找的那种信息.非常感谢您抽出宝贵时间.尽管问题已经结束,但我认为这非常有用. (2认同)