|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
sigmovПонимаем. Правда насчет 1000 не уверен, по умолчанию 10к вроде. http://docs.intersystems.com/cache20131/csp/docbook/DocBook.UI.Page.cls?KEY=RCPF_LockThreshold ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 16:16 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
kolesov,Собственно сюда написал только в качестве поддержки ТС, которого, как мне показалось, попытались отговорить от вполне разумного и эффективного шага. Что этот шаг стал разумным и эффективным, ТС нужно постараться разобраться как это работает. Что дает, и что отнимает. А не бездумно наследовать, и радоваться сквозным SQL запросам ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 16:18 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
Ptn Что дает, и что отнимает. Нет. Ну я понимаю, почему я не готов пояснить, что и как дает. А вот почему вы не готовы пояснить, что отнимает? За исключением тех 4-х смешных пунктов (которые я безответно оспорил), пока ничего выжать не смогли. Даже с демагогично-максималистской поддержкой Оленина. PtnА не бездумно наследовать, и радоваться сквозным SQL запросам Гыгыгы ;) Я лично работаю от модели предметной области. И в ней все документы, к примеру, раз уж зашло, имеют одного(!) родителя. Так вышло. И глупо это не учитывать. В этом смысле Ваше " уже не храним" выглядит как "да вы его не бойтесь - оскопили его прошлою весною". Только сейчас обратил внимание - ТС из Владивостока. ТС! Наймите, сделаю-расскажу-настрою. Летать будет аки "Протон" ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 16:45 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
kolesovЯ лично работаю от модели предметной области. И в ней все документы, к примеру, раз уж зашло, имеют одного(!) родителя По документам считаете что-нибудь? Есть ли у документов строки (товарные, например)? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 18:49 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
Oleg OleninНаследование - зло.Забавно слышать такое от консультанта по объектно-ориентированной СУБД... Олег, если захотите аргументировать эту "лемму", думаю, многим будет интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 20:38 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
Я хоть и не Олег. Наследование - это усложнение, появление новых взаимозависимостей. При одинаковой трудоемкости и функциональности решение без наследования будет чище и проще. Соотвественно, наследование это зло. И для его применения нужны обоснования. В первую очередь это относится к людям, которых хлебом не корми - дай чего-нибудь понаследовать. Объектно-ориентированная среда же, как без наследования то? Это как сказать, что автомобиль - зло. Требует времени, денег, опасен. И для его приобретения нужно веские основания. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 21:02 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
Тогда так: Disclaimer. Все записи сделанные мной в этом форуме являются моим частным мнением и никак не связаны с моими работодателями (бывшими, текущими и будущими). Ok ))). Начнем с того, что Cache - не объектно-ориентированная СУБД в моем представлении. Это и не важно в общем, как ее назвать. Просто в этой ветке идет сплошная подмена - сначала люди начинают зарубаться не по тому вопросу, по которому спрашивали. Сейчас отчего то считают, что объектная ориентированность = наследование. И дальше идет подмена смысла - если в названии есть объектно-ориентированная, значит наследование это гуд. Ответьте человеку на его вопрос, диалектики материализма! )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 22:50 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
kolesov, По-моему и не демагогическая и не максималистическая - ответьте лучше автору threadа на вопрос )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 22:51 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
В тему наследования: Раз применил (больше пока потребности не возникало) следующую схему Постановка задачи: Хранение в системе бизнес-документов одного типа, но с разными доп полями в зависимости от вида, которых изначально было порядка 7-8. Варианты: 1. Делать отдельные таблицы для каждого - не вариант, т.к. пользователю их надо было показывать разом в виде списка. 2. Отнаследовать их друг от друга - вариант, но тогда таблица будет разрастаться дополнительными полями, что соответственно скажется на скорости + вариант не очень подходил, т.к. вид документа мог поменяться после создания самого документа Решил сделать третий вариант: 1. Выделил поля, которые будут показаны пользователю при выводе списка документов (т.е. поля общие для всех видов), из них сделал хранимый общий класс 2. Сделал хранимый базовый класс для расширений, и ссылку из него на общий класс 3. Сделал иерархию наследования для всех видов документов с их доп полями. В итоге получилось: При запросе списка документов - используется легкая версия глобала данных При запросе отдельного документа - подцепляются все нужные доп поля Через пару недель коллеге потребовалось реализовать очень похожую задачу, в которой бизнес-документы были практически идентичными, но все же отдельными: 1. Добавили один признак в общий класс, разделяющий старые и новые документы 2. Добавили в иерархию наследования соответствующие расширения ЗЫ обычным наследованием хранимых классов тоже пользуемся, но с осторожностью и только там, где оно действительно нужно По теме слияния Ради понтов это делать не стоит, т.к. в дальнейшем могут появиться новые проблемы, например, в наследовании хранимых классов при существующей базе не так тривиально перенести поле в базовый/дочерний класс или поддержка уникальности индексов. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.07.2013, 22:53 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
D_De1mosРешил сделать третий вариант: 1. Выделил поля, которые будут показаны пользователю при выводе списка документов (т.е. поля общие для всех видов), из них сделал хранимый общий класс 2. Сделал хранимый базовый класс для расширений, и ссылку из него на общий класс 3. Сделал иерархию наследования для всех видов документов с их доп полями. Пока смысла в пп. 1 и 3 не наблюдается. Почему не один тип сущности? D_De1mosВ итоге получилось: При запросе списка документов - используется легкая версия глобала данных При запросе отдельного документа - подцепляются все нужные доп поля То есть, смысл - получить "легкую версию глобала"? Вы эксперименты какие-то проводили? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2013, 08:29 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
doublefintПо документам считаете что-нибудь? Есть ли у документов строки (товарные, например)? Атож!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2013, 12:58 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
ОленинНаследование - зло. БлокЯ хоть и не Олег. Наследование - это усложнение. Ага, однополые браки и усыновление детей пи..рами. Это-ж нормально. И просто. Зачем тратить калории на наследников) Наследование устарело - чего уж там... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2013, 13:04 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
Oleg OleninOk ))). Начнем с того, что Cache - не объектно-ориентированная СУБД в моем представлении. Это и не важно в общем, как ее назвать. Просто в этой ветке идет сплошная подмена - сначала люди начинают зарубаться не по тому вопросу, по которому спрашивали. Сейчас отчего то считают, что объектная ориентированность = наследование. И дальше идет подмена смысла - если в названии есть объектно-ориентированная, значит наследование это гуд. Ответьте человеку на его вопрос, диалектики материализма! )))) Папа, это ты с кем сейчас разговаривал??? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2013, 13:07 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
Блок А.Н.Я хоть и не Олег. ... Это как сказать, что автомобиль - зло. Требует времени, денег, опасен. И для его приобретения нужно веские основания. Приятно ощущать себя истинным драйвером в компании кучеров. Шутка ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2013, 13:12 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
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.
На базе с раздельным хранением Код: vbnet 1. 2. 3. 4.
На базе с общим хранением Код: vbnet 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2013, 18:53 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
kolesovOleg OleninOk ))). Начнем с того, что Cache - не объектно-ориентированная СУБД в моем представлении. Это и не важно в общем, как ее назвать. Просто в этой ветке идет сплошная подмена - сначала люди начинают зарубаться не по тому вопросу, по которому спрашивали. Сейчас отчего то считают, что объектная ориентированность = наследование. И дальше идет подмена смысла - если в названии есть объектно-ориентированная, значит наследование это гуд. Ответьте человеку на его вопрос, диалектики материализма! )))) Папа, это ты с кем сейчас разговаривал??? С вами в том числе, сын мой ))). Давайте подробней о том, как вы эффективно используете наследование. Это будет более интересно, чем треп на общие темы генетики в пятницу. Эх, когда же меня на одну из исторических родин в командировку направят. Или вас к нам ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2013, 20:11 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
doublefints sql="Update "_table_" Set Name=%Library.PopulateUtils_Name()" А дихлофосом не пробовали??? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2013, 05:39 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
kolesov, а это как-то повлияет на результат? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.07.2013, 12:25 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
Oleg OleninДавайте подробней о том, как вы эффективно используете наследование. Видно про это мы так и не услышим... И примеров того не увидим... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2013, 08:27 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
doublefintkolesov, а это как-то повлияет на результат? У вас каждый пользователь раз в надцать минут апдейтит миллионы записей? Видимо дело в специфике - я производством занимаюсь. И за команду UPDATE вообще изредка готов придушить - по-дефолту она у нас запрещена. Для сохранения, изменения данных - извольте использовать объекты и %Save() - остальное только после консилиума (или на другом месте работы). Бывает, нужен UPDATE, но не в рамках обслуживания домена - это команда для "прислуги" (истории изменений, события и проч.) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2013, 09:05 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
krvsaOleg OleninДавайте подробней о том, как вы эффективно используете наследование. Видно про это мы так и не услышим... И примеров того не увидим... Биологические идеи, положенные в основу ООП, а, следовательно, и само ООП не имеют никакого отношения к базам данных. Это я объяснял с примерами на конференции по MUMPS в Подмосковье лет 10 назад, если не больше. Программирование завода-автомата (когда роботы обмениваются сообщениями) - вот там, вероятно, эти принципы можно использовать. Так что ООП так же, как и SQL, нет смысла использовать при программировании приложений БД, за исключением задач организации интерфейса (например, окно можно рассматривать, как объект, со всеми этими принципами, включая наследование). ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2013, 09:09 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
krvsaOleg OleninДавайте подробней о том, как вы эффективно используете наследование. Видно про это мы так и не услышим... И примеров того не увидим... Искренне не готов ответить. Дело не в примерах. Мои познания в философии и методологии довольно ограниченны и сводятся к системомыследеятельностному подходу Г.П.Щедровицкого. Эксперт в рамках этого подхода - позиция, не требующая обоснования. Её нужно просто занять . Взгляните на высказывания Олега Оленина - он, как и я, занимает позицию эксперта ("зло, и всё тут!" - безапелляционно, значит эксперт!). Однако, в отличие от него, хранимое наследование для меня не аспект, не тема для обсуждения и не инструмент. Для меня это уже несколько лет измерение проектирования. У тех же методологов (или не у них, могу ошибаться) есть известная байка про плоских рыб в плоском мире, которые никак не могли понять феномена выпуклости. Любая попытка презентовать им еще одно измерение мира обречена. Ситуация должна изменяться изнутри. Например, должны появится студенты, никогда не использовавшие SQL (это очень грубо, но у меня и времени немного - тут пинг в 3 секунды и связь раз в сутки). Надеюсь, ближе к концу лета появится время и я таки выложу свое представление о хранимом наследовании на хабре. Выложу, повторюсь, понимая, что это бесполезно и только карму испортит ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2013, 09:21 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
kolesovВзгляните на высказывания Олега Оленина - он, как и я, занимает позицию эксперта ("зло, и всё тут!" - безапелляционно, значит эксперт!). Мне ненравятся ваши "занимаемые позиции"... Мне импонирует подход от doublefint . Он приводит примеры где явный проигрыш наследования. Причем он просит привести аналогичные примеры где будет выигрыш от наследования. Мне все это так же интересно, но ничего "пощупать" так и не дают... Вместо этого предлагают: - просто занять позицию - просто отказаться от ОПП и SQL в разработке БД ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2013, 10:08 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
krvsa... Вместо этого предлагают: - просто отказаться от ОПП и SQL в разработке БД А Вы просто говорите неправду. Что, конечно, тоже позиция. Непоколебимая)) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2013, 10:12 |
|
Слияние классов в одну глобаль
|
|||
---|---|---|---|
#18+
krvsaОн приводит примеры где явный проигрыш наследования. Причем он просит привести аналогичные примеры где будет выигрыш от наследования. Он занимается демагогией, даже если сам этого не понимает - "Подходит ли вертолет для прыжков с трамплина? Нет, что Вы, здесь гораздо более удобны ЛЫЖИ!!! И за примером ходить далеко не нужно - я вот только что спустил вертолет с трамплина - не впечатлило, мягко говоря. Лыжи и только лыжи - всё остальное зло!" Абалденная логика. И что тут привести в качестве противоположного примера? Вертолет на для трамплина, да. Апдейтить сотни тысяч записей за-раз Вы считаете нормальной ситуацией прикладной задачи? Вот я и молчу. В меру сил ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2013, 12:14 |
|
|
start [/forum/topic.php?fid=39&msg=38336207&tid=1557093]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 370ms |
0 / 0 |