Данные - это факты о событиях, запись о чём-то произошедшем.
Обычно данные реализуются в виде структур из встроенных, либо созданных программистом типов.
Характер и значение данных определяются их структурой, в идеале, отражающей предметную область.
Данные должны быть неизменяемыми, это достигается с помощью двух стратегий:
- Copy-on-write - Создание копий данных перед их изменением.
- Defensive copying - Создание копий данных на границах системы.
Достоинства:
Данные используются в основном из-за их ограничений. Данные нельзя “выполнить”, они инертны, поэтому данные очень легко понять.
- Сериализация. Данные, по сути, являются ничем иным, как потоком байтов, поэтому они идеально подходят для передачи по сетям, например.
- Равенство. Данные можно легко сравнивать.
- Интерпретация. Одни и те же данные можно интерпретировать по-разному и в разных целях.
Недостатки:
- Интерпретация. Данные необходимо интерпретировать, чтобы они имели хоть какой-то смысл.
Во многом смысл работы с данными заключается в определении такой их формы, которая бы позволила интерпретировать данные сейчас и в возможном будущем.