2009-10-08 42 views

回答

1

他在演讲中有点夸张和惯用。不过,他的观点很有道理。您需要确保所有迁移都在所有环境中运行(包括每次db:test:clone时),您需要加载每次使用代码处理数据时(例如,甚至在irb中),都可能会遇到加载顺序问题。简而言之,它不是免费的,我们不希望产生不必要的开发和支持成本。

但是,这样做可能有好处。数据可能希望在用不同语言编写的代码之间共享;代码可能很复杂,并且在每次部署之前都需要昂贵的测试周期;你可能想创建数据库约束的数据;您可能需要广泛或结构化的元数据与枚举相关联;等等。

虽然这些条件并不常见。对于大多数枚举来说,命名常量,散列,甚至只是使用符号的约定就足够了。

0

正如他所说的,他关于静态枚举他有问题。为什么要为可以存储在命名常量中的某些静态数据进行数据库查询?

此外,一些开发人员代码为未来。如果将来所有的需求都会延伸,那么它就要根据现在的要求进行编码,同时保持设计关闭以进行修改和开放延伸。否则,你会花费时间,精力和最终的钱来处理客户没有真正要求的东西。可扩展设计是一回事,而针对未来需求的设计则是另一回事。如果需要的话,前者可以延伸到后者,但在此时并不需要后者。

相关问题