Comments 3
Спасибо, интересно. Мяу.
Очень хорошая статья, лайк!
Эта концепция универсальна и применима к любой парадигме:
В функциональном программировании это разграничение чистых неизменяемых значений и эффектов/состояний.
В проектировании баз данных это различие между схемой (абстракция) и записью в таблице (конкретная сущность с жизненным циклом).
В системном анализе это фундамент для разделения интерфейса (контракт, вид) и реализации (объект, состояние).
Поэтому можно было бы включить в отдельную статью, которая раскрывала бы также про:
Границы идентичности:
Парадокс корабля Тесея: если все атрибуты заменились — это та же сущность?
Версионность:
Сотрудник(2024)иСотрудник(2025)— один объект или два значения во времени?
Для предметного моделирования критично различать:
Изменение состояния (объект),
Смену идентичности (новая сущность),
Историю как сущность (временная шкала как объект первого класса).
Функции — частный случай связей. Полноценная онтология должна различать: преобразования (функции), ограничения (предикаты), ассоциации (отношения) и инварианты (правила целостности).
Композиция и структура. Мало говорится о том, как мелкие концепции собираются в крупные. («Заказ» = «клиент» + «товары», «Маршрут» = последовательность «точек»)
Нескучное программирование. Обобщения (ч.1)