shlogg · Early preview
Maxi Contieri @mcsee1

Exposing Aliasing In Collections With Immutable Solutions

Use immutable collections to prevent unintended side effects, debugging challenges & data corruption. Immutable collections can't be changed after creation, helping you avoid aliasing issues.

Exposing your collections couples your solution

TL;DR: Use immutable collections to prevent unintended side effects.

  
  
  Problems

Unpredictable behavior
Debugging challenges
Data corruption
Violation of the Principle of Least Astonishment
Premature optimization
Unexpected Mutations
Concurrency problems
Compromised thread safety
Increased coupling


  
  
  Solutions

Use immutable collections
Create immutable classes
Copy the collection before modification
Avoid collection getters
Avoid automatic properties
Favor information hiding and encapsulation

  
  
  Context

Aliasing happens wh...