powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Слияние классов в одну глобаль
25 сообщений из 58, страница 2 из 3
Слияние классов в одну глобаль
    #38335846
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sigmovПонимаем. Правда насчет 1000 не уверен, по умолчанию 10к вроде.

http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=RCPF_LockThreshold
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38335854
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov,Собственно сюда написал только в качестве поддержки ТС, которого, как мне показалось, попытались отговорить от вполне разумного и эффективного шага.

Что этот шаг стал разумным и эффективным, ТС нужно постараться разобраться как это работает. Что дает, и что отнимает.

А не бездумно наследовать, и радоваться сквозным SQL запросам
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38335919
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ptn Что дает, и что отнимает.
Нет. Ну я понимаю, почему я не готов пояснить, что и как дает. А вот почему вы не готовы пояснить, что отнимает?

За исключением тех 4-х смешных пунктов (которые я безответно оспорил), пока ничего выжать не смогли.

Даже с демагогично-максималистской поддержкой Оленина.

PtnА не бездумно наследовать, и радоваться сквозным SQL запросам
Гыгыгы ;)

Я лично работаю от модели предметной области. И в ней все документы, к примеру, раз уж зашло, имеют одного(!) родителя. Так вышло. И глупо это не учитывать.

В этом смысле Ваше " уже не храним" выглядит как "да вы его не бойтесь - оскопили его прошлою весною".

Только сейчас обратил внимание - ТС из Владивостока. ТС! Наймите, сделаю-расскажу-настрою. Летать будет аки "Протон" ;)
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336119
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovЯ лично работаю от модели предметной области. И в ней все документы, к примеру, раз уж зашло, имеют одного(!) родителя
По документам считаете что-нибудь? Есть ли у документов строки (товарные, например)?
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336197
Alexey Maslov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg OleninНаследование - зло.Забавно слышать такое от консультанта по объектно-ориентированной СУБД... Олег, если захотите аргументировать эту "лемму", думаю, многим будет интересно.
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336207
Блок А.Н.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я хоть и не Олег.
Наследование - это усложнение, появление новых взаимозависимостей.
При одинаковой трудоемкости и функциональности решение без наследования будет чище и проще.
Соотвественно, наследование это зло. И для его применения нужны обоснования.
В первую очередь это относится к людям, которых хлебом не корми - дай чего-нибудь понаследовать. Объектно-ориентированная среда же, как без наследования то?

Это как сказать, что автомобиль - зло. Требует времени, денег, опасен. И для его приобретения нужно веские основания.
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336251
Oleg Olenin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда так:

Disclaimer. Все записи сделанные мной в этом форуме являются моим частным мнением и никак не связаны с моими работодателями (бывшими, текущими и будущими).

Ok ))). Начнем с того, что Cache - не объектно-ориентированная СУБД в моем представлении. Это и не важно в общем, как ее назвать.
Просто в этой ветке идет сплошная подмена - сначала люди начинают зарубаться не по тому вопросу, по которому спрашивали. Сейчас отчего то считают, что объектная ориентированность = наследование. И дальше идет подмена смысла - если в названии есть объектно-ориентированная, значит наследование это гуд. Ответьте человеку на его вопрос, диалектики материализма! ))))
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336252
Oleg Olenin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesov,

По-моему и не демагогическая и не максималистическая - ответьте лучше автору threadа на вопрос ))))
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336254
D_De1mos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В тему наследования:

Раз применил (больше пока потребности не возникало) следующую схему
Постановка задачи: Хранение в системе бизнес-документов одного типа, но с разными доп полями в зависимости от вида, которых изначально было порядка 7-8.
Варианты:
1. Делать отдельные таблицы для каждого - не вариант, т.к. пользователю их надо было показывать разом в виде списка.
2. Отнаследовать их друг от друга - вариант, но тогда таблица будет разрастаться дополнительными полями, что соответственно скажется на скорости + вариант не очень подходил, т.к. вид документа мог поменяться после создания самого документа
Решил сделать третий вариант:
1. Выделил поля, которые будут показаны пользователю при выводе списка документов (т.е. поля общие для всех видов), из них сделал хранимый общий класс
2. Сделал хранимый базовый класс для расширений, и ссылку из него на общий класс
3. Сделал иерархию наследования для всех видов документов с их доп полями.

В итоге получилось:
При запросе списка документов - используется легкая версия глобала данных
При запросе отдельного документа - подцепляются все нужные доп поля

Через пару недель коллеге потребовалось реализовать очень похожую задачу, в которой бизнес-документы были практически идентичными, но все же отдельными:
1. Добавили один признак в общий класс, разделяющий старые и новые документы
2. Добавили в иерархию наследования соответствующие расширения

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

