1

I have a large ruby on rails 2.3 which was now a disaster because of the slowness and many bugs. I'm the only programmer and every day I've done debugging and tearing my hair off because of this. The users are already using the product but so many bugs and data are scattered.

I was employed without prior knowledge of project development and management. Now I'm suffering of having more overtime and a crisis on my codes to be fixed.

And also I've created this app while learning rails so there are codes there that became stranger to me.

What should I do? What are your suggestions? What books do I need to read about more?

Please I need some help.

Thanks.

4

5 回答 5

1

我很乐意推荐你升级到 Rails 3。特别是因为有许多新特性并且有些东西被简化了,而且它会简化未来的可维护性。

然而,不幸的是,鉴于您手头已经有更多,我犹豫(或者更确切地说不能)实际推荐它。

在这种情况下,您能做的最好的事情就是开始编写测试。如果有这么多错误,我不得不假设您没有测试或您的测试套件不完整。测试将帮助您确信当您尝试修复其他东西时不会破坏任何东西。

默认的 Rails 测试框架可以在Ruby on Rails 指南中找到。话虽如此,很多人更喜欢RSpec测试框架。默认的 Rails 测试框架确实存在缺点(尤其是固定装置的脆弱性 - 尝试获取工厂 gem,以及其他功能,例如模拟和期望,以及嵌套上下文)。

您应该阅读测试框架,并尝试一下。然而,尽早选择一个测试框架,然后开始测试一切!

也许当你对你的测试套件更有信心并修复了最重要的错误时,你应该更多地考虑升级 Rails 的路径——因为所有的 gem 都会继续前进,并逐渐放弃对 Rails 2.3 的支持,这意味着你将使用越来越旧的宝石,可能不再得到很好的支持。

于 2012-09-06T09:26:01.130 回答
1

据我了解,您正在寻求项目管理技巧和工具,以帮助您控制 Rails 项目。

我相信你需要做的第一件事是稳定项目。为此,您需要最小化错误并绘制所需工作的图表。

我看到了两种互补的方法:

  • 使用任务/错误跟踪工具
  • 开始使用黄瓜进行测试

任务/错误跟踪

这非常重要,因为您将需要某种列出所有错误的列表。

有时用户发现了一个 bug,突然你不得不放弃一切,因为在那一刻,那个 bug 是有史以来最重要的 bug,需要立即解决。但是,如果您直接问他们这是否意味着您正在修复的错误或多或少重要,那么答案可能会有所不同。

因此,如果有一种明确的方法可以让用户参与该决策过程,对您有利。如果有一个共享的错误列表,用户还可以关注当前状态(您正在处理的内容),他们可以指示/选择哪些错误对他们更重要。

其次:列出项目(工作/任务/突出的错误/...)也将帮助您规划工作。

某种错误跟踪有很多选择,但一些简单/实用/免费的建议是

  • 结帐
  • 使用来自 github 的问题

跟踪错误/任务将使您感觉您获得了对项目的控制权,此外:它还将使您的客户更容易看到这一点。

黄瓜

在修复 bug 时,总是存在引入新 bug 的危险,尤其是在最初不是您自己的项目中。

在一个几乎没有测试的项目中,我总是建议从黄瓜开始。黄瓜有几个优点:

  • 它从外部测试您的应用程序/网站:无需完全理解代码,您只需要知道应用程序应该做什么。如果我点击这个链接,它应该带我到那个页面。
  • 用 cucumber 编写测试真的很容易,而且你很快就能得到测试覆盖
  • 作为奖励,你test-code是可读的,你可以向你的客户/用户展示,他们实际上会理解测试所涵盖的内容(并且可以纠正/改进它)。

升级还是不升级?

我个人认为您的第一步应该是稳定项目并最小化/删除所有错误。虽然升级到 Rails 3 将是一个巨大的改进,但这并不是一个简单的过程。有很好的指导方针,但如果你现在这样做,你将不知道升级期间是否引入了错误,或者之前存在。首先按顺序获得您的代码质量,然后进行升级。

希望这可以帮助。

于 2012-09-06T10:52:46.240 回答
0

实际上,您要问的问题完全取决于清理整个项目需要进行多少重构。如果您有足够的时间将其彻底清理干净。我建议以下步骤:

  • 准备
    • 获取整个项目的可视化。什么是必需的,什么不是必需的。
    • 正确定义您的资源和它们之间的关系。
    • 使用正确的RESTful 路由
    • 确定测试工具和框架,如,cucumber等。rspecfactory girl
  • 行动计划
    • 决定(如果可能,作为一个团队)所需的最小必要更改是什么。
    • 隔离不同组中的所有组件,以便可以单独重构每个组。较小的组是优选的。
    • 决定测试用例。
    • 将任务分解成尽可能小的尺寸。
    • 确保将测试覆盖率保持在 90% 以上。

对于一个由 4 名成员组成的团队的中等规模项目,此过程大约需要 4-5 个月。

如果您有任何具体的困惑,请告诉我们。

于 2012-09-06T09:38:55.060 回答
0

不幸的是,您当前的解决方案没有快速解决方案。如果您认真考虑升级,如果您还没有编写测试,则需要时间来填补缺失的测试,在 Rails 3 之上选择测试框架,并在您准备好翻转时制定必要的数据迁移开关。

另一种选择是继续使用 Rails 2.x,虽然支持途径会更加有限,但这并不是完全不可理解的。您仍然需要将测试作为第一要务,并了解现有应用程序中存在的各种细微差别。

对于您的场景(几乎没有经验的单人球拍),我认为坚持您所拥有的并将可测试性提高到您认为值得升级的程度,这将是谨慎的行动。无论您将采取哪种行动,都准备好在中短期内投入大量工作(但这就是积累技术债务的情况)。

于 2012-09-06T09:59:23.030 回答
0

阅读内容:http ://guides.rubyonrails.org/v2.3.11/从有关调试和性能测试的章节开始。

暂时忘记升级到 Rails 3,此时它只会引入更多的错误,并且可能会给遗留的 gem 和插件带来很多问题。并且不要忘记您需要 ruby​​ 1.9 才能升级到 rails 3 - 又是一批问题。

正如ronalchn 所建议的,添加测试是个好主意。我建议从单元测试开始。您可能需要大量重写代码才能使其可测试。(换句话说,与其尝试测试以适应当前的遗留代码,不如重构代码以使其可测试。)

于 2012-09-06T09:59:44.573 回答