[LRUG] The advantage of immutability?

Jonathon Horsman jonathon at arctickiwi.com
Wed Sep 9 03:25:43 PDT 2015


Hey smart people

Can you shed some light on why an immutable object is an advantage for a
web-based Ruby app?

For example this app I'm working on has these Request things and a user has
the ability to deny a Request.

So the user would click a button which performs a post to the Request
controller's deny action.
If I were using Rails or some non-immutable based system I would fetch the
object from the database, set it's status to denied, and save it.

However since this Request is an immutable object, I have to either:

1. Write an update_status method which sets that value in the database,
which becomes tedious when there's lots of possible attribute update
combinations
or
2. Read the object from the database, copy all the values to a new object
with the denied status, and stick that back into the database. Seems like
pointless overhead and could be dangerous if later that object gets another
attribute which I forget to copy.

My knowledge of immutable objects originates with Java Strings which I
understand makes sense for performance and memory management reasons.
I don't think this applies here though?

Thanks!

Jonno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lrug.org/pipermail/chat-lrug.org/attachments/20150909/3417ed2d/attachment.html>


More information about the Chat mailing list