|
Объектная модель без метаданных | ☑ | ||
---|---|---|---|---|
0
Asmody
27.04.21
✎
12:19
|
Предположим, в рамках некоторой интеграционной задачи, необходимо реализовать объектную модель из десятка сущностей со связями и т.д. При этом данные будут получаться из каких-то произвольных внешних источников в некотором формате. Нужно обеспечить получение, некоторую обработку, возможно, сохранение в объектах метаданных, отправку изменений обратно.
Какими средствами языка или платформы вы бы реализовали такую модель? (вопрос именно про модель, не про задачу целиком!) |
|||
1
mistеr
27.04.21
✎
12:27
|
Нужно уточнить, что за "связи", и что от них требуется.
Как-то для похожей задачи использовал ТЗ с типизированными колонками. Но связей там особо не было, примитивные типы в основном. |
|||
2
МихаилМ
27.04.21
✎
12:30
|
мне для объектной модели больше всего подошли ВИД.
они и на сервере и на клиенте и имеют неограниченную вложенность. |
|||
3
Asmody
27.04.21
✎
12:34
|
(1) связи в смысле ссылочные типы. Например, у ветки есть автор, который есть пользователь, а у пользователя есть ИД, соответственно, у ветки есть поле ИДАвтора
|
|||
4
mistеr
27.04.21
✎
12:36
|
(3) Можно использовать ТЗ для хранения. И ссылки на строки ТЗ.
|
|||
5
ДенисЧ
27.04.21
✎
12:37
|
(3) Типа форума?
Я когда-то пытался нечто такое делать на справочниках. Но обновление иерархии занимало неприлично большое время |
|||
6
Asmody
27.04.21
✎
12:37
|
(4) ссылка на строку ТЗ?
|
|||
7
mistеr
27.04.21
✎
12:38
|
(6) Я имею в виду в памяти, не в базе.
|
|||
8
Asmody
27.04.21
✎
12:38
|
(5) не, форум - это просто для примера. Просто есть некий развесистый АПИ, надо с ним работать
|
|||
9
Kassern
27.04.21
✎
12:38
|
Если я правильно понял вопрос, использовал бы веб/http сервис, со своей апишкой для интеграции. Для хранения структуры (источник/приемник) использовал бы справочники/документы. Для связей регистры сведений.
|
|||
10
mistеr
27.04.21
✎
12:38
|
А в базе конечно справочники.
|
|||
11
Asmody
27.04.21
✎
12:39
|
АПИ возвращает всякие джейсоны, а хочется работать с ними "по человечески"
|
|||
12
fisher
27.04.21
✎
12:40
|
Необходимость сохранения на диск - ключевой момент. Человеческое структурирование потребует либо специфических метаданных в терминах 1С либо средств эмуляции.
|
|||
13
Asmody
27.04.21
✎
12:42
|
(12) из сохранения - разве что кеширование. какие-то данные должны перекладываться в данные конфы, но прямого соответствия нет.
|
|||
14
Kassern
27.04.21
✎
12:42
|
(11) Если мы говорим про веб сервисы, то можно вполне использовать xdto пакеты. У меня так мобильное приложение получает массив заказов при запросе к центральной базе
|
|||
15
Asmody
27.04.21
✎
12:42
|
А что общественность скажет за XDTO?
|
|||
16
fisher
27.04.21
✎
12:43
|
(14) С языка снял.
|
|||
17
Asmody
27.04.21
✎
12:44
|
XDTO меня смущает некоторой перегруженностью и, местами, неочевидностью. Опять же, (де)сериализацию в/из тот же json всё равно руками писать.
|
|||
18
Lama12
27.04.21
✎
12:45
|
(15) Плохо их знаю, и еще не пользовался, но судя по описанию это как раз то, что нужно.
|
|||
19
Lama12
27.04.21
✎
12:46
|
(17) Зато после десериализации можешь работать как с объектом.
|
|||
20
Garykom
гуру
27.04.21
✎
12:46
|
JSON
К черту тормозной XML с XDTO |
|||
21
Garykom
гуру
27.04.21
✎
12:46
|
(20)+ C JSON дико удобно работать через структуры 1С
|
|||
22
Garykom
гуру
27.04.21
✎
12:48
|
||||
23
fisher
27.04.21
✎
12:51
|
Тему можно закрывать.
|
|||
24
Жан Пердежон
27.04.21
✎
12:51
|
xdto/json уже было?
|
|||
25
Asmody
27.04.21
✎
12:51
|
Я частично сделал на структурах, которые имитируют объекты моделей. Сделал модуль с конструкторами типа
Функция НовыйМодельПользователь() Экспорт Модель = Новый Структура; Модель.Вставить("ИДПользователя", 0); /// еще овердохера полей Возврат Модель; КонецФункции и еще парой методов для сериализации/десериализации в json Сейчас этот модуль подбирается к тысяче строк, а в нем всего пяток моделей. Я ловлю себя на вопросе: нафига столько boilerplate-кода? я на 1С пишу или на java? |
|||
26
Asmody
27.04.21
✎
12:55
|
И еще приходится что-то дублировать в формах, куда прилетает, например, массив структур, а на форме - ТЗ под таблицей. и начинается:
Для каждого ЗаполнитьЗначенияСвойств() ... вот это всё. |
|||
27
Asmody
27.04.21
✎
12:56
|
А потом надо на эту ТЗ наложить динамический отбор.
Вот я и думаю - нафига я переписываю 1С на 1С? |
|||
28
mistеr
27.04.21
✎
12:58
|
(25) Ты пишешь для проприетарной платформы на весьма ограниченном ЯП, не содержащем средств для "улучшения качества жизни".
|
|||
29
Bigbro
27.04.21
✎
12:58
|
а потом мы удивляемся почему решения построенные на обертках для оберток из абстракций для более выосокуровневых абстракций ... тормозят...
|
|||
30
mistеr
27.04.21
✎
12:59
|
(26) Я уже предлагал хранить сразу в ТЗ
|
|||
31
fisher
27.04.21
✎
13:02
|
(25) Ну, если получится через нативное XDTO <-> JSON, то это уйдет. Если не получится - штош...
(26) А это не уйдет. Это галя балувана. |
|||
32
fisher
27.04.21
✎
13:03
|
Но ТЗ <-> массив структур это ж один раз пишется.
|
|||
33
PLUT
27.04.21
✎
13:09
|
делал как-то такую модельку на XDTO-пакетах, оказалось удобно.
"тело запроса" в жопсон (json) нужной структуры (данные метода API) буквально в несколько строк кода получал. ну и при изменении структуры данных методов API тоже легко в пакетах изменить |
|||
34
Asmody
27.04.21
✎
13:17
|
(33) вот этот момент: "тело запроса в несколько строк кода". ясен пень, что 146% АПИ отдают джейсона по-ненашемски. А в 1С кошерно оперировать русскими буквами. Естессно хочется, чтобы и в коде было как-то "Пользователь.Наименование" вместо "Пользователь.name". И тогда возвращаемся к необходимости программной (де)сериализации.
|
|||
35
Kassern
27.04.21
✎
13:30
|
(34) Твой API - твои правила) Можешь структуру xdto по русски запилить. Теги русские писать тоже никто не запрещает)
|
|||
36
polosov
27.04.21
✎
13:31
|
(27) Слишком много думаешь. Работай!
|
|||
37
Вафель
27.04.21
✎
13:35
|
можешь сам накидать свой жсон с правилами сериализации.
сами правила хранить в макетах. тогда нужно только парсер написать. хотя стойте - это же и есть xdto |
|||
38
Asmody
27.04.21
✎
13:39
|
(35) АПИ не мой, ̶я̶ ̶т̶о̶л̶ь̶к̶о̶ ̶р̶а̶з̶м̶е̶с̶т̶и̶л̶ ̶о̶б̶ъ̶я̶в̶у̶ , я на него повлиять не могу. Моя только обёртка внутри 1С
|
|||
39
fisher
27.04.21
✎
13:42
|
(34) Ну пиши User.name. Зато "инородные" объекты сразу видно будет. Если тебя это настолько напрягает, что ты готов написать прокладку - пиши прокладку, программист буриданов. Можешь сделать два разноязычных комплекта XDTO. И прозрачное преобразование туда-обратно по словарю.
|
|||
40
Garykom
гуру
27.04.21
✎
13:45
|
ВК и все унутри
|
|||
41
Вафель
27.04.21
✎
14:00
|
(40) изменится апи и вк нужно будет пересобирать
|
|||
42
Garykom
гуру
27.04.21
✎
14:02
|
(41) Так и код переписывать на 1С
Зато написание кода ВК удобное можно и пересборку автоматизировать по одной кнопке |
|||
43
Garykom
гуру
27.04.21
✎
14:03
|
(42)+ А это идея
И даже вполне монетизируемая |
|||
44
Вафель
27.04.21
✎
14:08
|
(42) ем удобнее? есть какие то готовые библиотеки для трансформации жсон?
|
|||
45
arsik
гуру
27.04.21
✎
14:10
|
Я за XDTO, в СериализаторXDTO все есть.
|
|||
46
Cyberhawk
27.04.21
✎
14:15
|
Почему без метаданных?
|
|||
47
Garykom
гуру
27.04.21
✎
14:16
|
(44) дофига
|
|||
48
Garykom
гуру
27.04.21
✎
14:18
|
||||
49
arsik
гуру
27.04.21
✎
14:23
|
(44) В 1С JSON можно через СериализаторXDTO прогнать.
|
|||
50
PLUT
28.04.21
✎
11:40
|
+(33) на примере одного метода какого-то API (для удобства добавлен справочник какоетоAPI предопределенных методов API) выглядел вызов метода с использованием XDTO для получения тела запроса в жЫсон (json):
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |