RoR:大型项目管理。需要FoR Seniors的帮助,他们在大型项目中工作过

时间:2012-03-28 03:34:15

标签: ruby-on-rails

我目前正在开展一个大型项目。它已经被淘汰,但问题是用户已经在使用该应用程序并且有非常错误的结果。他们并没有抱怨太多,但每天我都收到有关错误和改进的电子邮件。

我很感激在决定天气调试应用程序或创建另一个应用程序时提供一些帮助。我正在使用带有旧插件的rails 2.5应用程序。

我是唯一一个这样做的人。 T.T

2 个答案:

答案 0 :(得分:2)

对于像你描述的那样抛弃旧代码和重写的项目真的很诱人,但它几乎总是一个错误(参见http://en.wikipedia.org/wiki/Second-system_effect。最后关于重写的链接是非常宝贵的,尤其是http://chadfowler.com/2006/12/27/the-big-rewrite)。

我猜你没有任何真正的测试套件,或者它更容易追踪问题,你可能会有一个较小的项目,因为经过充分测试的项目往往是一个很好的因素(虽然不总是)。这将使重新实现变得非常困难并且保证您已经复制了所有功能,并且任何依赖项都可以与“新的和改进的”代码一起使用。

如果你的用户得到了错误的结果,我冒昧地说你实际上并不知道问题是什么,所以重写不会解决这个问题。

当我接手这样的项目时,第一步是编写一套表征测试,记录我认为系统应该在现在工作的方式。通常在这样做时,您将发现一些功能,这些功能没有意义,或者与系统的其他部分不一致 - 这可能是您的问题所在。一旦我们完成了这个阶段,我们就可以开始重构丑陋的部分,清理视图,将逻辑移动到它所属的某个地方,删除死代码等等。但是如果你想保持系统运行,这些测试非常重要。

最后,为自己设定合理的期望。像这样的项目不会在一夜之间变成混乱 - 你也无法在一夜之间修复它们。

答案 1 :(得分:0)

Fujisan我和你一样处于准确的境地。我认为最好首先调试当前的rails应用程序,然后考虑重建它。如果您正在重建rails应用程序,则需要的时间比预期的要长。我开始是这样的:

  1. 创建了一个单独的数据库和存储库,其中包含从实时网站获取的相同代码和数据。我使用这个网站来处理bug而不是在现场网站上。
  2. 首先了解存在哪些模型并从用户模型开始。如果您之前没有使用过rails控制台和dbconsole,最好在此步骤中使用它们。使用ruby很容易从控制台中找到依赖项。
  3. 只是在模型周围调整,发现不同模型之间的关系。模型看完控制器后。现在,一旦我了解了应用程序中发生的事情,我就开始简要介绍每个模型的用途以及它正在做什么,以及如何以及为什么要进行依赖。
  4. FInally继续研究错误和建议。主要障碍是宝石。当网站由老年人创建时,宝石非常活跃,现在他们都是孤儿。这使得很难找到因这些宝石而持久存在的任何错误。
  5. Railscasts是你最好的朋友!

    我希望有所帮助。祝你好运!