Что такое stateless-операция или функция?

«Что такое stateless-операция или функция?» — вопрос из категории Архитектура, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Stateless-операция (функция без состояния) — это операция, результат которой зависит только от входных аргументов. Она не хранит и не использует какое-либо изменяемое состояние между вызовами (не имеет побочных эффектов на внешнее состояние).

Ключевые характеристики:

  • Детерминированность: При одинаковых входных данных всегда возвращает одинаковый результат.
  • Идемпотентность: Многократный вызов с теми же аргументами не меняет общее состояние системы.
  • Потокобезопасность: Отсутствие общего изменяемого состояния делает функцию безопасной для использования в многопоточных средах.

Пример в Java:

// Stateless-функция: результат зависит только от a и b.
public static int add(int a, int b) {
    return a + b;
}

// Stateful-функция: результат зависит от внешнего состояния (counter).
public class Counter {
    private int count = 0;
    public int increment() { // НЕ stateless
        return ++count; // Изменяет внутреннее состояние
    }
}

Применение: Чистые функции в функциональном программировании, методы утилитарных классов, GET-запросы в REST API.