powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Применение XML-сериализации при развертывании
20 сообщений из 20, страница 1 из 1
Применение XML-сериализации при развертывании
    #37890725
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пост об XML-сериализации в блоге InterSystems на Хабре .
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37891533
andrew_tsw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений,
На хабре не зарегистрирован, поэтому отвечу здесь.
Именно с такой задачей столкнулись - при внедрении нужно сформировать начальные данные (начальную конфигурацию).
Решали похожим способом, но конфигурацию храним не в описании класса, а в xml файле. Такой подход позволяет ставить одну версию ПО разным заказчикам с разной конфигурацией.
Файлов с начальными данными получилось достаточно много, поэтому они запакованы в архив. При внедрении - отправляем инсталлятор и архив с конфигурацией. В процессе установки архив разжимается и конфигурация импортируется. Импорт конфигурации реализован точно так, как написано в посте.
Буду ждать вторую часть, так как проблему со связями тоже решали.
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37891769
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrew_tsw,

напишите мне в личку про вашу реализацию - в общих чертах. Возможно опубликуем на Хабре как оригинальный вариант решения. А возможно опубликуем только ваше решение - если оно окажется лучше )
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37946245
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров Евгений,

Если не секрет, почему Вы используете конструкции вида
#dim sc As %Status = $$$OK
вместо
s sc = $$$OK
?

Или вот тут не очень понимаю
#dim stream As %Stream.Object = ##class(%Dictionary.CompiledXData).%OpenId(..%ClassName(1) _ "||" _ "populate").Data
Класс пытаемся открыть с интерфейсом другого? Но ведь для каше это не важно - если вывести
w stream.%ClassName(1)
то не факт, что мы увидим "%Stream.Object"
?

Мож мы тут, в тундре, пропускаем чего? Мож, Интерсистемз готовит сюрприз с синтаксисом а мы и не знаем? Мож, уже пора готовиться???
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37946341
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov,

может вы просто не в курсе про конструкцию #dim ?

данная конструкция удобна в процессе разработки, включается дополнение кода, по сути это нужно только для студии
когда студии явно неизвестен тип переменный можно ей это подсказать таким образом
т.е. все это по сути удобство для ускорения разработки и для большей читабельности некая визуальная типизация переменных
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947592
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorkolesov,

может вы просто не в курсе про конструкцию #dim ?

данная конструкция удобна в процессе разработки, включается дополнение кода, по сути это нужно только для студии
когда студии явно неизвестен тип переменный можно ей это подсказать таким образом
т.е. все это по сути удобство для ускорения разработки и для большей читабельности некая визуальная типизация переменных
В том-то и дело, что я эту конструкцию, сильно смахивающую на аналогичную в известном г..продукте известной г..компании (понятно, что это сугубо субъективное мнение... большинства присутствующих ;) вижу не в первый раз. Как на мой вкус, так это просто издевательство над М. Почему-то не услышал аргумента типа "Так я же всю жизнь на вэбэа пИсал - спасибо Интерсистемз, что я могу в каше писать столь же приятный для глаза код текст."
Коллеги, я не против, что есть вэбэа-, 1С-, или ексель-подобный синтаксис. Это хорошо для людей со стороны. Но предлагаю на форуме по-возможности использовать нативные вещи, присущие М (ну COS на худой конец). А то мы тут скоро начнем наблюдать конструкции вида "ЕСЛИ( а БОЛЬШЕ б)"...
Да, история с тем, что студия не может подсмотреть, какого типа объект возвращает метод (ну подслеповатая она на оба глаза, блин), имеет место быть. Но ТАКИМ способом решить проблему!? Браво, Интерсистемз! И рыбку съели и (известно куда) не сели. Я плакаль.

О лукавстве:
#dim sc As %Status = $$$OK в Вашей интертрепации НИЧЕГО НЕ ДАСТ Студии (как и подавляющее большинство тех #dim, которые я вижу на форуме.? В т.ч. и пример со stream.)

Предлагаю (чего же хаять все время):

Если в студии после набора точки сильно хочется видеть список свойств и методов, писать в начале метода (как в ейной любимой ваге)
#dim stream As %Stream.Object (и скромно не выносить эту гадость этот кривой костыль ИС на форум)

