我正在开发的一个 Rails 应用程序包含二次方程式的示例。显然,这些都是一个共同的结构:ax^2 + bx + c = 0。
我不想存储其中的每一个示例。我宁愿从模板生成它们。存储此结构的数百个可能版本似乎非常浪费且不干燥。
另一方面,如果我生成它们,我将无法像它们只是多个数据库对象那样可靠地再次访问它们。
我确信一定有办法克服这个问题,但我仍在学习 Rails,显然我没有掌握这里的某些东西。谢谢。
最佳答案
答案是“视情况而定”。如果你只打算做二次方程的例子,那么你可以只存储 a、b 和 c。如果您认为您要计算其他类型的方程式,请存储整个方程式。
真正不应该考虑的是,从浪费磁盘空间的意义上说,存储完整方程是一种“浪费”。除非您要存储数百万个这样的东西,否则不要担心。磁盘很便宜。
其他观点是 YAGNI(Ya Ain't Gonna Need It),它会说根据您现在的情况编写代码,二次方程,不要担心泛化它。如果需要,您可以稍后重构代码和数据。
另一种看待它的方式是 KISS(保持简单,愚蠢)。最简单的事情可能是只存储完整的方程式。这使得检索方程式成为一个简单的数据库提取,不需要代码来生成方程式。
就个人而言,假设您没有做大量此类事情,在这种情况下我更喜欢 KISS。我不相信该系统只会用于二次方程。你可以做的是让系统处理任何方程,但让输入形式采用 a、b 和 c,并将其转换为二次方程。如果您以后需要其他方程类型,更改输入逻辑比更改数据结构简单得多。
关于ruby-on-rails - 如何克服 Rails 中明显的 REST 与 DRY 困境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2563624/