Глосарій

Незмінність (Immutability)

Незмінний об'єкт — той, чий стан не можна змінити після створення. Замість мутації — повертається новий об'єкт з оновленими значеннями. Усуває цілий клас багів пов'язаних із неочікуваними мутаціями.

Переваги

Приклад (Value Object)

class Money {
  public function __construct(
    public readonly int $amount,
    public readonly string $currency
  ) {}

  public function add(Money $other): self {
    return new self($this->amount + $other->amount, $this->currency);
  }
}

У JavaScript

const, Object.freeze(), spread-оператор {...obj, key: newVal}. Бібліотеки: Immer, Immutable.js.