а в коде все-таки
s stream = ##class(%Dictionary.CompiledXData).%OpenId(..%ClassName(1) _ "||" _ "populate").Data
(понятно, что этот конкретный случай "выстрелит" и вовсе без #dim)

Анализируя собственный всплеск эмоций могу констатировать, что меня не столько #dim раздражает, сколько тот факт, что использует его представитель Интерсистемз - а это неприятный сигнал сообществу. Туда (т.е. ДАЖЕ ТУДА) проникли вэбэашники!? СО всеми проистекающими. Это меня печалит даже больше, чем стоимость продукта. Или это связанные вещи и ситуацию надо рассматривать шире?
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947750
Шваров Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov,
Зря вы волнуетесь - вэбэашники никуда не проникли.
Всё правда - #dim с одной стороны только для код-комплешен.
С другой - это неплохой способ явно выделить используемые в методе локальные переменные и сразу их задокументировать указанием класса использования. Что ж в этом плохого?

На производительность не влияет вообще никак. Только на читабельность кода. С моей точки зрения положительно влияет.
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947763
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
честно я совсем не понял вашего негодования

во первых как в не типизированном языке в самом языке может быть предусмотрена подсказка методов, и указать тип переменной иногда тоже нужно

я не понимаю кто такие вэбэашники, полагаю это VBA где вроде что то типа такой конструкции я припоминаю, но не занимался вплотную
лично я использую #dim когда студия не может подсказать потому как узнать тип ей неоткуда.

авторАнализируя собственный всплеск эмоций могу констатировать, что меня не столько #dim раздражает, сколько тот факт, что использует его представитель Интерсистемз - а это неприятный сигнал сообществу. Туда (т.е. ДАЖЕ ТУДА) проникли вэбэашники!?
а вас не смущает то факт что в каше уже давно можно писать на бейсике, пока от этого вроде ничего плохого не случилось ?

да местами конечно код может быть перегружен #dim но опять это только добавляет читабельности пускай тип %Status и не объектный тип и не имеет своих методов, но по крайней мере видно что эта переменная того типа

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

авторВ том-то и дело, что я эту конструкцию, сильно смахивающую на аналогичную в известном г..продукте известной г..компании
а for, while, if похожие на многие другие языки вас не смущают ?

вам не нравятся заимствования из других языков, то позвольте вы предлагаете указывать тип переменной когда в M такого в принципе не предусмотрено.

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

вы в своем сообщении привели кучу какого то сленга который непонятен мне как прогеру только на COS, и при этом возмущаетесь на других что они пишут неправильно.
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947824
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorво первых как в не типизированном языке в самом языке может быть предусмотрена подсказка методов, и указать тип переменной иногда тоже нужно
Вот тут с вами не соглашусь, хорошие IDE имеют и автокомплит и подсказки по методам (конечно есть ситуации, когда и они пасуют, но реже). Они динамически парсят код, что да, замедляет работу, но я согласен подождать 1-2 сек, чем лезть в другой класс и оттуда копировать название метода.
В кашовой студии я вообще не понимаю, что сложного проанализировать возвращаемое значение метода и на него ориентироваться при автокомплите? Да и банально локальные переменные - студия умеет подсвечивать ранее не использованные переменные, а вот их автокомплит сделать стесняется.
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947850
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosDAiMorво первых как в не типизированном языке в самом языке может быть предусмотрена подсказка методов, и указать тип переменной иногда тоже нужно
Вот тут с вами не соглашусь, хорошие IDE имеют и автокомплит и подсказки по методам (конечно есть ситуации, когда и они пасуют, но реже). Они динамически парсят код, что да, замедляет работу, но я согласен подождать 1-2 сек, чем лезть в другой класс и оттуда копировать название метода.
В кашовой студии я вообще не понимаю, что сложного проанализировать возвращаемое значение метода и на него ориентироваться при автокомплите? Да и банально локальные переменные - студия умеет подсвечивать ранее не использованные переменные, а вот их автокомплит сделать стесняется.

и вы опять же забываетесь, по больше часть автокомплит касается типизированных языков, коим COS не является

в нашем коде часто используются вызовы вида
$zobjclassmethod(class,"MethodName")
и как вы предлагаете студии на это реагировать
так же используютя макроподстановки вида
$$$Open(docId)
за которой скрывается вообще MAC код, и как далеко можно копать чтобы найти какой то тип возвращаемого объекта
из-за того что большая часть кода можен вообще не указывать тип возвращаемых объектов, как по вашему искать это тип
скажите что еще парсер должен найти в том методе что вызывается объявление возвращаемой переменной и угадать ее тип таким образом, и сколько времени тогда будет работать этот парсер мешая вам работать.
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947914
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorи вы опять же забываетесь, по больше часть автокомплит касается типизированных языков, коим COS не является

в нашем коде часто используются вызовы вида
$zobjclassmethod(class,"MethodName")
и как вы предлагаете студии на это реагировать
так же используютя макроподстановки вида
$$$Open(docId)
за которой скрывается вообще MAC код, и как далеко можно копать чтобы найти какой то тип возвращаемого объекта
из-за того что большая часть кода можен вообще не указывать тип возвращаемых объектов, как по вашему искать это тип
скажите что еще парсер должен найти в том методе что вызывается объявление возвращаемой переменной и угадать ее тип таким образом, и сколько времени тогда будет работать этот парсер мешая вам работать.

а каким образом COS добавляет автокомплит для ##class(myClass).%New() или %OpenId() ?
однострочный макрос и развернуть не проблема, нет?

Я согласен, что полный автокомплит это фантастика, но ведь есть и просты случаи, который можно обрабатывать и практически без временных затрат.
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947965
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosа каким образом COS добавляет автокомплит для ##class(myClass).%New() или %OpenId() ?
однострочный макрос и развернуть не проблема, нет?

Я согласен, что полный автокомплит это фантастика, но ведь есть и просты случаи, который можно обрабатывать и практически без временных затрат.
в приведенном вашем примере автокомплит работает
ну вот для тех случаев когда полный автокомплит фантастика и удачно подходит применение #dim
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947983
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под примитивными я имел ввиду явный вызов хотя бы ClassMethod'ов, у которых явно прописано возвращаемое значение. + для методов экземпляра такой анализ тоже можно делать при вызове методов или обращения к свойствам.
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37947999
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosа каким образом COS добавляет автокомплит для ##class(myClass).%New() или %OpenId() ?
однострочный макрос и развернуть не проблема, нет?А где тут макрос?
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37948029
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.D_De1mosа каким образом COS добавляет автокомплит для ##class(myClass).%New() или %OpenId() ?
однострочный макрос и развернуть не проблема, нет?А где тут макрос?
Это отдельный вопрос
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37948559
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMorи вы опять же забываетесь
...
$zobjclassmethod(class,"MethodName")
...

а Вы завираетесь заблуждаетесь:

#dim ret As И_ЧТО_ЖЕ_ВЫ_ЗДЕСЬ_НАПИШЕТЕ_ТАКИ? = $zobjclassmethod(class,"MethodName")

Еще интереснее, что же Вам Студия, бедненькая, подскажет???

Вы вообще, как-то договорились бы, что-ли. А то один - про нетипизированность, второй тут же про то, как прекрасно "явно выделить используемые в методе локальные переменные и сразу их задокументировать указанием класса использования" (читай - типизировать). Этак мы скоро и до явного преобразования типов дойдем...

Не напрасно дедов слово
Затвердил народный ум:
"Что для русского здорово,
То для немца карачун!"


П.А.Вяземский "Масленица на чужой стороне", 1853

ЗЫ: Я это без злобЫ, если показалось, что наезжаю, приношу извинения.
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37948615
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovВы вообще, как-то договорились бы, что-ли. А то один - про нетипизированность, второй тут же про то, как прекрасно "явно выделить используемые в методе локальные переменные и сразу их задокументировать указанием класса использования" (читай - типизировать). Этак мы скоро и до явного преобразования типов дойдем...

вот тут вы опять что то путаете, я говорил про нетипизированный язык, и в данном случае #dim это визуальное приведение к типу
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37948944
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Шваров ЕвгенийНа производительность не влияет вообще никак. Только на читабельность кода. С моей точки зрения положительно влияет.
А мой глаз об эти #dim пока что спотыкается. Я как представлю, в системе все "s sc = $$$OK" (малипусеньки мои пушистенькие),
позаменять на монстров вида "#dim sc As %Status = $$$OK" - страшный сон...
Я вот наоборот думаю, не слишком ли мы многословны, используя $$$OK - мож проще быть - s sc = 1, а?
Еще, открыв код и увидев эту вэбэашную провокацию конструкцию, несведущий человек может подумать, что в каше есть типы - это тоже не гуд. В каше, имхо, как раз очень важно понимать, что кроме строк нет ничего (строго говоря, конечно не так, но мы не будем строги в пятницу вечером ;)
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37949060
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov,

ладно не будем больше ссориться, расшифруйте только ваши "вэбэашную" и "ваги", а то я их не понял
...
Рейтинг: 0 / 0
Применение XML-сериализации при развертывании
    #37949262
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DAiMor,
оба случая - интерпретации vba от лени ради этого чуда переключать кодировку (второй вариант еще и с очепяткой). Извиняюсь.
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Применение XML-сериализации при развертывании
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]