Ответ
Идемпотентность означает, что повторные вызовы метода с одинаковыми параметрами дают тот же результат, что и первый вызов, без побочных эффектов.
Пример с HTTP-методами:
GET
– идемпотентный (повторные запросы не изменяют состояние сервера)PUT
– идемпотентный (обновление ресурса на один и тот жеid
даёт одинаковый результат)POST
– неидемпотентный (каждый вызов создаёт новый ресурс)
Пример кода:
// Идемпотентная функция
function updateUserName(userId, newName) {
// Всегда устанавливает одно и то же имя для userId
return db.update({ id: userId, name: newName });
}
// Неидемпотентная функция
function createUser(name) {
// Каждый вызов создаёт нового пользователя
return db.insert({ name });
}