565 lines
38 KiB
Plaintext
565 lines
38 KiB
Plaintext
# Беседа: 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, вот так.
|