2007年11月7日星期三

Ruby On Rails 顺利移植的提示

《Ruby on Rails 移植指南》一文中作者:Matt Kern提到关于数据库外键对于顺利移植的观点。我觉得相当认同。

虽然许多开发人员喜欢在数据库中充分利用各种约束,但我发现在数据库中取消大部分限制更简单、更清洁。我认为约束是应用程序业务逻辑的一部分,并且发现当它们位于应用程序代码中和数据库外时更易于跟踪。以外键为例;尽管没有将外键添加到移植的内置方法,但有插件和其他帮助可供使用。然而,我显然有点茫然,因为我认为它们并不可取。向移植添加外键会降低数据库独立性,而且在尝试修复出错数据时会导致问题发生。可以依赖 Rails 过滤器和验证,从而避免与添加外键相关的问题。许多开发人员(包括我自己在内)都希望能够在 SQLite3 等轻型数据库上进行开发,在 Oracle 等大型工具上进行部署和生产,移植中的外键在 SQLite 上将不能正常使用。保持灵活。

尝试使每个移植类成为一个单独的任务或特性。选择最适合的工作并坚持不懈。我的经验是如果文件/类名过长,不能描述即将进行的更改,则应将其分类成 单独的移植。您应该能够根据文件名识别更改,而无需深究程序代码本身。记住,这样做的目的是使开发更高效、更愉快。我甚至可以告诉您一个小秘密: ActiveRecord 和移植也可以在 Rails 框架外使用。(当然上,这实际上并不是一个秘密,但了解这一点还是有好处的!)

最后,测试,测试,再测试。在投入生产之前,确保移植是可靠的。运行移植时,任务的完成顺序很重要,因此测试是重中之重。例如,如果您视图在删的数 据之前更改包含该数据的列,移植将失败。我认为,最严重的错误莫过于将未经过全面测试的移植投入生产。移植很强大,但果您不够细心,它们会损坏生产数据 库。当然,为了提高开发流程效率和舒适度,如何明智地使用移植还需要长期的努力。

没有评论:

 
(L)1984 - 2007 TONY CHEUNG