По теме слияния
Ради понтов это делать не стоит, т.к. в дальнейшем могут появиться новые проблемы, например, в наследовании хранимых классов при существующей базе не так тривиально перенести поле в базовый/дочерний класс или поддержка уникальности индексов.
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336380
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D_De1mosРешил сделать третий вариант:
1. Выделил поля, которые будут показаны пользователю при выводе списка документов (т.е. поля общие для всех видов), из них сделал хранимый общий класс
2. Сделал хранимый базовый класс для расширений, и ссылку из него на общий класс
3. Сделал иерархию наследования для всех видов документов с их доп полями.
Пока смысла в пп. 1 и 3 не наблюдается. Почему не один тип сущности?
D_De1mosВ итоге получилось:
При запросе списка документов - используется легкая версия глобала данных
При запросе отдельного документа - подцепляются все нужные доп поля
То есть, смысл - получить "легкую версию глобала"? Вы эксперименты какие-то проводили?
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336804
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintПо документам считаете что-нибудь? Есть ли у документов строки (товарные, например)?
Атож!!!
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336818
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОленинНаследование - зло.
БлокЯ хоть и не Олег. Наследование - это усложнение.
Ага, однополые браки и усыновление детей пи..рами. Это-ж нормально. И просто. Зачем тратить калории на наследников) Наследование устарело - чего уж там...
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336823
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg OleninOk ))). Начнем с того, что Cache - не объектно-ориентированная СУБД в моем представлении. Это и не важно в общем, как ее назвать.
Просто в этой ветке идет сплошная подмена - сначала люди начинают зарубаться не по тому вопросу, по которому спрашивали. Сейчас отчего то считают, что объектная ориентированность = наследование. И дальше идет подмена смысла - если в названии есть объектно-ориентированная, значит наследование это гуд. Ответьте человеку на его вопрос, диалектики материализма! ))))
Папа, это ты с кем сейчас разговаривал???
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38336833
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блок А.Н.Я хоть и не Олег. ... Это как сказать, что автомобиль - зло. Требует времени, денег, опасен. И для его приобретения нужно веские основания.
Приятно ощущать себя истинным драйвером в компании кучеров. Шутка ;)
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38337441
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PtnВ каше, напоминаю, при работе со встроенным SQL, по умолчанию индивидуально блокируются только первые 1000 записей, потом лочиться вся таблица. А блокировка не снимается пока не закрывается до конца последней транзакции.kolesovЛетать будет аки "Протон" ;) Продолжим, опять три класса и две базы. Наследование чуть упростил: a <-aa и a <-aa2. Заполняю 100 тысячами только наследники: aa и aa2. Метод %PopulateUtils.Name() сделал хранимой процедурой.
Базовый одинаковый для двух баз:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Class test.a Extends (%Persistent, %Populate) {

Property Name As %String;

ClassMethod TestUpdate() {
    JOB ..Update("test.aa") JOB ..Update("test.aa2")
}

ClassMethod Update(table As %String = "test.aa") {
 s sql="Update "_table_" Set Name=%Library.PopulateUtils_Name()"
 s start=$zh
 s rs=##class(%SQL.Statement).%ExecDirect(.stm,sql)
 s ^mtemp(table)=$zh-start_";"_rs.%SQLCODE
 w rs.%SQLCODE
}

} 


На базе с раздельным хранением
Код: vbnet
1.
2.
3.
4.
d ##class(test.a).TestUpdate()
zw ^mtemp
^mtemp("test.aa")="4.767655;0"
^mtemp("test.aa2")="4.773939;0"


На базе с общим хранением
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
d ##class(test.a).TestUpdate()
zw ^mtemp
^mtemp("test.aa")="10.237431;-110"
^mtemp("test.aa2")="10.189507;-110"

w $system.SQL.SQLCODE(-110)
Конфликт блокировок при обращении к файлам
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38337517
Oleg Olenin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolesovOleg OleninOk ))). Начнем с того, что Cache - не объектно-ориентированная СУБД в моем представлении. Это и не важно в общем, как ее назвать.
Просто в этой ветке идет сплошная подмена - сначала люди начинают зарубаться не по тому вопросу, по которому спрашивали. Сейчас отчего то считают, что объектная ориентированность = наследование. И дальше идет подмена смысла - если в названии есть объектно-ориентированная, значит наследование это гуд. Ответьте человеку на его вопрос, диалектики материализма! ))))
Папа, это ты с кем сейчас разговаривал???

