处理大型现有铁路应用的建议/工具?

时间:2009-11-08 21:58:31

标签: ruby-on-rails ruby

我最近加入了一家拥有大量现有代码库的新公司。我的大部分经验都是开发我从一开始就参与的中小型应用程序。

有没有人对如何开始处理大型应用程序有任何有用的工具或建议?

我是从模型开始并转移到控制器吗?是否有可视化映射模型关系的脚本?我应该跳进去,开始研究并学习应用程序结构吗?

4 个答案:

答案 0 :(得分:2)

Railroad应该可以帮助您了解大局。它为您的模型和控制器生成图表。

答案 1 :(得分:1)

我发现单元测试是最有效,最有效和最强大的工具。因此,在进行任何更改之前,请确保您的应用程序具有最小LOC,以便您不会破坏任何现有功能。

你应该关心单元测试(我当然是在讨论单元/功能/集成测试),因为:

  • 他们确保您不会破坏任何现有功能
  • 他们描述了代码,这样你就不需要在任何地方都需要大量的评论来理解为什么代码片段以这种方式起作用了
  • 进行测试,您将花费更少的时间进行调试并花更多时间编码

当您进行测试时,您可以开始重构您的应用。 以下是我经常使用的一些工具列表:

您可能希望查看一些关于Scaling Rails的精彩Gregg's videos以获得更强大的工具。

此外,不要忘记立即开始跟踪您的应用程序的执行情况以及是否引发异常。您可以使用以下工具之一

如果您需要修复一些错误,请不要忘记首先使用测试重现问题,然后修复错误。

答案 2 :(得分:1)

不是特定于Rails,但我会开始阅读要求和架构文档。之后,通过在一张大纸上绘制模型及其关系来熟悉该领域。

然后转到控制器(可能先查看路线)。

视图不应包含那么多信息,我猜你几乎可以跳过它们。

如果您还需要了解更多信息,版本控制系统的日志(假设他们使用的日志)也是了解项目进展情况的好地方。

答案 3 :(得分:1)

当我遇到这种情况时,我会尝试以下三种方法之一:

  1. 从上到下阅读所有代码。这可以让您查看哪些代码正常工作,并且您可以轻松地报告进度(本周我阅读了所有视图代码)。这意味着你花时间在可能没有帮助的事情上(未使用的代码),但你会体验到那里的一切。这很无聊。

  2. 从头开始,然后结束。从登录页面或启动画面开始,查看该代码,然后是下一页,然后是下一页。查看视图,控制器和数据库代码。这需要一些时间,但它为您提供了为什么需要该代码或数据库表的上下文。它允许您最常查看在大多数地方使用的那些。这更有趣。

  3. 开始修复错误。这有利于显示您的新项目(快乐的老板)从其他人(快乐的同事)工作和同时学习(快乐的开发人员)的进展。它提供了2号的上下文,你可以跳过很少使用的1号代码。这对我来说是最有趣的方式。

  4. 此外,记录你所学到的知识。获得一个廉价的螺旋式笔记本,并写下你学到的东西的轮廓。想象一下,你自己就你正在学习的代码或你正在修复的错误进行讨论。采取足够的笔记来进行讨论,并用一两个事实来增加它的趣味性。我通过称他们为“工程笔记本”给我的笔记本的尊严和目的,在前面标题(我的名字,公司,日期),并将它们带到每次会议。与那些没有用纸张记笔记的人相比,它看起来非常专业。为此,请不要使用wiki。这是不可靠的,我花了一个星期玩维基而不是学习。

    如上所述,成为新人是一个很好的机会去完成没有人喜欢的单元测试,记录流程或自动运行测试。记录设置新盒子的过程,并使所有安装的软件都高效。在某人的桌子下拿一个旧盒子并在其上放置一个持续集成安装,并在测试失败时通过电子邮件发送给您。只要其他人检查破坏测试的代码,您就可以转发该电子邮件。开始编写测试以弄清楚事情是如何协同工作的,尤其是如果没有任何/非常多的测试。

    尝试在一对一的情况下提出很多问题。这表明您参与并学习,它可以帮助您找到应用程序不同部分的专家。在一个大项目中,您可能需要为一个主题找一个人,为另一个主题找另一个人。它还有助于识别谁认为他们比他们真正做的更多或者说话的人比你真正需要的更多。