代码之家  ›  专栏  ›  技术社区  ›  Jay Godse

rails:rails原型与使用jquery的不引人注目的javascript

  •  3
  • Jay Godse  · 技术社区  · 14 年前

    我使用Ajax和Ruby完成了两个项目。在一个项目中,我使用了Rails原型助手和RJ。在另一个项目中,我在jquery中使用了haml和不引人注目的javascript。每个人都有一个我已经克服的学习曲线。然而,这两种方法的长期成本和收益都不清楚。对于我的下一个项目,我试图在以下两个方面做出决定:

    1. rails+haml+jrails+jquery
    2. Rails+Haml+Unobtrusive jquery

    Rails,尤其是Rails 3.0,似乎倾向于使用不引人注目的JavaScript,但我不清楚为什么这更好,尤其是当您从Rails/Jrails获得如此多有用的帮助者(如远程表单)时。在做出这个决定时,我有以下问题:

    1. 哪种方法可以减少代码以实现相同数量的功能?
    2. 哪种方法不容易出错?
    3. 哪种方法更容易测试?
    4. 哪种方法更容易阅读、维护和发展?
    5. 当客户端浏览器中禁用javascript时,哪种方法可以更轻松地(通过在不使用Ajax的情况下提供相同的功能)降级Web应用程序?

    我很感激你能提供的任何帮助或见解。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Nate Bird    14 年前

    我对你的问题有几个答案——至少在我看来是这样。像这样的问题的答案真的取决于你的经验和偏好。

    1)我要说的是,不引人注目的JavaScript将导致代码总体减少,特别是如果您重用JavaScript方法。

    2&3)对于这两种情况,我将使用不引人注目的javascript。当JavaScript与页面结构分离时,您可以更好地了解该特定代码段的功能,并可以对其进行测试,同时还可以知道您对这些方法进行了测试。混合代码通常(根据我的经验)很难获得良好的测试覆盖率。这将有助于减少代码的错误发生率。

    分离JS的一个问题是,如果删除某个特性,可能会留下代码或删除依赖代码。当然,这就是为什么您应该拥有自动化测试和良好的覆盖范围。

    4)我认为内联JS更容易理解,因为它就在那里,但是任何超过一行的内容,并且您已经降低了可读性,所以您也可以一路不引人注目地获得其他好处。不引人注目的JS还使其他团队成员更容易维护和记录。

    5)根据我的经验,这是一次洗礼。不管怎样,你都必须提供额外的方法。

    最后,我同意Rails3也为不引人注目的JS提供了更好的支持,我认为这是一个最佳实践。我刚开始为一个客户机修复一个旧的应用程序,使用HTML、JS和逻辑的混合视图,理解他们试图完成的工作真的很痛苦。如果事情是分开的,就更容易接受。

    我希望这有帮助。

    推荐文章