С вами в том числе, сын мой ))). Давайте подробней о том, как вы эффективно используете наследование. Это будет более интересно, чем треп на общие темы генетики в пятницу. Эх, когда же меня на одну из исторических родин в командировку направят. Или вас к нам )))
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338090
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefints sql="Update "_table_" Set Name=%Library.PopulateUtils_Name()"
А дихлофосом не пробовали???
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338131
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesov, а это как-то повлияет на результат?
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338562
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oleg OleninДавайте подробней о том, как вы эффективно используете наследование.
Видно про это мы так и не услышим... И примеров того не увидим...
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338581
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefintkolesov, а это как-то повлияет на результат?
У вас каждый пользователь раз в надцать минут апдейтит миллионы записей?
Видимо дело в специфике - я производством занимаюсь.
И за команду UPDATE вообще изредка готов придушить - по-дефолту она у нас запрещена. Для сохранения, изменения данных - извольте использовать объекты и %Save() - остальное только после консилиума (или на другом месте работы). Бывает, нужен UPDATE, но не в рамках обслуживания домена - это команда для "прислуги" (истории изменений, события и проч.)
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338586
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaOleg OleninДавайте подробней о том, как вы эффективно используете наследование.
Видно про это мы так и не услышим... И примеров того не увидим...
Биологические идеи, положенные в основу ООП, а, следовательно, и само ООП не имеют никакого отношения к базам данных. Это я объяснял с примерами на конференции по MUMPS в Подмосковье лет 10 назад, если не больше. Программирование завода-автомата (когда роботы обмениваются сообщениями) - вот там, вероятно, эти принципы можно использовать. Так что ООП так же, как и SQL, нет смысла использовать при программировании приложений БД, за исключением задач организации интерфейса (например, окно можно рассматривать, как объект, со всеми этими принципами, включая наследование).
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338593
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaOleg OleninДавайте подробней о том, как вы эффективно используете наследование.
Видно про это мы так и не услышим... И примеров того не увидим...
Искренне не готов ответить. Дело не в примерах.

Мои познания в философии и методологии довольно ограниченны и сводятся к системомыследеятельностному подходу Г.П.Щедровицкого. Эксперт в рамках этого подхода - позиция, не требующая обоснования. Её нужно просто занять . Взгляните на высказывания Олега Оленина - он, как и я, занимает позицию эксперта ("зло, и всё тут!" - безапелляционно, значит эксперт!). Однако, в отличие от него, хранимое наследование для меня не аспект, не тема для обсуждения и не инструмент. Для меня это уже несколько лет измерение проектирования.

У тех же методологов (или не у них, могу ошибаться) есть известная байка про плоских рыб в плоском мире, которые никак не могли понять феномена выпуклости.

Любая попытка презентовать им еще одно измерение мира обречена. Ситуация должна изменяться изнутри. Например, должны появится студенты, никогда не использовавшие SQL (это очень грубо, но у меня и времени немного - тут пинг в 3 секунды и связь раз в сутки).

Надеюсь, ближе к концу лета появится время и я таки выложу свое представление о хранимом наследовании на хабре. Выложу, повторюсь, понимая, что это бесполезно и только карму испортит ;)
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338645
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolesovВзгляните на высказывания Олега Оленина - он, как и я, занимает позицию эксперта ("зло, и всё тут!" - безапелляционно, значит эксперт!).
Мне ненравятся ваши "занимаемые позиции"...

Мне импонирует подход от doublefint . Он приводит примеры где явный проигрыш наследования. Причем он просит привести аналогичные примеры где будет выигрыш от наследования.
Мне все это так же интересно, но ничего "пощупать" так и не дают...

Вместо этого предлагают:
- просто занять позицию
- просто отказаться от ОПП и SQL в разработке БД
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338649
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsa... Вместо этого предлагают:
- просто отказаться от ОПП и SQL в разработке БД
А Вы просто говорите неправду. Что, конечно, тоже позиция. Непоколебимая))
...
Рейтинг: 0 / 0
Слияние классов в одну глобаль
    #38338805
Фотография kolesov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaОн приводит примеры где явный проигрыш наследования. Причем он просит привести аналогичные примеры где будет выигрыш от наследования.
Он занимается демагогией, даже если сам этого не понимает - "Подходит ли вертолет для прыжков с трамплина? Нет, что Вы, здесь гораздо более удобны ЛЫЖИ!!! И за примером ходить далеко не нужно - я вот только что спустил вертолет с трамплина - не впечатлило, мягко говоря. Лыжи и только лыжи - всё остальное зло!"

Абалденная логика. И что тут привести в качестве противоположного примера? Вертолет на для трамплина, да. Апдейтить сотни тысяч записей за-раз Вы считаете нормальной ситуацией прикладной задачи? Вот я и молчу. В меру сил ;)
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 2 из 3
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Слияние классов в одну глобаль
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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