代码之家  ›  专栏  ›  技术社区  ›  kush

用于处理大型现有Rails应用程序的建议/工具?[关闭]

  •  2
  • kush  · 技术社区  · 15 年前

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

    对于如何开始使用大型应用程序,是否有人有任何有用的工具或建议?

    我是从模型开始移动到控制器吗?是否有脚本可以直观地映射出模型关系?我应该加入,开始工作,并学习应用程序的结构吗?

    4 回复  |  直到 15 年前
        1
  •  2
  •   shinzui    15 年前

    Railroad 应该有助于你了解全局。它为您的模型和控制器生成图表。

        2
  •  1
  •   Simone Carletti    15 年前

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

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

    • 它们确保您不会破坏任何现有功能
    • 它们描述代码,这样您就不需要到处都有大量的注释来理解代码片段以这种方式工作的原因。
    • 通过测试,您将花费更少的时间调试和更多的时间编码

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

    你可能想看一些精彩的 Gregg's videos 关于缩放Rails以获得更强大的工具。

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

    如果您需要修复一些bug,请不要忘记首先通过测试再现问题,然后修复bug。

        3
  •  1
  •   sebastiangeiger    15 年前

    在Rails上并不具体,但我将开始阅读需求和体系结构文档。之后,通过在一张大纸上绘制模型及其关系来熟悉该领域。

    然后移到控制器上(可能先查看路由)。

    视图不应该包含那么多信息,我想您可以跳过它们。

    如果您仍然需要了解更多信息,那么版本控制系统的日志(假定他们使用了日志)也是了解项目是如何发展的一个好地方。

        4
  •  1
  •   Joe Fair    15 年前

    在这种情况下,我会尝试以下三种方法之一:

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

    2. 从开始到结束。从登录页面或启动屏幕,开始查看该代码,然后查看下一页,然后查看下一页。查看视图、控制器和数据库代码。这需要一些时间,但它为您提供了需要该代码或数据库表的上下文。它能让你经常看到那些在大多数地方被使用的。这更有趣。

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

    同时,要记下你学到了什么。买一个便宜的螺旋装订笔记本,写下你所学的大纲。想象一下你自己在谈论你正在学习的代码或者你正在修复的bug。记下足够多的笔记来做这个演讲,然后用一两个事实来增加趣味性。我给我的笔记本命名为“工程笔记本”,在笔记本的前面加上一个标题(我的名字、公司、日期),并带它们参加每次会议,这给了我的笔记本尊严和目标。与那些不带纸来做笔记的人相比,这看起来很专业。为此,不要使用wiki。这是不可依赖的,我花了一个星期玩wiki而不是学习。

    正如上面提到的,作为一个新人是一个很好的机会去做那些没人能做的事情,比如单元测试、记录过程或者自动化运行测试。记录建立一个新盒子的过程,并安装所有软件以提高生产效率。把一个旧的盒子放在某人的桌子下面,在上面安装一个持续的集成,当测试失败时,让它给你发电子邮件。当其他人检查破坏测试的代码时,您可以转发该电子邮件。开始编写测试来了解事情是如何一起工作的,特别是如果没有任何/非常多的测试。

    试着在一对一的情况下问很多问题。这表明你很投入和学习,它可以帮助你在应用程序的不同部分找到专家。在一个大项目中,你可能需要找一个人讨论一个主题,另一个人讨论其他主题。它也有助于确定哪些人认为他们知道的比他们真正知道的多,哪些人说的比你真正需要的多。