Что такое ориентированное на данные программирование?

Может ли кто-нибудь объяснить мне

  1. Что такое ориентированное на данные программирование?
  2. Является ли Data ориентированное программирование и функциональное программирование одинаковыми?
  3. Чем программирование на основе данных отличается от объектно-ориентированного программирования?
  4. При каких обстоятельствах мы выбираем Data Oriented языки программирования, а не Object-Oriented языки программирования?

3 ответа

Во-первых, я хочу сказать, что Data-ориентированный дизайн и программирование на основе Data - это не одно и то же!

В объектно-ориентированном программировании вы сосредотачиваетесь на одном объекте (классе - его методах, членах и т. Д.). В ориентированном на данные дизайне вы думаете, как данные касаются и обрабатываются. У вас просто есть блок, который просто обрабатывает ваши входные данные для ваших выходных данных (идеальные входные данные совпадают с выходными)

Все это было создано для написания высокопроизводительных приложений. Вы работаете с однородными, линейными данными - и все это позволяет в полной мере использовать кэш процессора (как инструкции, так и данные).

По возможности старайтесь избегать иерархических структур (вместо этого используйте массивы), старайтесь писать функции, которые работают с несколькими данными, и использовать горячее и холодное разбиение структуры.

int Foo(int* input_data, int count)
{
    // do something with your data
}

Как следует из названия, DOP предназначен для разработки приложений, управляемых данными. Это не то же самое, что ООП. Для дальнейшей ссылки перейдите по следующим ссылкам;

http://www.rti.com/whitepapers/Data-Oriented_Architecture.pdf

http://en.wikipedia.org/wiki/List_of_programming_languages_by_category

Data ориентированное программирование - это просто язык программирования с базой данных, вы можете создавать таблицы и запросы и программировать для манипулирования сохраненными на нем данными, примером ориентированного на данные языка являются SQL, DBase и Visual Foxpro.

Другие вопросы по тегам