我们是一个致力于 Rails 2.3 项目的小团队。简短说明:该项目目前已
- 460 000 行 Ruby、CSS、JS 和 YML(包括一些插件和库)
- 350 个 ActiveRecord 类(仅项目的类)
- 最近的类和控制器中的一些 Rspec 测试(还不够)
- 需要 45 颗宝石
- 包含 2 个 Go 数据的数据库。
该项目分为大约 15 个“模块”(不是 Rails 模块),每个模块都与其他模块通信。这个项目存在好几年了,并且已经由几个人改进和维护,而不是必要的 Rails 专家。
当前的主要问题是代码的几个部分难以维护,未优化且不够“周到”(到处都有破解)。CSS 文件几乎不可读。
我们的团队正在考虑重构这个项目。我们有几个解决方案:
从头开始创建一个新项目,并一一包含功能。这个解决方案的优点是我们拥有项目的所有方面,并且我们可以对代码设计做出更漂亮的决定。另一个优点是我们可以更新到 Rails 3。缺少这种方法是当我们必须包含新功能时,我们必须并行维护 2 个项目。
逐个模块更新现有代码。这种解决方案的优点是我们只保留一个项目来维护。但是有几个不足......如何从旧模块转到新模块?如何在新旧类名之间进行?如何知道旧代码在哪里被使用并且必须被删除?......甚至更多。
有没有人已经进行过这样的大重构?
有没有人对此有经验反馈?
有没有人有其他解决方案?
谢谢阅读 !