2

我负责一个 Rails 应用程序,它即将重命名一些面向用户的关键部分(例如 url,以及其他类似的更改,例如将“博客”重命名为“期刊”等)

我有点担心,随着时间的推移,代码库中所有方法、路由和类名的大量旧名称将难以阅读和维护。

处理此类变化的最佳方法是什么?

当给方法和类名加上别名,或者在这里运行迁移时,陷阱在哪里?

谢谢

4

2 回答 2

1

如果应用程序正在开发并且尚未投入生产,您可以安全地返回并重命名迁移/模型/视图等......然后执行rake db:migrate:reset并完成它。你应该有足够的测试来确保重命名不会破坏任何东西,如果是这样,你应该增加你在该区域的测试覆盖率。

就目前正在生产的应用程序执行此操作而言,我建议逐步执行此操作,以减少更改的表面积:

改变你的路线

这可能是最大的变化。首先更新您的路线将使您有机会修复所有视图。

更新您的模型/控制器

您可以在不更改数据库的情况下执行此操作。您可以使用 使您的模型指向一个新的数据库表set_table_name "OldTable"。这意味着您可以在发行版之外进行任何数据库更改。

更改数据库

希望您使用的是迁移,在这种情况下,只需重命名表并删除 set_table_name。

于 2009-11-02T16:02:21.283 回答
0

我会重命名内部类以匹配外部名称,否则在谈论代码时只会引起混乱。当然,路由可以使外部更改易于切换,但是没有什么比在代码中阅读您在网页上看到的内容更好的了。

重命名后,我会在暂存环境中使用实时数据加载应用程序以测试迁移,然后运行类似 tarantula ( http://github.com/relevance/tarantula ) 来抓取您的应用程序以寻找明显的您和您的测试可能遗漏的问题。

于 2009-11-02T15:25:24.900 回答