Ruby on rails 如何管理RubyonRails2.3上的项目?

Ruby on rails 如何管理RubyonRails2.3上的项目?,ruby-on-rails,project-management,ruby-on-rails-2,Ruby On Rails,Project Management,Ruby On Rails 2,我有一个很大的RubyonRails2.3,它现在是一个灾难,因为速度慢,有很多bug。我是唯一的程序员,每天我都在调试程序,并为此而大发雷霆。用户已经在使用该产品了,但是很多bug和数据都是分散的 我是在没有项目开发和管理知识的情况下被聘用的。现在我正在忍受更多的加班和我的代码上的危机 而且我在学习rails的时候创建了这个应用程序,所以那里的代码对我来说很陌生 我该怎么办? 你有什么建议? 我还需要读些什么书 求你了,我需要帮助 谢谢。我很乐意推荐您升级到Rails 3。特别是因为有许多更新

我有一个很大的RubyonRails2.3,它现在是一个灾难,因为速度慢,有很多bug。我是唯一的程序员,每天我都在调试程序,并为此而大发雷霆。用户已经在使用该产品了,但是很多bug和数据都是分散的

我是在没有项目开发和管理知识的情况下被聘用的。现在我正在忍受更多的加班和我的代码上的危机

而且我在学习rails的时候创建了这个应用程序,所以那里的代码对我来说很陌生

我该怎么办? 你有什么建议? 我还需要读些什么书

求你了,我需要帮助


谢谢。

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

然而,不幸的是,考虑到你们手头上已经有了更多的东西,我不太愿意(或者干脆不能)实际推荐

在这种情况下,您可以做的最好的事情就是开始编写测试。如果有这么多bug,我必须假设要么没有测试,要么测试套件不完整。测试将有助于给你信心,当你试图修复其他东西时,你不会破坏任何东西

默认的rails测试框架可以在中找到。尽管如此,许多人还是更喜欢测试框架。默认Rails测试框架确实存在缺陷(特别是fixture-try-get-a的脆弱性,以及其他特性,如模拟和期望,以及嵌套上下文)

您应该仔细阅读测试框架,或许可以尝试一下。但是,尽早选择一个测试框架,并开始测试所有内容


也许当您对测试套件更加自信并修复了最重要的bug后,您应该更多地考虑升级Rails的途径,因为所有的gem都将继续前进,并逐渐放弃对Rails 2.3的支持,这意味着您将使用越来越旧的gems,这些gems可能不再得到很好的支持。

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

  • 准备就绪
    • 获得整个项目的可视化效果。什么是必需的,什么不是必需的
    • 正确定义您的资源以及它们之间的关系
    • 使用适当的RESTful路由
    • 确定测试工具和框架,如
      cucumber
      rspec
      factory girl
  • 行动计划
    • 决定(如果可能,作为一个团队)所需的最小值是多少必要的更改
    • 隔离不同组中的所有组件,以便每个组都可以单独重构。小团体优先
    • 决定测试用例
    • 将任务分解为尽可能小的大小
    • 确保您的测试覆盖率保持在90%以上
对于一个由4名成员组成的团队来说,这个过程大约需要4-5个月


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

不幸的是,您当前的解决方案中没有快速解决方案。如果你认真考虑升级,如果你还没有编写这些测试,就需要时间来填补,在Rails 3顶部拾取测试框架,并在你准备好翻转开关后,完成必要的数据迁移。 另一个选择是继续使用Rails2.x,这并不是完全不可理解的,尽管支持途径将非常有限。您仍然需要将测试作为首要任务,并了解现有应用程序中存在的各种细微差别

对于您的场景(一个人的球拍,之前几乎没有经验),我觉得坚持您拥有的,并提高可测试性,直到您觉得升级是值得的,这将是一个谨慎的行动。无论您采取何种行动,都要准备在中短期内投入大量的工作(但累积技术债务的情况就是如此)。

阅读内容:从有关调试和性能测试的章节开始

暂时不要考虑升级到Rails 3,现在它只会引入更多的bug,并且可能会带来很多遗留gems和插件的问题。不要忘记,要升级到Rails3,您需要Ruby1.9,这又是一批问题

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

据我所知,您正在询问如何控制rails项目的项目管理技巧和工具

我相信你需要做的第一件事就是稳定这个项目。要做到这一点,您需要最小化bug,并绘制所需工作的图表

我认为这有两种互补的方法:

  • 使用任务/错误跟踪工具
  • 开始使用黄瓜进行测试
任务/错误跟踪 这是非常重要的,因为您需要某种列出所有bug的列表

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

因此,如果有,这对你是有利的