раздел 01

Переменные: данные в памяти

Самый простой способ хранить данные - положить их в переменную. Это первое, что вы делаете в любой программе, даже не думая о «хранении». И это нормальная отправная точка: пока данные не нужно сохранять надолго, переменной достаточно.

Что это

Переменная - это коробка с именем, в которой лежит значение. Программа кладёт туда данные и достаёт обратно по имени.

tasks = []                      # пустой список задач
tasks.append("купить молоко")   # положили задачу
tasks.append("позвонить маме")
print(tasks)                    # ['купить молоко', 'позвонить маме']
let tasks = [];
tasks.push("купить молоко");
tasks.push("позвонить маме");
console.log(tasks); // ['купить молоко', 'позвонить маме']

Пока программа работает, эти задачи доступны. Можно их перебирать, фильтровать, считать. Быстро и просто.

Зачем это

Переменные - это рабочий стол программы. На нём удобно раскладывать то, с чем работаешь прямо сейчас:

  • промежуточные результаты вычислений;
  • данные, которые вы только что загрузили из файла или из интернета;
  • состояние интерфейса: какая вкладка открыта, что ввёл пользователь;
  • кэш - временно сохранённый ответ, чтобы не запрашивать его повторно.

Почему данные исчезают

Переменные живут в оперативной памяти (RAM). Память очищается, как только программа завершается. Закрыли вкладку браузера, остановили скрипт, перезагрузили сервер - всё, чего не сохранили на диск, пропало.

Наглядный пример провала. Вы вайб-кодите todo-приложение, AI хранит задачи в переменной на сервере. Всё работает - до первого перезапуска сервера. После деплоя новой версии все задачи всех пользователей исчезли. Классическая ловушка: «работало же на демо».

Как это выглядит в реальном приложении

В браузере состояние компонента (например, в React через useState) - это тоже переменная в памяти. Обновили страницу - состояние сбросилось.

// React: счётчик живёт в памяти, при перезагрузке страницы обнулится
const [count, setCount] = useState(0);

Чтобы счётчик пережил перезагрузку, его значение надо сохранить - например, в localStorage браузера (это уже маленькое постоянное хранилище) или отправить на сервер.

Антипаттерны

  • Хранить в переменной то, что должно жить долго. Заказы, пользователей, контент - это не для памяти. Один перезапуск, и данные потеряны.
  • Считать, что «на сервере же не закрывается». Серверы перезапускаются постоянно: при деплое, при сбое, при обновлении. Любая серверная переменная - временная.
  • Накапливать в памяти бесконечно. Если складывать в список всё подряд и никогда не чистить, программа со временем съест всю память и упадёт.

Что дальше

Переменной хватает, пока данные нужны «здесь и сейчас». Как только появляется слово «сохранить» - время переходить к файлам. Но сначала разберём, в каких случаях память это правильный и достаточный выбор.

Подразделы