2013-04-16 43 views
14

我是Rails和红宝石的忠实粉丝,可能会着手为金融机构构建企业应用程序。我非常喜欢磁悬浮的想法,并怀疑它是否值得考虑。我还没有找到很多关于磁悬浮是否在野外生产中使用的信息,更不用说是为了高度安全的目的。是否可以使用MagLev为ruby构建一个生产Web应用程序?

是否有人使用MagLev成功部署了任务关键型应用程序?如果是这样,你能提供关于你的经验的细节,并可能命名应用程序?

回答

23

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

我对长度表示歉意;对于这个我仍然试图连接的问题,我有很多不连贯的想法。

我的团队即将在MagLev上推出首个生产应用程序。这是一条崎岖不平的道路,但我们非常确信,最终它将证明是正确的决定。我今年在几个会议上谈论我们的经历,我很乐意详细地聊聊它,但是这里有一个(长)的概述。

正如您可能已经知道的那样,宝石在支持金融行业的公司方面有着悠久而骄傲的历史。我们主要是一家Ruby商店,我们开发财务应用程序。我们关心我们的数据,所以宝石是我们的明智选择。 MagLev允许我们使用我们现有的Ruby知识和大部分代码,并将我们的数据存储在GemStone中。这是(看似)完美的婚姻。

我们选择了一个小型的应用程序,这个应用程序对我们的用户来说是新的,并且是移动的最简单和最低的风险。我们选择了与我们的托管结帐平台相关的发票呈现应用程序。能够简单地坚持对象而不用担心映射或转换,使开发变得非常快速且令人愉快,并且我们避免了许多与ORM和持久性相关的问题。我们计划继续将我们现有的其他应用程序移至MagLev。

这就是说,你应该等待,除非以下所有条件为真:

  1. 您是(或工作)的Ruby专家谁是与语言及其实现足够的熟悉来调查和解决实施细节,其中许多是用Smalltalk编写的。

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

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

  4. 如果你碰到一堵砖墙,你准备取消一切,并在Smalltalk中重新编写你的应用程序。 (我承认:我希望磁悬浮下跌完全平坦的,有时,只是为了有一个借口。)

有我们的问题与正在进行的基础上的几件事情。因为,对于我们来说,以上都是真实的,我们继续这样做。我们经常处理以下每个“问题”。有时每天。

  1. 回溯几乎是不可能自行阅读,并且当你遇到许多例外,你有从GemStone的Smalltalk的命令行调试器来播放。这里有相当多的学习曲线。

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

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

所有这一切都表示,与其关系最为帮助我们的事情是,我与谁是(并且是)见地约GemStone的磁浮的球员最多(所有?)朋友。他们对我们来说太棒了。 HPI的学生也非常宝贵的修复错误,帮助我们发现问题。

关于我的团队,因为我拥有的团队基本上是什么让这成为可能。我们是四位开发人员。我们每个人都有超过十年的经验(我想我们都超过了12-15岁)。我们中有些人(至少我)已经有超过十年的Ruby经验。我们在Smalltalk方面有不同程度的经验,尽管我们都没有发布可以赚钱的生产应用程序。我积极参与Ruby和Smalltalk社区(并且从前者到后者都是“过渡”)。

我们的经验一直有点rock,,但大多是令人愉快的。如果我现在知道我现在知道的,我会再做一次。我的希望是,我们在这方面的工作将有助于其他人在未来也这样做。我将MagLev视为未来宝贵的工具。

+2

这正是我正在寻找的信息。非常感谢您花时间。尽管问题结束的原因,我认为这是非常有用的。 – aceofspades

+0

它可能有助于未来以直接的问题结束。你使用了“任何评论?”如果你说过“MagLev是否准备好生产?”可能会有所帮助或者更直接的东西。这里的主持人可能喜欢把胸膛伸出来。 –

+0

我修改了这个问题,以防有人想投票重新打开。很多投票很快,所以这似乎是有趣的。 – aceofspades

相关问题