Containerization

ADH05 The Curious Case for the Immutable Object

12/08/2016

11:00am - 12:15pm

Level: Intermediate

David Hoerster

Owner

AgileWays

As object oriented developers, the concept of immutability is more academic than practical. However, with the advent of multi-core processors and the broader adoption of async/await patterns, concurrency becomes an issue. How do you ensure there are no side effects from other processing tasks? Do you use locks and interesting ways of tracking when threads complete? Perhaps you need to adjust your approach to designing systems that are more open to concurrency side effects due to a more imperative style of programming. This session will cover some problems mutable state introduces, and how introducing some immutability concepts into your systems can address these issues. You'll look at events as a time series data store, along with designing your programs to be more functional in nature. You'll even look at this approach with JavaScript by looking at Redux as a stand-alone state store.

You will learn:

  • How and when to implement immutability in your class designs
  • Why mutable state is an issue and how to mitigate that risk
  • About immutability in the service and in the client (JavaScript)