В течение многих лет я видел много дискуссий о том, как OOD должны превосходить реляционные базы данных «в ближайшее время»; что реляционная модель - это путь прошлого; эта инерция от огромной установленной базы (эм ... legacy ) - это то, что сдерживает прогресс в OOD. «Это всего лишь вопрос времени, когда« достаточно хорошая »реализация, наконец, выйдет и преуспеет в свертывании СУРБД».
Я ни в коем случае не эксперт; но я много раз думал об этом, и я пришел к выводу, что эти взгляды совершенно не соответствуют действительности.
В большинстве сценариев "реального мира" важная вещь, единственное, что имеет значение, это данные .
Методы программирования, инструменты и языки меняются; технология развивается. Корпоративные «Системы голосового реагирования» становятся яростью, а затем исчезают в тени «Сети». Приложения приходят и уходят; некоторые из них хорошие, некоторые не очень; некоторые критические, некоторые просто удобные; некоторые последние 3 месяца, некоторые последние 3 десятилетия. Но, в конце концов, информация, которая питает все эти приложения, является «1011 * сердцем * 1012» системы и должна пережить колебания моды. Данные остаются .
Итак, ядро «Системы» должно развиваться вокруг одной цели: хранить и защищать данные.
Подумайте об этом: в частности, базы данных SQL дают нам автономный, (в основном) стандартизированный репозиторий с проверенной десятилетиями записью, и к нему можно получить доступ в любое время, что далеко не устарело, по сути является Функциональным язык! Это очень хорошее место, где можно доверять вашему наиболее ценному компоненту.
Любой подход, который отдает приоритет инструменту программирования, среде или приложению за счет сохранения данных в скрытом хранилище - все, что связывает технологию приложения слишком близко к данным, может потерпеть неудачу Обочина.
Не сказать, что я верю, что все в мире должно входить в таблицу SQL. У OOD-подобных решений тоже есть место и большой потенциал. Но вам нужно искать места, где «приложение» является королем, а «данные» второстепенными: игры, одноразовые приложения и инструменты, системы, которые содержат некритические данные или данные, которые не имеют долгосрочной ценности в прошлом. ожидаемая продолжительность жизни приложения.
В частности, я думаю, что системы, которые имеют ограниченный срок полезного использования (не более нескольких лет), являются основными кандидатами на OOD-подобные технологии. С другой стороны, работая над чем-либо, что однажды должно «передать» данные его преемнику, я бы очень остерегался всего, кроме старых добрых СУБД.
Чтобы поместить это в звуковой байт, это никогда не было о "приложении"; Это всегда было о "данных".