# Беседа: beseda-20260911-1038.txt # файлов: 6; начало: 2026-09-11 10:38; конец: ~2026-09-11 11:08 ## 2026-09-11/rec_20260911_103848.m4a (старт 10:38:48) [00:00:00] Но выбор структуры – это достаточно простая штука. [00:00:05] Для этого внутри базы не должно быть несколько хранилищ, [00:00:12] одно и то же структуры. [00:00:15] В принципе, если мы берем скривилайт, то оно так и напрашивается. [00:00:18] То есть, если мы туда добавили таблицы про кульство, [00:00:26] то они будут единственным экземплярием. [00:00:28] Там не будет набора таблиц в прокус, в одном неймспейсе и в другом неймспейсе. [00:00:34] Слоя базы. [00:00:37] И поэтому сам репозиторик своей реализацией [00:00:42] собственно и отражает выбор структуры в рамках базы данных. [00:00:48] Понятно, да? [00:00:51] Ну, еще раз напомню, откуда взялись родительские ID. [00:00:56] Смотри, в чем прикол. [00:00:58] В XML-документах, когда мы с ними работаем, [00:01:03] мы иногда используем следующий прием. [00:01:06] То есть, мы определяем какую-то XML-структуру универсальную [00:01:13] и засовываем ее, где ее в разные объекты, [00:01:18] то есть в разные места XML большого. [00:01:21] Ну, например, мы определяем связи с требованиями в инструкциях. [00:01:26] И вот этот блок в связи мы с уем отдельно в объекты. [00:01:31] Risk Object, допустим, Work Item, это Roar, [00:01:37] отдельно в Hazard Source, отдельно в Hazard Item, [00:01:42] отдельно в Action Item, в мировоуправлении. [00:01:48] То есть, одна и та же структура залетает в разные точки XML. [00:01:53] И поэтому, чтобы нам на нее настроиться, [00:01:56] нам нужно сначала передать родительские ID. [00:01:59] И тогда в рамках него мы уже работаем с ID, [00:02:03] так сказать, экземплярным. [00:02:06] Ладно, короче, еще раз. [00:02:09] То есть, поэтому мы не занимаемся выбором места структуры [00:02:13] в рамках базы данных. [00:02:15] То есть, считаем, что сама реализация репозитория [00:02:19] она за это отвечает. [00:02:21] То есть, у нас один репозиторий умеет работать с курсами, [00:02:27] если ему дается connection на базу данных, [00:02:31] то он однозначно может работать с курсами. [00:02:34] И все, что ему нужно дальше, это датченик объект, три параметра. [00:02:42] Вот, теперь посмотрим, как в риспрофе сделаны эти параметры. [00:02:46] Они сделаны очень просто. [00:02:48] Обратите внимание, что любой запрос на любую сущность [00:02:53] сопровождается вершиной ID. [00:02:56] То есть, это выбор документа, [00:03:02] выбор корневой сущности, [00:03:04] которая в нашем случае в риспрофе объединена с базой данных. [00:03:10] То есть, один проект, один файл. [00:03:14] Поэтому мы все запросы сопровождаем вершиной ID. [00:03:18] И при этом мы не сопровождаем их где-то на уровне connection string. [00:03:25] Мы сопровождаем их просто на уровне фильтров. [00:03:29] Вот. [00:03:34] Поэтому, вот, давай теперь обсуждаем, как все это дело разложить. [00:03:38] Вот, вернемся к organization. [00:03:40] Давай посмотрим два про две простых сущности. [00:03:43] Organization и курса. [00:03:46] То есть, organization может быть много. [00:03:49] В рамках одного organization может быть много курсов. [00:03:52] Вот мы можем это хранить все по отдельным файликам. [00:03:57] Все organization вместе. [00:04:00] Дальше, например, все курсы в рамках отдельного organization вместе. [00:04:06] Потом все курсы вообще вместе. [00:04:11] То есть, все organization вместе и все курсы разных organization вместе. [00:04:15] Это самый плохой вариант. [00:04:16] Но, тем не менее, технически он возможно. [00:04:19] Вот. [00:04:20] Он идет в разрез со стратегией разделяя backup по organization. [00:04:28] Но, тем не менее, вот. [00:04:29] И вообще все вместе organization и ее курсы вместе. [00:04:33] А, давайте на реченистые рассмотрим. [00:04:35] Organization отдельно, все курсы отдельно. [00:04:39] Organization отдельно. [00:04:41] Курсы по organization, по конкретному organization, [00:04:45] внутри файла с самой организацией. [00:04:49] Это второй вариант. [00:04:50] И третий вариант. [00:04:52] Все organization и все курсы в одном файле. [00:04:58] Это надо зафиксировать. ## 2026-09-11/rec_20260911_104348.m4a (старт 10:43:48) [00:00:00] Во всех трёх вариантов мы не смешиваем, если у нас в верхнего уровня объекта не смешаны, то мы ниже уровня объекта не смешиваем. [00:00:09] Ну вот, теперь вопрос, как выглядят должны параметры у репозитория? [00:00:15] Ну, у репозитория, правильно говоришь, например, мы можем чётко говорить. [00:00:21] И, наверное, ещё важный вопрос, знаешь, какой здесь относительно параметров всё-таки? [00:00:26] Насколько инфинансация объедков под каждый запрос в базуданных на Дарте? [00:00:31] Это затратный ресурс. [00:00:38] То есть, в целом, мне, как бы, сколько уже лет, [00:00:42] больше десяти лет звучат слова коляна стакана [00:00:48] про разработку мобильных приложений. [00:00:52] В нашем случае, вецкое приложение можно считать в браузере мобильным, [00:00:56] что ресурсы надо использовать максимально экономно. [00:01:01] Поэтому, если можно работать с ингелтонами, надо работать с ингелтонами. [00:01:06] Ну вот, если современные браузеры, например, позволяют память расходовать чуть более расточительно, [00:01:15] то почему бы и нет. [00:01:17] То есть, смотри, в чём прикол, мы доменные объекты создаём на каждый запрос, правильно? [00:01:25] Да. [00:01:26] Вот мы делаем выборку. [00:01:29] В списке 100-100 объектов. [00:01:34] Ну, я не знаю там курса, да, или там слайдов по курсу. [00:01:39] И к нам прилетает большое количество слайдов. [00:01:45] Ну, допустим, 100 слайдов. [00:01:48] И мы создаём 100 объектов. [00:01:50] Какой там вход написан по этим объектам? [00:01:54] Дело десятая, да? [00:01:56] Хотя тут, наверное, вопрос интересный. [00:01:58] В этот аклад уже закапываться. [00:02:00] В имплементацию, скажем так. [00:02:03] Вот. [00:02:05] Потом, ну, и мы считаем, что мы создаём 100 объектов, как минимум. [00:02:12] Для слайдов. [00:02:14] А теперь вопрос. [00:02:16] А... [00:02:18] Ну, а теперь вопрос. [00:02:22] А почему мы тогда боисты создать один репозиторий? [00:02:36] Не знаю. [00:02:38] Вот. [00:02:40] Наверное, не надо этого бояться, потому что я более чем уверен, [00:02:45] что если все шарпи есть борьба за производительность, [00:02:49] поэтому там есть структуры для того, чтобы это всё упаковывать, [00:02:53] чтобы не упаковывать, не распаковывать, что влияет на скорость работы, [00:02:57] то вот в языках, которые работают три браузера, [00:03:02] там по-любому всё... [00:03:04] Либо упаковывается всегда, либо не упаковывается никогда. [00:03:09] Я не думаю, что там есть. [00:03:11] Что там прямо так тяжело, так подошли к этому вопросу, [00:03:14] что там будет борьба за производительность. [00:03:16] Да-да-да, при этом обратим внимание. [00:03:19] В репозитории там полей данных, как таковых, [00:03:22] ну, практически нет. [00:03:25] То есть мы там храним... [00:03:27] Мы туда передаём по ссылке, либо, говоря, коннекшу. [00:03:32] Понимаешь, да? [00:03:34] Да. [00:03:36] И поэтому... Ну, а если мы делаем так, то что нам это позволяет сделать? [00:03:41] Это нам позволяет сделать немножко разгрузить интерфейс метода. [00:03:46] То есть мы можем получить репозиторий. [00:03:49] Готовый уже установленный внутри? [00:03:52] Готовый, да, с установленными параметрами, [00:03:54] с теми перед фабрикой репозиторий. [00:03:57] Ну, всё. [00:03:59] То есть здесь вот как бы... [00:04:01] Тогда я просто того, чтобы искать распредельных, [00:04:04] как делать интерфейс красивый. [00:04:07] Вот. [00:04:16] Ну вот, если мы говорим с тобой о связке, [00:04:19] допустим, давай возьмём приземляну. [00:04:21] Вот у нас связка организации, курс. [00:04:23] То есть когда мы запрашиваем курс, [00:04:26] по идее, по идее, [00:04:29] мы всегда должны передать айдичнику организации. [00:04:32] То есть это обязательный параметр. [00:04:35] То есть, конечно, можно там... [00:04:37] Не встал. [00:04:38] Не встал. [00:04:39] Вот смотри, Жень, подожди. [00:04:41] Давай мы здесь посмотрим по-другому. [00:04:43] Смотри, если мы храним что-то отдельным документом, [00:04:48] то есть имеем возможность найти отдельный документ в отдельной базе. [00:04:54] То есть я думаю, надо внести, наверное, [00:04:56] в следующие понятия всё-таки. [00:04:58] База данных... ## 2026-09-11/rec_20260911_104849.m4a (старт 10:48:49) [00:00:00] экземпляр документов, 1, 2, 3, вот и в рантах этого [00:00:06] кружать, то есть, документ эта структура, какая-то та или иная, [00:00:10] экземпляр документов, это понятно дело, экземпляр [00:00:14] данных по этой структури, сами данные, да, и, как бы, [00:00:21] ну и базы данных это в плане, значит, вот смотри, если [00:00:25] мы рассматриваем это все по отдельности, то мы приходим [00:00:29] с собой следующего понятия, а, например, база знаний, [00:00:36] она может использоваться в нескольких организациях, [00:00:41] может, ну это масса решения какой-то, правильно? [00:00:46] Как минимум база знаний, которая лежит в интернете, [00:00:51] используется множеством организаций. [00:00:53] Нет, база знаний в интернете это другое, да, то есть, [00:00:57] короче, акмикс, ну вот в технических, может, использоваться [00:01:02] в Ветху, сейчас мы пока не говорим про логику, да, что [00:01:05] по логике, ну а почему? [00:01:07] Нет, ничего, поэтому прикол того, что просто я общил [00:01:10] кому-то, нам не нужно рассматривать, возможно, возможно, да, [00:01:15] нам стоит чуть-чуть поменять свой взгляд от модели [00:01:20] иерарстической на модель сетевую, то есть, что такое [00:01:25] актическая модель, организация живут в Бэйде, [00:01:29] курсы живут в организациях, база знаний живут в организации [00:01:33] и все остальное живет тоже в организациях, [00:01:36] то есть, получается, такая иерарсия объектов, [00:01:39] а если мы говорим, что организация курсы или базы знаний, [00:01:42] они к многим и ко многим, то, соответственно, у тебя [00:01:46] вот эта вся байда разваливается, а она, когда разваливается, [00:01:50] то что получается? [00:01:52] Какой же главный вывод? Какой? [00:01:54] А первый главный вывод такой, что ты не можешь, [00:01:58] как бы, у тебя больше нет возможности иметь [00:02:01] иерархические, локальные инвесторы объектов. [00:02:05] Нет, ты можешь логически иметь, но физически [00:02:10] ты должен к ним доступы иметь в каким-то другом способе. [00:02:13] Нет, ну я что имею в виду, что у тебя организация [00:02:16] хранит ссылки на клинцах, да, как бы, [00:02:19] а база хранит ссылки на организации, [00:02:21] а когда тебе надо получить? [00:02:23] И поэтому, пока ты ковыряешься в рамках организации, [00:02:26] то есть, вместе работаешь с базы данных организаций, [00:02:29] конкретной, и имеешь несколько пульсов, [00:02:32] о которых там нет. [00:02:34] А теперь вопрос, а как к этому физку курсов [00:02:37] получить доступ к другой организации? [00:02:40] А если у тебя сто организаций, встигло? [00:02:44] Да, и у тебя возникает еще база данных [00:02:50] или как сущность, которая себе хранит ссылки? [00:02:54] То есть, в массе должны быть ссылки? [00:02:57] Да, то есть, мы приходим к необходимости [00:03:00] глобального ревестра всех керневых сущностей [00:03:06] и соответствующим однажды баз данных, [00:03:09] которых они хранят. [00:03:12] То есть, вот что, да, если мы меняем, [00:03:14] взгляд, фейерархии и носить, [00:03:16] то мы должны отказаться от локальных этих штук, [00:03:20] то есть, изредие два, [00:03:21] и перейти к глобальному некоторому ревестру. [00:03:24] Но в нашем случае, все, конечно, [00:03:26] все равно выпираются в глобальное рута-бригид, [00:03:28] да, то есть, в глобальной керневой сущности. [00:03:32] Это база. [00:03:34] Вот какие выводы. [00:03:38] А теперь, фишка какая, [00:03:41] что если мы делаем универсальную инфраструктуру, [00:03:45] то мы с тобой должны на уровне база [00:03:50] управлять базами данных, акслайлами. [00:03:57] Мы должны управлять документами, [00:04:00] как структурами. [00:04:03] Ну, по сути, это типизация. [00:04:06] Мы должны управлять также, да, экземплярами, [00:04:09] ну, то есть ссылками на экземплярами. [00:04:14] Вот. [00:04:15] И баз данных тоже должны быть типы. [00:04:17] То есть, получается, [00:04:18] если бы мы это представляли в видеобъектной модели, [00:04:21] то мы бы это представили так. [00:04:23] Есть база данных, база данных есть тип. [00:04:27] Да? [00:04:28] То есть, два параметра, да, [00:04:29] по сути, тип и экземпляр. [00:04:31] То есть, ты создаешь экземпляр база данных. [00:04:34] Да, наверное, нет, даже, кстати, [00:04:36] тебе надо... [00:04:38] Смотри, на верхнем уровне [00:04:40] мы же будем создавать база данных, правильно? [00:04:43] База данных должны создаваться из шаблона. [00:04:48] Так? [00:04:49] Шаблон. [00:04:50] Вот. [00:04:51] А возможно, возможно, это не так должно быть. [00:04:54] Возможно, должны быть типы база данных, [00:04:56] а потом должны быть шаблоны какие-то. [00:04:59] Шаблоны чего? ## 2026-09-11/rec_20260911_105350.m4a (старт 10:53:50) [00:00:00] Документы [00:00:02] И мы говорим, да то есть [00:00:04] В принципе у шаблона [00:00:06] должна быть какая-то типизация [00:00:08] по типу базы данных [00:00:10] Если у тебя шаблон например [00:00:12] XML, то это одна фигня [00:00:14] А если это шаблон [00:00:16] SQL, то это другая фигня [00:00:18] И дальше ты говоришь [00:00:20] Создай-ка мне экземпляра [00:00:22] с L3 базы [00:00:24] Вот [00:00:26] Создай-ка мне [00:00:28] экземпляра с L3 базы [00:00:30] И накатим на него [00:00:32] вот этот вот шаблон [00:00:34] То есть, что такое шаблон? [00:00:36] Это [00:00:38] инициализирующие SQL-скрипты [00:00:40] И говоришь [00:00:42] Ну, это если мы идем [00:00:44] к сторону того, что мы можем [00:00:46] гибко [00:00:48] гибко комбинировать [00:00:54] в рамках [00:00:56] файлок [00:00:58] разной сущности [00:01:00] На самом деле [00:01:02] вот эта гибкая комбинация [00:01:04] она зачем нужна? [00:01:06] Она нужна для того, чтобы [00:01:08] в будущем [00:01:10] иметь возможность [00:01:12] подстроиться под ситуацию [00:01:14] То есть, не принимать решения сейчас [00:01:16] В принципе, мы можем сразу принять [00:01:18] все решения и эту гибкость не иметь [00:01:20] И иметь более жесткое решение [00:01:22] означает более эффективное [00:01:24] Я так скажу [00:01:26] Какая-то гибкость должна быть заложена [00:01:28] Ну, если она не мешает [00:01:30] Вот смотри, в чем приход [00:01:32] Если мы говорим про [00:01:34] накатывание [00:01:36] шаблона документа на базу [00:01:38] то есть, закладываем максимальную гибкость [00:01:40] То есть, должна быть процедура [00:01:42] накатывания [00:01:44] и так далее [00:01:46] А если мы говорим про [00:01:48] то, что у нас [00:01:50] базы жестко разделены [00:01:52] мы можем иметь уже сразу [00:01:54] прототип [00:01:56] То есть, объект, который [00:01:58] создает подтопие [00:02:00] экземплярах [00:02:02] В вашем случае, это уже готовый сейт-при-файл [00:02:04] который мы просто копируем [00:02:06] и в машине не работаем [00:02:08] Понимаете, да? [00:02:10] Можно вот так, можно вот так [00:02:12] Ну, в общем, мне кажется, через шаблон двигаться [00:02:14] Ну, в смысле, через готовый [00:02:16] экземпляр базы данных [00:02:18] Ну, просто копируем [00:02:20] У тебя процедура копирования [00:02:22] соответственно к файлу [00:02:24] которая более надежная [00:02:26] всем процедура накатывания [00:02:28] шпилькор [00:02:30] Базара-то нет [00:02:32] Поэтому еще раз [00:02:34] Я сейчас про то, что вот смотри [00:02:36] То есть, нам надо разработать [00:02:38] или базы Беннис [00:02:40] структуру, которая бы [00:02:42] описывала вот эти все штуки [00:02:44] А для этого, нам надо, наверное, [00:02:46] для нашего вот этого [00:02:48] менеджера [00:02:50] коннекторских менеджер [00:02:52] как разформулировать, какой [00:02:54] его должен быть интерфейс [00:02:56] То есть, какие манипуляции [00:02:58] он должен поддерживать [00:03:00] И второй, нам надо [00:03:02] Просто нам нужно [00:03:04] без этих самых [00:03:06] без простыней [00:03:08] Вот и, да? [00:03:10] Нам нужно вот руками [00:03:12] сформулировать [00:03:34] Так, вот [00:03:36] Я говорю, что нам нужно [00:03:38] без простыней просто [00:03:40] и, значит, менеджер [00:03:42] не на экземпляре-репизиториях [00:03:44] какого-нибудь забористого-то [00:03:46] А вот [00:03:48] Пусть это будет Workplace [00:03:50] Какой-нибудь репизиторий [00:03:52] Вот [00:03:56] И тогда мы поймем, да? [00:03:58] То есть, какие операции должен выполнять [00:04:00] А, значит, [00:04:02] Database-менеджер [00:04:04] То есть, у него должны быть манипуляции с базами [00:04:06] там инстанцирования [00:04:08] репизитория, наверное, да? [00:04:12] Это сам, хотя, может быть, репизиторий [00:04:14] Может быть, это будет [00:04:16] отдельный класс [00:04:18] То есть, там я бы просто [00:04:20] занялся бы именно вот вопросами [00:04:22] То есть, мы нужно две вещи [00:04:24] Нужно иметь диаграмму классов [00:04:26] То есть, структуру [00:04:28] Как она будет выглядеть [00:04:30] И нужно иметь [00:04:32] именно диаграмму классов [00:04:34] вот таких вот [00:04:36] оперативных, то есть, инфраструктурных [00:04:38] классов [00:04:40] И надо все-таки оттолкнуться [00:04:42] диаграммы оперативные [00:04:44] Что мы хотим делать [00:04:46] Да, то есть, можно даже взять [00:04:48] какую-то сущность накинать [00:04:50] за одну, ну, примеру [00:04:52] маленький, простенький [00:04:54] И тогда мы с тобой получим [00:04:56] полную картину [00:04:58] А как это должно быть? ## 2026-09-11/rec_20260911_105851.m4a (старт 10:58:51) [00:00:00] демонстрационная, прикладная модель, т.е. документ, т.е. структура документа [00:00:06] то есть, наверное, даже нужно две структура документа [00:00:09] какие-то простенькие [00:00:11] вот [00:00:12] ну, чтобы мы могли вот это вот все понять, как мы будем другом [00:00:17] будем женить, т.е. нам нужны структуры хранения методанных [00:00:21] про база данных [00:00:23] и нам нужны, соответственно, [00:00:25] получается, [00:00:26] два [00:00:29] вот и нам нужны два уровня классов [00:00:32] императивных, т.е. [00:00:34] это, соответственно, [00:00:38] инфраструктурованные классы [00:00:40] и [00:00:42] и классы [00:00:45] репрезидориях, т.е. у нас четыре [00:00:48] с тобой этих момента [00:00:51] ну, т.е. у нас две модели, [00:00:53] т.е. не эта модель [00:00:55] прикладная [00:00:57] и два набора классов [00:01:00] один набор классов, т.е. это репрезидорий [00:01:02] а второй это [00:01:04] т.е. коннекшн-менеджер [00:01:07] ну, там, может быть, и не один класс советского [00:01:09] я просто так называю [00:01:11] с обобщением [00:01:26] да, да [00:01:28] ты начинаешь просто их отдельно [00:01:30] то есть, в принципе, их можно накидать либо в парате [00:01:33] либо накидать их прямо там [00:01:35] ну, на дарте, наверное, нам их смысла [00:01:37] нет накидывать, лучше накидать их [00:01:39] либо на сейшарте, либо просто в планте [00:01:41] с дневництым кругом [00:01:49] два, ну, я вот с подструктором [00:01:51] подозреваю все, что это может быть [00:01:53] один или несколько классов [00:01:55] два, инфраструктурных классов, опять-таки [00:01:57] я подозреваю, что это может быть [00:01:59] один или несколько классов [00:02:01] можно просто сесть и на сейшарте [00:02:03] наводить, т.е. тоже вариант нормальный [00:02:05] т.е. он, может быть, даже для нас [00:02:09] с тобой лерьте понимаем [00:02:11] мозгами [00:02:13] вот, и тогда мы с тобой придем к чему [00:02:15] мы придем к тому, что у нас [00:02:17] все так вот [00:02:19] на запад вступить, т.е. какая должна быть [00:02:21] на выходе история [00:02:23] т.е. мы говорим [00:02:25] а дайка нам репозитолии [00:02:27] вот [00:02:29] такой-то [00:02:31] снаружи мы говорим [00:02:33] и даем, наверное, корневую сущность [00:02:35] какую-то [00:02:37] по методанам для корневой сущности [00:02:39] она осуществляется в поиск [00:02:42] где она лежит [00:02:44] и репозитолию [00:02:46] дается все нужные параметры [00:02:48] т.е. репозитольник корневой сущности [00:02:50] он тоже может [00:02:52] передаваться в кондексами в этом случае [00:02:54] понимаешь, да? [00:02:59] вот [00:03:04] т.е. он просто должен быть [00:03:06] не расписан по этим самым [00:03:08] а как-то [00:03:10] унифицирован [00:03:12] именно поля [00:03:14] репозитолия начинает работать [00:03:16] внутренним содержимом [00:03:18] у тебя [00:03:20] репозитолия должен уметь работать [00:03:22] в парантоидии [00:03:24] и энтити-идии [00:03:26] это из него уровня [00:03:28] т.е. парантоидии [00:03:30] и энтити-идии [00:03:32] эти самые нижние [00:03:36] парантоидии [00:03:38] соответственно, руд [00:03:40] агрегеет [00:03:42] дозмен [00:03:44] может работать [00:03:46] коннекшн-менеджер [00:03:48] и он должен [00:03:50] знать [00:03:52] какого [00:03:54] типа документа [00:03:56] в принципе тоже уровень репозитоля [00:03:58] доктай [00:04:00] просто его сама реализация [00:04:02] она [00:04:04] т.е. тип документа [00:04:06] он харкодится [00:04:08] внутри репозитоля [00:04:10] работать с ним [00:04:12] как-то пошивается [00:04:14] прошивка [00:04:16] а вот руд агрегеет [00:04:18] и деби [00:04:20] пас [00:04:22] да [00:04:24] вот эта штука [00:04:26] она лежит соответственно [00:04:28] ну, наверное, может быть даже не деби [00:04:30] пас, а я бы наверно все-таки [00:04:32] рассматривал деби-идии [00:04:34] то, что по деби-идии [00:04:36] т.е. это вот у нас [00:04:38] некий [00:04:40] уровень [00:04:42] не коннекшн-менеджера [00:04:44] а как мы это назовем [00:04:46] руд агрегеет менеджера [00:04:48] пока так я назову его [00:04:50] и где-то должен быть [00:04:52] деби-менеджер [00:04:54] а он оперирует [00:04:56] деби-идии [00:04:58] и деби-идии ## 2026-09-11/rec_20260911_110351.m4a (старт 11:03:51) [00:00:00] То есть, я в общем виде это так называю вот так, но потому что у тебя может быть разность [00:00:07] connection не только в виде пути, а вот это у нас репозитория. Вот получилось 3 уровня, как бы, как [00:00:16] мы работаем. Соответственно, с точки зрения прикладного кода, у нас должен быть root [00:00:22] aggregate ID и мы обращаемся к кому-то, например, в какой-нибудь репозитории factory, [00:00:29] мы обращаемся и говорим, а вот для вот этого root aggregate ID, дай коннексон. [00:00:45] А root aggregate ID это что? Организейшн ID, пожалуйста. Организейшн ID. [00:00:56] Ну, привет. Ну, давайте скажу, например, смотри, root aggregate ID это [00:01:03] соответственно организейшн, парант ID это, например, рабочее место и entity ID, например, [00:01:17] ID из грязи рабочего места и кульса, например. [00:01:23] То есть, root aggregate ID это, фактически, точка определения. Это документ. Вы [00:01:31] можем назвать это, это ID экземпляра документа. Смотри, следующий вопрос. Он же [00:01:45] требует собой сопровождение типа или тип будет определяться уже в табли в базе [00:01:52] данных бейс. Ну вот он в root aggregate manager. Ну, давай я уберу, вот вообще, [00:01:58] терминологию про root aggregate и я заменю ее на документ manager. Документ manager. [00:02:05] Соответственно, у него документ ID, да? То есть, грубо говоря, получать следующее. [00:02:11] То есть, учитывая то, что, то есть, мы опираемся на то, что у нас ID-шники всех [00:02:19] документов, независимости от их структуры, они уникальны. То есть, соответственно, когда мы [00:02:25] обращаемся в документ manager и говорим, дай мне документом, как db connection или там. [00:02:34] Ещё, мы с точки зрения прикладного кода обращаемся в root в репозитории factory. [00:02:41] Вот, вы куда обращаете? A root factory обращается в документ manager с одной стороны, [00:02:52] а потом оно обращается в, соответственно, db manager, а потом оно обращается, соответственно, [00:03:01] всё, и оно возвращает репозиторию к себе. А дальше прикладной код обращается, [00:03:12] дай я тебя сейчас в цифре первым подпишу и картинку пришлю, я тут уже рисовал на [00:03:15] доске. А между, между получается документ manager и db manager, что документ manager отдаёт [00:03:24] db manager, чтобы получить connection. То есть, я понимаю, он определил тип объекта, но... [00:03:30] Ну, давай я напишу параметры, вот смотри, значит, когда мы обращаемся в root factory, [00:03:36] мы передаем параметр документа ID. Когда root factory обращает, значит, [00:03:48] репозиторию factory обращается в db manager, она передаёт документ ID, потом она обращается, [00:03:55] соответственно, в db manager она передаёт db ID, да, а потом, когда она обращается уже, [00:04:03] соответственно, сейчас я тебя тут прям в красоту рисую, вот, уже когда мы обращаемся потом к [00:04:27] репозитории, мы передаём, соответственно, этот самый, ну, по сути, мы передаем connection и [00:04:38] параметры ID, и эти эти, ну, параметры. Вот, вопрос возникает, передаём ли мы потом ещё репозиторию [00:04:50] дополнительно документ ID? Ну, почему нет? Он просто должен быть созданным в connection. [00:04:56] Репозитория factory, вот так.