(и когда-же наконец ИС уберет раздел DeepSee… или уволит этого маркетолога — назло не куплю!)
DeepSee для использования готовых дашбордов — бесплатен. Да и визуальное построение отчетов тоже теперь там сидит. Так что — не бесполезная закладочка ;) А статья — отличная, спасибо!
Но ведь после того, как заказчики выбрали «best of breed» Вы все это объединяете интеграционной шиной? И какую шину используете? Почему например не выбрать Ensemble в качестве шины — ведь по сравнению со стеками технологий от IBM и Microsoft, InterSystems Ensemble — действительно «все в одном», что ИМХО упрощает решение, а также удешевляет и упрощает эксплуатацию.
Для проекта Gaia используется Caché Java Extreme технология. Документация об этой штуке.
И да, это без использования SQL напрямую из Java в глобалы.
В принципе можно также работать с Caché и из .NET и из node.js.
Пожалуйста: выделяете код, в котором нужно развернуть команды, нажимаете Ctrl+E. Ctrl+Shift+E — обратное действие. Описание всех горячих клавиш студии здесь — там много чего вкусного еще.
Справедливо. Но и справедливости же ради можно сказать, что однобуквенный синтаксис разворачивается в полный одним нажатием кнопки в студии. Что касается этой статьи, здесь логика очевидна и в однобуквенном синтаксисе, хотя я бы написал по-другому (цикл и if).
На самом деле вариантов не два, а сотни — это же MUMPS. Это именно вопрос предпочтений и архитектуры. Ведь вы здесь спрашиваете о том, как лучше записать в базу. А потом вам обязательно потребуется эти данные прочитать — и снова возникнет вопрос скорости и удобства разработки. Кроме того, если система получится долгоживущей, то ее нужно будет поддерживать, а значит менять структуру данных. Поэтому неплохо бы позаботиться о будущем по возможности безболезненном изменении метаданных.
Что касаемо заданного вопроса — однозначно можно сказать, что в Caché первый вариант реализован эффективнее и универсальнее с помощью списков. В данном случае будет выглядеть как:
set ^CUSTOMER(100)=$LB(«Chris Munt»,«Oxford»)
чтобы потом
name=$LG(^CUSTOMER(100),1)
address=$LG(^CUSTOMER(100),2)
$LG(LISTGET) работает намного быстрее $piece, и не нужно «приносить в жертву» данным символ-разделитель — вдруг вы захотите его использовать в данных?
А если говорить об архитектуре — при разработке любой более-менее серьезной MUMPS системы, разработчики создают собственное API по записи и чтению данных в их придуманную архитектуру данных и потом поддерживают это.
Собственно это одна из причин появления объектной СУБД в Caché — чтобы разработчикам не придумывать и не поддерживать API для работы с глобалами самим, можно возложить это на InterSystems и использовать объектную архитектуру, поддерживаемую и развиваемую компанией, в которой есть и прямой доступ к глобалам (set, get), но есть и ODBC, JDBC, .NET, java, node.js и т.д.
Но если вам не нужна развитая, поддерживаемая архитектура, у вас всегда есть глобалы MUMPS и их скорость и свобода.
Ну и еще раз, отвечая на поставленный вопрос — InterSystems в хранении данных объектов Caché по умолчанию использует именно первый вариант, но на $LB конструкциях.
Дело было десять лет назад — выкатили 100 000$ только для разработки. ( могли конечно для манёвра такую стоимость назвать)
Могли и для маневра — но сейчас все гораздо демократичнее для разработки. А временную лицензию для «попробовать» можно заказать бесплатно — месяца на 3.
А вот интерсистемс думает иначе: «Can I develop a commercial application with the evaluation version of Caché?
No. It is for evaluation purposes only. For developing and deploying commercial applications, you must purchase a Caché license». Это FAQ со страницы скачивания Free Caché Download.
Тут дело скорее в том, что разработка коммерческих проектов на фриварной версии может привести к неоднозначной оценке технологии, т.к. фриварный дистрибутив это сильно урезанный по производительности и функционалу слепок коммерческой версии. Но для «посмотреть возможности Caché Studio» бесплатного дистрибутива вполне хватит.
А что Вы подразумеваете под «огромными» деньгами? На небольшое число лицензий (например 5 пользователей) девелоперская версия Caché стоит разумные деньги. Но Caché Studio можно использовать и не покупая. Например скачать фриварную версию СУБД. В качестве сервера фриварную версию ее использовать нельзя (низкая производительность и ограничение на коннекты), а вот для использования Caché Studio — самое оно. Еще InterSystems тестирует программу стартапов — бесплатный хостинг Caché/Ensemble с любым требуемым количеством лицензий — лишь бы тема стартапа была интересной.
DeepSee для использования готовых дашбордов — бесплатен. Да и визуальное построение отчетов тоже теперь там сидит. Так что — не бесполезная закладочка ;) А статья — отличная, спасибо!
Caché Objects — быстрый старт.
Видеокурс Caché+.NET
И да, это без использования SQL напрямую из Java в глобалы.
В принципе можно также работать с Caché и из .NET и из node.js.
Что касаемо заданного вопроса — однозначно можно сказать, что в Caché первый вариант реализован эффективнее и универсальнее с помощью списков. В данном случае будет выглядеть как:
set ^CUSTOMER(100)=$LB(«Chris Munt»,«Oxford»)
чтобы потом
name=$LG(^CUSTOMER(100),1)
address=$LG(^CUSTOMER(100),2)
$LG(LISTGET) работает намного быстрее $piece, и не нужно «приносить в жертву» данным символ-разделитель — вдруг вы захотите его использовать в данных?
А если говорить об архитектуре — при разработке любой более-менее серьезной MUMPS системы, разработчики создают собственное API по записи и чтению данных в их придуманную архитектуру данных и потом поддерживают это.
Собственно это одна из причин появления объектной СУБД в Caché — чтобы разработчикам не придумывать и не поддерживать API для работы с глобалами самим, можно возложить это на InterSystems и использовать объектную архитектуру, поддерживаемую и развиваемую компанией, в которой есть и прямой доступ к глобалам (set, get), но есть и ODBC, JDBC, .NET, java, node.js и т.д.
Но если вам не нужна развитая, поддерживаемая архитектура, у вас всегда есть глобалы MUMPS и их скорость и свобода.
Ну и еще раз, отвечая на поставленный вопрос — InterSystems в хранении данных объектов Caché по умолчанию использует именно первый вариант, но на $LB конструкциях.
Могли и для маневра — но сейчас все гораздо демократичнее для разработки. А временную лицензию для «попробовать» можно заказать бесплатно — месяца на 3.
Тут дело скорее в том, что разработка коммерческих проектов на фриварной версии может привести к неоднозначной оценке технологии, т.к. фриварный дистрибутив это сильно урезанный по производительности и функционалу слепок коммерческой версии. Но для «посмотреть возможности Caché Studio» бесплатного дистрибутива вполне хватит.