我目前正在使用 Scala 编程,但我想这适用于任何函数式编程语言,或者更确切地说,适用于任何推荐不变性并可以与数据库交互的编程语言。
当我从数据库中获取数据时,我将其映射到模型数据结构。在函数式编程中,数据结构往往是不可变的。但是数据库中的数据是可变的,所以我想知道我的模型是否也应该是可变的。一般来说,在这种情况下,什么是好的和被广泛接受的做法?
在 Coursera 上 Martin Odersky 的 Scala 课程之后,我记得他说过这样的话:
使用不可变数据结构更好,但是当您想与现实世界交互时,使用可变数据结构会很有用。
所以,再次,我想知道我该怎么做。到目前为止,我的数据结构是不可变的,当我想更新数据库中的记录时,这会导致大量的样板代码。使用可变模型会有助于减少这个样板吗?
(我已经问过一个类似的问题,该问题非常具体到我使用的技术,但我对实际答案并不满意,所以我在这里概括了它。)