【发布时间】:2012-10-21 00:24:15
【问题描述】:
我目前正在使用 Scala 进行编程,但我想这适用于任何函数式编程语言,或者更确切地说,适用于任何推荐不变性并可以与数据库交互的编程语言。
当我从数据库中获取数据时,我将其映射到模型数据结构。在函数式编程中,数据结构往往是不可变的。但是数据库中的数据是可变的,所以我想知道我的模型是否也应该是可变的。一般来说,在这种情况下,什么是好的和广为接受的做法?
Martin Odersky 在 Coursera 上的 Scala 课程之后,我记得他说过这样的话:
最好使用不可变的数据结构,但是当你想 与现实世界交互,使用可变数据可能很有用 结构。
所以,再次,我想知道我应该怎么做。到目前为止,我的数据结构是不可变的,当我想更新数据库中的记录时,这会导致大量的样板代码。使用可变模型是否有助于减少这种样板?
(我已经问过a similar question which was quite specific to the technologies I use,但我对实际答案并不满意,所以我在这里概括一下。)
【问题讨论】:
-
如果您投票结束这个问题,请告诉我原因。如果已经回答,请提供链接或其他内容。
-
+1 我认为这是一个很好的问题。此外,您提到不可变模型导致样板,所以也许您应该尝试可变模型。也许制作一个快速原型,看看它如何影响设计。 :)
标签: database language-agnostic functional-programming immutability