powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Эффективность разработки ПО
127 сообщений из 127, показаны все 6 страниц
Эффективность разработки ПО
    #38147796
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения.

Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38147833
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

Ладно, отвечу сам. Чаще всего встречаешь такую картину. Несколько разработчиков целыми днями напряженно пишут код, много кода, сложные запросы, постоянно их оптимизируют, дебажат код, когда вылазят ошибки. Знакомая картина.

И есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Примерно в 10 раз меньше работы, чем в первом случае. Я использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов.

Я справлялся с такой задачей не напрягаясь, причем параллельно был архитектором приложения, разработчиком клиентской части, учителем программирования и иногда бизнес-аналитиком.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38147842
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick, молодец, чё )))
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38147883
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

все мы такие были)
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38148005
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickОчень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения.

Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так?

еще чаще встречаются конторы, где весь отдел занят весь день.
И когда вдруг начинают эффективность измерять..всем становится плохо, потому что 38м квадратных попугаев эффективности пугает даже знатных психоаналитиков.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38148046
ДжекНепотрошитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickИ есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Примерно в 10 раз меньше работы, чем в первом случае. Я использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов.

Я справлялся с такой задачей не напрягаясь
Это потому, что у тебя работы было мало :) Видишь, вон еще один стотысячный объектно-ориентированный велосипед фреймворк написать успел...
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38148323
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДжекНепотрошительOld NickИ есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Примерно в 10 раз меньше работы, чем в первом случае. Я использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов.

Я справлялся с такой задачей не напрягаясь
Это потому, что у тебя работы было мало :) Видишь, вон еще один стотысячный объектно-ориентированный велосипед фреймворк написать успел...
такие мысли часто приходят когда наоборот, много работы, которая отнимает слишком много времени, которое можно потратить на что-более полезное: на себя, семью, другие проекты в конце концов. 10 лет назад, тоже ставил такие вопросы .
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38171797
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickOld Nick,

Ладно, отвечу сам. Чаще всего встречаешь такую картину. Несколько разработчиков целыми днями напряженно пишут код, много кода, сложные запросы, постоянно их оптимизируют, дебажат код, когда вылазят ошибки. Знакомая картина.

И есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Примерно в 10 раз меньше работы, чем в первом случае. Я использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов.

Я справлялся с такой задачей не напрягаясь, причем параллельно был архитектором приложения, разработчиком клиентской части, учителем программирования и иногда бизнес-аналитиком.т.е. в представляемой системе нет ни сложных запросов, ни необходимости в их опитмизации? Нет ошибок и отладок?

Хочу туда
Хотя нет, не хочу. Скучно ))
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38171889
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx, приходилось в математике раскладывать сложную формулу на элементарные составляющие? В разработке информационных систем точно также. Существуют множество подходов. Часть из них - это действительно то, о чем ты и хотел сказать, но говорить об этом действительно скучно. Разработка выполняется по принципу "что вижу, то и пишу", трехэтажные формулы, километровые запросы. Но есть и другие подходы.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38171904
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

наверное, я был бы не против попробовать себя в компании с "другими подходами"
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38172940
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxiscrafm,

наверное, я был бы не против попробовать себя в компании с "другими подходами"

При таком подходе очень мало тратится ресурсов на программирование и основное время уходит на проектирование.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38172968
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас подход далеко не такой.

Правда, есть куча наработок.

Например, есть система запросов: основной запрос, запросы для выпадающих списков, настройки колонок и подключение по необходимости хранимок, и это всё через админку.
Система используется во всех приложениях.
Есть и универсальный справочник: приложение, настроенное эту на систему запросов. Подходит под 98% справочников. Обычно для подключения нового надо написать всего пару-тройку-пяток запросов, и всё. Приложение это используется не только для справочников, но и вообще в куче случаев, когда надо организовать срочный/массовый и не сильно сложный табличный ввод.


Но до полного ООП не дошли.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38172984
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxУ нас подход далеко не такой.

Правда, есть куча наработок.

Например, есть система запросов: основной запрос, запросы для выпадающих списков, настройки колонок и подключение по необходимости хранимок, и это всё через админку.
Система используется во всех приложениях.
Есть и универсальный справочник: приложение, настроенное эту на систему запросов. Подходит под 98% справочников. Обычно для подключения нового надо написать всего пару-тройку-пяток запросов, и всё. Приложение это используется не только для справочников, но и вообще в куче случаев, когда надо организовать срочный/массовый и не сильно сложный табличный ввод.


Но до полного ООП не дошли.

Это вы просто не с той стороны зашли. То что вы сделали вещь полезная и нужная, но не достаточная.
Это вы автоматизировали только первый этап - элементы интерфейса
Далее нужно автоматизировать второй этап - то есть создать библиотеку сущностей и связать их с элементами интерфейса.
В таком случае получите аналог 1С - конструктор.
И вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапа
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38172995
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickОчень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения.

Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так?

А что это самоцель? Занять имел на 30%
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173064
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOld NickОчень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения.

Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так?

А что это самоцель? Занять имел на 30%

В таком случае разработчик БД может быть занят сразу в 3-х проектах.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173092
Shr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickИ вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапаТ.е. можно и сразу BPMS внедрить?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173096
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickВ таком случае разработчик БД может быть занят сразу в 3-х проектах.у меня все заняты сразу во всех проектах
правда, у нас 66% - это сопровождение
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173246
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShrOld NickИ вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапаТ.е. можно и сразу BPMS внедрить?

BPMS - это средство. То, что пишут на Дельфях не обязательно ООП
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173248
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxOld NickВ таком случае разработчик БД может быть занят сразу в 3-х проектах.у меня все заняты сразу во всех проектах
правда, у нас 66% - это сопровождение

Это очень плохой показатель. Хотя с какой стороны смотреть. Если со стороны собственника вашей компании, то это выгодно, постоянный доход.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173261
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickДалее нужно автоматизировать второй этап - то есть создать библиотеку сущностей и связать их с элементами интерфейса.
В таком случае получите аналог 1С - конструктор.
И вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапа
после 2-го этапа, после того как поведетесь на магическую библиотеку каких-то "сущностей" уже ничего не будет. Так что планы на 3-й этап можно не строить.

p.s. то что описал andreymx и то что вы приняли за автоматизацию "элементов интерфейса", по какой-то причине, совершенно этим не является.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173264
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxНо до полного ООП не дошли.
вам повезло, что не влезли в трясину.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173269
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickandreymxпропущено...
у меня все заняты сразу во всех проектах
правда, у нас 66% - это сопровождение

Это очень плохой показатель. Хотя с какой стороны смотреть. Если со стороны собственника вашей компании, то это выгодно, постоянный доход.
а с какой стороны еще нужно смотреть на это все?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173339
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld Nickпропущено...


Это очень плохой показатель. Хотя с какой стороны смотреть. Если со стороны собственника вашей компании, то это выгодно, постоянный доход.
а с какой стороны еще нужно смотреть на это все?

Ну это хорошо, пока нет конкуренции среди "автоматизаторов". Им сходит с рук даже 3%-ный КПД. Наверное, всё-таки придёт время когда будет конкуренция за клиентов и проиграют те, что не могут настроить технологию разработки ПО. А заказчик будет голосовать рублём.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173342
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld NickДалее нужно автоматизировать второй этап - то есть создать библиотеку сущностей и связать их с элементами интерфейса.
В таком случае получите аналог 1С - конструктор.
И вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапа
после 2-го этапа, после того как поведетесь на магическую библиотеку каких-то "сущностей" уже ничего не будет. Так что планы на 3-й этап можно не строить.

p.s. то что описал andreymx и то что вы приняли за автоматизацию "элементов интерфейса", по какой-то причине, совершенно этим не является.

То есть вы не в курсе, что ООП выгоднее чем лапшепрограммирование? 8-()
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173353
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно такое слышать от программиста. Вы не в курсе зачем библиотека System.dll или System.Data.dll и набор сущностей, который там есть? И как это помогает программистам тоже не в курсе? Я в шоке...
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173466
ДжекНепотрошитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickiscrafmпропущено...

после 2-го этапа, после того как поведетесь на магическую библиотеку каких-то "сущностей" уже ничего не будет. Так что планы на 3-й этап можно не строить.

p.s. то что описал andreymx и то что вы приняли за автоматизацию "элементов интерфейса", по какой-то причине, совершенно этим не является.

То есть вы не в курсе, что ООП выгоднее чем лапшепрограммирование? 8-()

Он прав. Именно так происходит с бизнес-приложениями, которые пишут профессиональные программисты, забыв пригласить в команду бизнес-аналитика и архитектора. Вместо автоматизации бизнес-задач сопровождение такой системы превращается в бесконечное допиливание стандартных сущностей или в бесконечную головоломку, как обойти их ограничения.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173481
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickiscrafmпропущено...

после 2-го этапа, после того как поведетесь на магическую библиотеку каких-то "сущностей" уже ничего не будет. Так что планы на 3-й этап можно не строить.

p.s. то что описал andreymx и то что вы приняли за автоматизацию "элементов интерфейса", по какой-то причине, совершенно этим не является.

То есть вы не в курсе, что ООП выгоднее чем лапшепрограммирование? 8-()
где в моих словах было какое-то "лапшепрограммирование"? Что это такое?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173487
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickСтранно такое слышать от программиста. Вы не в курсе зачем библиотека System.dll или System.Data.dll и набор сущностей, который там есть? И как это помогает программистам тоже не в курсе? Я в шоке...
ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь )
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173557
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld NickСтранно такое слышать от программиста. Вы не в курсе зачем библиотека System.dll или System.Data.dll и набор сущностей, который там есть? И как это помогает программистам тоже не в курсе? Я в шоке...
ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь )

Да, конечно, молод, я всего 11 лет использую библиотеку сущностей, написанную на SQL, многие куски кода я даже забыл как работают, просто использую и всё. И мне лень каждый раз с нуля программировать.

Вот скажите мне сирому, зачем на каждом новом проекте с нуля проектировать, например, регистр учета, иерархию субъектов, систему доступа, BPMS-движок, событийную систему?

И мне кажется мы разные вещи понимаем под словами ООП в базе
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173562
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld NickСтранно такое слышать от программиста. Вы не в курсе зачем библиотека System.dll или System.Data.dll и набор сущностей, который там есть? И как это помогает программистам тоже не в курсе? Я в шоке...
ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь )

Мои сущности - это

1. Пользователь
2. Организация
3. Товар
4. Документ
5. Приходный ордер
6. Регистр учёта
7. Операция
8. Бизнес-процесс
....
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173610
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickзачем на каждом новом проекте с нуля проектировать, например, регистр учета, иерархию субъектов, систему доступа, BPMS-движок, событийную систему?
1. какой-то регистр учета и какая-то иерархия субъектов - это одно
2. BPMS-движок, событийная система - это другое

2 - конечно не нужно проектировать каждый раз, это автономное ПО.
1 - если под этим понимается то, что вы озвучили далее, то действительно это проектируется для каждого нового проекта. Если конечно вы говорите о разработке чего-то "коробочного", то да. В этом случае проектируется один раз на все случаи жизни, а потом используется, нужно оно или нет.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173619
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld Nickзачем на каждом новом проекте с нуля проектировать, например, регистр учета, иерархию субъектов, систему доступа, BPMS-движок, событийную систему?
1. какой-то регистр учета и какая-то иерархия субъектов - это одно
2. BPMS-движок, событийная система - это другое

2 - конечно не нужно проектировать каждый раз, это автономное ПО.
1 - если под этим понимается то, что вы озвучили далее, то действительно это проектируется для каждого нового проекта. Если конечно вы говорите о разработке чего-то "коробочного", то да. В этом случае проектируется один раз на все случаи жизни, а потом используется, нужно оно или нет.

А если это не автономное ПО, а просто набор классов в библиотеке? И при компиляции проекта просто указываешь то. что будешь использовать

И регистр с иерархией субъектов у меня вместе с движком BPMS и событийной системой находится, не вижу почему это другое.
И я не разрабатываю коробочное, просто делаю так, что сущности не зависят от прикладной задачи. Просто заказчику поставляется то, что ему нужно и пишутся под него процессы. И это всё на ООП. Не представляю как это без ООП делать.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173620
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickiscrafmпропущено...

ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь )

Да, конечно, молод, я всего 11 лет использую библиотеку сущностей, написанную на SQL, многие куски кода я даже забыл как работают, просто использую и всё. И мне лень каждый раз с нуля программировать.
извини, не хотел чтобы это выглядело таким образом (как личный выпад), не поставил просто смайлик, чтобы было четкое указание на сарказм.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173627
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickя не разрабатываю коробочное, просто делаю так, что сущности не зависят от прикладной задачи. Просто заказчику поставляется то, что ему нужно и пишутся под него процессы. И это всё на ООП. Не представляю как это без ООП делать.
уточни такой момент: заказчику, который является торговцем мясом и заказчику, который является проектной организацией поставляется одни и тот же объект Организации? каждый раз же проектировать не требуется?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173920
Monochromatique
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

Видимо у каждого разработчика наступает такой момент, когда он считает что крут нереально, постиг дзен и Бога за бороду ухватил.
Когда у вас сущности товар да приходный ордер - и в самом деле, кажется, что потолок разработки-то - вот он. А 1С-овцы, к слову - с этого вообще начинают, некоторые даже не знают, что есть некий SQL, серьезно.

А вот когда приходят более сложные задачи, тогда сначала слетает гонор, потом паника, а потом заваленный проект. Увы.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173922
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickпропущено...
То есть вы не в курсе, что ООП выгоднее чем лапшепрограммирование? 8-()Редкостный отжиг...
Аффтару для ознакомления - "Почему объектно-ориентированное программирование провалилось?"
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173952
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickiscrafmпропущено...

ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь )

Да, конечно, молод, я всего 11 лет использую библиотеку сущностей, написанную на SQL, многие куски кода я даже забыл как работают, просто использую и всё. И мне лень каждый раз с нуля программировать.
Осталось только внятно сформулировать "мысл" о том, какое отношение "библиотека на SQL" имеет отношение к ООП - и будет все небо в алмазах...
В качестве "наводки"...
Во-первых, SQL ни разу не ОО-язык...
Во-вторых, реляционные БД, с которыми SQL (обычно) применяют, в "объекты" в стиле ООП не очень хорошо помещаются - вплоть до "не помещается вообще"...
Ну, а использование библиотек - это вообще технологии времен времен перфокарт, когда не то, чтобы об объектно-ориентированном, но и о структурном программировании еще только думали...
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38173986
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvАффтару для ознакомления - "Почему объектно-ориентированное программирование провалилось?"
корявая, мягко говоря, статья...

Попало под руку заявление автора:
авторНаследование — это самая большая провокация в индустрии. Ни в каком моделировании наследования не существует (и в реальной жизни его нет тоже) — ни в электронике, ни в бухгалтерии, ни в политике, ни где бы то ни было еще.
Автор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм...
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174001
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
комментарии к статье почитал...

авторА кто-нибудь из сторонников "провала ООП" может привести пример крупного приложения уровня enterprise, написанного в процедурном стиле? Неужели есть такие извращенцы? Как иначе назвать людей, поддерживающих проект на 100-200 тысяч строк кода в процедурном стиле?

уровень ИТ зашкаливает, причем что с одной, что с другой стороны.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174011
strizh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmАвтор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм...
Гм. А где наследование в политике ? Максимум, что есть - это изучение "хороших паттернов проектирования"
студентами-международниками.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174017
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizhiscrafmАвтор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм...
Гм. А где наследование в политике ? Максимум, что есть - это изучение "хороших паттернов проектирования"
студентами-международниками.
демократы, христианские демократы, социал-демократы и еще куча наследников
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174021
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
strizh,
про наследование, которого нет в бухгалтерии, еще более интересно.
Активы-Имущество-Деньги-Обязательства и т.д.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174029
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmsphinx_mvАффтару для ознакомления - "Почему объектно-ориентированное программирование провалилось?"
корявая, мягко говоря, статья...

Попало под руку заявление автора:
авторНаследование — это самая большая провокация в индустрии. Ни в каком моделировании наследования не существует (и в реальной жизни его нет тоже) — ни в электронике, ни в бухгалтерии, ни в политике, ни где бы то ни было еще.
Автор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм...Вот не пойму - в этом месте плакать или смеяться?
Такое "ошушение", что Вы уже успели защитить докторскую в Стэндфорде и, как минимум, поработать старшим архитектором в Sun и IBM...
Прошло ровно 10 лет с публикации известной и классической в мире программирования статьи, написанной Ричардом Гэбриелом , название которой стало уже нарицательным и вынесено в заголовок моей заметки. Автор этой нашумевшей статьи, доктор компьютерных наук Стэнфорда , старший архитектор по разработке ПО сначала Sun , а потом и IBM , Ричард ГэбриелВ статье можно еще одно не менее интересное мнение от не менее интересного автора увидеть:
Другой крупный критик ООП - это известный специалист по программированию - Александр Степанов, который работая в Bell Labs участвовал в создании C++ вместе c Бьерном Страуструпом, а впоследствии, уже по приглашению в HP Labs, написал Standard Template Library (STL).
Александр Александрович полностью разочаровался в парадигме ООП, в частности он пишет:
"Я уверен, что ООП методологически неверна. Она начинает с построения классов. Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой.
Тоже самое и с программированием: сначала вы должны начинать развивать алгоритмы, и только в конце этой работы приходите к тому, что вы в состоянии сформулировать четкие и непротиворечивые интерфейсы. Именно из-за этой неразберихи в ООП так популярен рефакторинг - из-за ущербности парадигмы вы просто обречены на переписывание программы, уже в тот самый момент, когда только задумали её спроектировать в ООП-стиле".
И таких мнений от достаточно известных в "программистских кругах" людей в статье, находящейся по той самой ссылке , более чем достаточно, чтобы, как минимимум, не пытаться необоснованно переоценивать ООП как методологию. Очень рекомендую "озадачиться" ознакомлением с результатами сравнения эфективности ООП относительно не-ООП. Соответствующее исследование проводилось в MIT (Massachusetts Institute of Technology) - Productivity Analysis of Object-Oriented Software Developed in a Commercial Environment
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174041
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 sphinx_mv

"Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой."

Голубчик, ну это же бред.:) Ну Вы хоть в Википедии посмотрите, что такое аксиома , или вспомните, с чего геометрию начинали изучать (с аксиоматических понятий "точка" и "прямая"). А тоВы лепите, не думая, а впечатление, чтоВы не думаете.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174046
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mviscrafmпропущено...

корявая, мягко говоря, статья...

Попало под руку заявление автора:
пропущено...

Автор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм...Вот не пойму - в этом месте плакать или смеяться?
Такое "ошушение", что Вы уже успели защитить докторскую в Стэндфорде и, как минимум, поработать старшим архитектором в Sun и IBM...
плакать или смеяться? Автор может быть хоть котом в сапогах, но это не повод ляпать о том, что в бухгалтерии нет наследования.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174049
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я думаю что здесь какой-то неправильный перевод на русский. К тому же при чем здесь Gabriel. Есть ссылка на "оригинал"? Уже вопрос стоит о качестве интерпретации текстов Gabriel-а, а не о провале ООП. Я разрабатывал однотипные приложения и в ООП средах и в функциональных. Всему свое место. В бизнес-приложениях ООП как гиря на ноге, в системных разработках конечно без ООП тяжело, но не смертельно. Больше разговоров в среде публицистов и блогеров.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174056
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene2 sphinx_mv

"Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой."

Голубчик, ну это же бред.:) Ну Вы хоть в Википедии посмотрите, что такое аксиома , или вспомните, с чего геометрию начинали изучать (с аксиоматических понятий "точка" и "прямая"). А тоВы лепите, не думая, а впечатление, чтоВы не думаете.:)
В случае с ООП - оно даже не аксиома, а набор ничем не подкрепленных суеверий, к тому же уровня передаваемых из уст в уста народного творчества. Это было раз...

Автор соотвествующего высказывания Вам известен с точностью до имени и фамилии - Вы вполне можете попытаться ему напрямую высказать это свое "фе" - и это было два...

:) Вы абсолютно уверены, что "точка" и "прямая" в математике - "аксиомы"? (а это было три)

:) Ну, и четыре - последний абзац по Вашей ссылке :
Сейчас аксиомы обосновываются не сами по себе, а в качестве необходимых базовых элементов теории. Критерии формирования набора аксиом в рамках конкретной теории часто являются прагматическими: краткость формулировки, удобство манипулирования, минимизация числа исходных понятий и т. п. Такой подход не гарантирует истинность принятых аксиом. Лишь подтверждение теории является одновременно и подтверждением набора её аксиом .Истинность теории "о более эффективном программировании с использованием ООП" опровергается окружающей действительностью.
Даже точное количество одних только классов "базовой поставки" .NET или Java - на выбор! - вряд ли кто скажет...
"Овер ХЗ сколько" - примерно "дословная" интерпретация "общеизвестных" познаний в данном вопросе.
Риторический вопрос о знании всех методов этих классов задавать?
Соответственно, любая попытка заявлять о возможности эфективно использовать что-то, о чем практически никто не имеет полного представления - это неплохое обоснование длятого, чтобы провести лето, зиму, весну, осень (нужное подчеркнуть) на даче у купца Канатчикова... :)
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174059
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmsphinx_mvпропущено...
Вот не пойму - в этом месте плакать или смеяться?
Такое "ошушение", что Вы уже успели защитить докторскую в Стэндфорде и, как минимум, поработать старшим архитектором в Sun и IBM...
плакать или смеяться? Автор может быть хоть котом в сапогах, но это не повод ляпать о том, что в бухгалтерии нет наследования.Нет в бухгалтерии наследования - и никогда не было!
Есть план счетов, журнал проводок, двойная запись и баланс, которые элементарным образом реализовывались, реализуются и еще долго будут реализовываться средствами реляционных БД, про которые тому уж лет 40 как известно, что никакого отношения к ООП не имеют - очевидно, как минимум, по причине отсутствия ООП в природе на момент создания теории реляционных БД.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174111
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
U-gene"Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой."

Голубчик, ну это же бред.:)

высказывание довольно "топорное" - возможно из-за перевода - но это далеко не бред. С аксиом в математике, действительно, никто не начинает. Они (аксиомы) - результат кропотливой работы. И эта аналогия с интерфейсами ООП очень удачна
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174157
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmМногим кажется что ООП сейчас сделает революцию в бизнес-приложениях
бугага, то же самое казалось 15 лет назад, когда я книжку по дельфи 2 читал.


ДжекНепотрошительОн прав. Именно так происходит с бизнес-приложениями, которые пишут профессиональные программисты, забыв пригласить в команду бизнес-аналитика и архитектора. Вместо автоматизации бизнес-задач сопровождение такой системы превращается в бесконечное допиливание стандартных сущностей или в бесконечную головоломку, как обойти их ограничения.
о да!!! этот бесконечный процесс - наше все!!:)

Но появление в команде еще и болтунов-дармоедов в виде бизнес-аналитика и архитектора не принесет улучшений:) Это я по опыту говорю.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174285
Inkelyad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
U-gene2 sphinx_mv
Ну Вы хоть в Википедии посмотрите, что такое аксиома, или вспомните, с чего геометрию начинали изучать (с аксиоматических понятий "точка" и "прямая"). А тоВы лепите, не думая, а впечатление, чтоВы не думаете.
В статьях по ссылкам был же ответ.

Готовая математическа конструкция (доказательство теоремы/правильности алгоритма/описания способа вычислений) базируется/cтроится на утверждениях, называемых аксиомами.

Но придумывание/конструирование этой конструкции не с аксиом начинают.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174344
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

авторИ мне кажется мы разные вещи понимаем под словами ООП в базе

Наверное, в этом и загвоздка. По-моему, Вы недостаточно четко разъяснили, что имеете в виду под "ООП в базе", и у большинства камрадов это вызвало "легкое" недоумение...

В ORACLE (не знаю как в других БД, в них я не копенгаген) ООП на уровне SQL, PL/SQL - это, мягко говоря, нужно как козе баян. Конечно, некоторые возможности есть, и их даже можно/нужно использовать в определенных случаях, но почти всегда их можно безболезненно заменить на процедурный подход (в PL/SQL) или переделать в реляционную модель (SQL). Такой подход почти всегда (за редкими исключениями) более понятен, сопровождаем, имеет лучшую производительность. Ведь реализация БД появилась в те времена, когда об ООП в лучшем случае писались какие-то научные исследования, и естественно ядро БД изначально не поддерживает таких возможностей, это "не родное" для всех БД с многолетней историей...

Все-таки, мое ИМХО, нужно разделять подходы к разработке внутри БД и на Java, C# и т.д. Внутри БД нужно использовать те механизмы, которые наиболее оптимальны и проверены временем, а не изобретать велосипеды для реализации стандартных задач.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174467
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmberitOld Nick,

авторИ мне кажется мы разные вещи понимаем под словами ООП в базе

Наверное, в этом и загвоздка. По-моему, Вы недостаточно четко разъяснили, что имеете в виду под "ООП в базе", и у большинства камрадов это вызвало "легкое" недоумение...

В ORACLE (не знаю как в других БД, в них я не копенгаген) ООП на уровне SQL, PL/SQL - это, мягко говоря, нужно как козе баян. Конечно, некоторые возможности есть, и их даже можно/нужно использовать в определенных случаях, но почти всегда их можно безболезненно заменить на процедурный подход (в PL/SQL) или переделать в реляционную модель (SQL). Такой подход почти всегда (за редкими исключениями) более понятен, сопровождаем, имеет лучшую производительность. Ведь реализация БД появилась в те времена, когда об ООП в лучшем случае писались какие-то научные исследования, и естественно ядро БД изначально не поддерживает таких возможностей, это "не родное" для всех БД с многолетней историей...

Все-таки, мое ИМХО, нужно разделять подходы к разработке внутри БД и на Java, C# и т.д. Внутри БД нужно использовать те механизмы, которые наиболее оптимальны и проверены временем, а не изобретать велосипеды для реализации стандартных задач.

Оно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака.

Просто вы не умеете его готовить (с) не моё
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174471
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 sphinx_mv, kmaw ,Inkelyad

Повторю цитату
"Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома."

Ну если бы был глагол "подбирается" или "придумывается", то я бы не возражал. А говорить, что аксиомы 1)откуда-то 2)выводятся - бред. Имею право это отметить. И все толкования и объяснения здесь - это как сначала сказать, что "Волга вытекает из Каспийского моля" а потом начать оправдываться, что де она впадает , конечно.

2 sphinx_mv, espacially
Я про ООП ни слова не сказал. По мне, так удобнее чем предыдущие структуры и функции. А аргумент про количество классов в поставке меня вообще удивляет. Например, я не перечитал всех книг, и вряд ли перечитаю. И никто не знает, сколько их есть. Но это не значит , что они вообще не нужны.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174522
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mviscrafmпропущено...

плакать или смеяться? Автор может быть хоть котом в сапогах, но это не повод ляпать о том, что в бухгалтерии нет наследования.Нет в бухгалтерии наследования - и никогда не было!
а выше приведенный пример не читали? Ладно, послушаем опытного бухгалтера, нет так нет. Ты автор этой статьи что-ли?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174529
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще ООП+женерики+лямбды и прочие деревья выражений - большая сила, нужно только понимать что к чему и уметь использовать.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174534
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакНо появление в команде еще и болтунов-дармоедов в виде ... архитектора не принесет улучшений:) Это я по опыту говорю.
поздравляю с "шикарнейшим" опытом. Только почему здесь так принято гордится этим.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174549
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickAmberitOld Nick,

пропущено...


Наверное, в этом и загвоздка. По-моему, Вы недостаточно четко разъяснили, что имеете в виду под "ООП в базе", и у большинства камрадов это вызвало "легкое" недоумение...

В ORACLE (не знаю как в других БД, в них я не копенгаген) ООП на уровне SQL, PL/SQL - это, мягко говоря, нужно как козе баян. Конечно, некоторые возможности есть, и их даже можно/нужно использовать в определенных случаях, но почти всегда их можно безболезненно заменить на процедурный подход (в PL/SQL) или переделать в реляционную модель (SQL). Такой подход почти всегда (за редкими исключениями) более понятен, сопровождаем, имеет лучшую производительность. Ведь реализация БД появилась в те времена, когда об ООП в лучшем случае писались какие-то научные исследования, и естественно ядро БД изначально не поддерживает таких возможностей, это "не родное" для всех БД с многолетней историей...

Все-таки, мое ИМХО, нужно разделять подходы к разработке внутри БД и на Java, C# и т.д. Внутри БД нужно использовать те механизмы, которые наиболее оптимальны и проверены временем, а не изобретать велосипеды для реализации стандартных задач.

Оно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака.

Просто вы не умеете его готовить (с) не моё
во-первых что имеется ввиду конкретно показано не было. Понятно что это от недостатка опыта. Но это не причина для того, чтобы еще и язвить. Нужно лучше учиться отстаивать свою позицию.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174582
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickОно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака.
да ладно...
все как раз ровно наоборот происходит: "Мы слышали что ооп - это круто, так што давайте везде и всюду только его использовать"
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174649
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакOld NickОно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака.
да ладно...
все как раз ровно наоборот происходит: "Мы слышали что ооп - это круто, так што давайте везде и всюду только его использовать"

Да, как в анекдоте: "мыши кололись, плакали, но ели кактус"
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174651
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакOld NickОно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака.
да ладно...
все как раз ровно наоборот происходит: "Мы слышали что ооп - это круто, так што давайте везде и всюду только его использовать"

Я не говорил, что ООП надо везде использовать. Сначала новички не знают что такое ООП, потом начинаю использовать везде, и только когда появляется опыт, то используют только там где это нужно.
Я не использую ООП, когда играюсь с атрибутами объектов (полями). В моих сущностях нет полей, есть только операции. С полями лучше на уровне SQL играться.
В бизнес-логике я наследование практически не использую, вложенность операций даёт больше удобств.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38174937
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickОчень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения.

Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так?Легко! Свалить всё без разбору в EAV и выпереть всю бизнес-логику в клиентские приложения. Разработчик БД вообще не понядобится...
...в отличие от многочисленных тестеров клиентских аппликух и толстого-толстого саппорта.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175200
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

авторОно и понятно. Это ведь из-за недостатка опыта.

Если возможно, объясните пожалуйста неопытному, что имеется в виду под "ООП в базе".

Я возьму на себя смелость пройтись по Вашим постам:

авторИ есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Согласен, но где здесь ООП?

авторЯ использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов.

Какие классы имеются в виду? Большинство данных в БД хранится в таблицах. Классы можно использовать для обработки этих данных. И как при добавлении нового справочника обойтись только добавлением класса? Или Вы хотите сказать, что все данные всех справочников хранятся в одной мега-таблице? Или Вы хотите сказать, что ограничения/триггера Вы не используете, а всю проверку при вставке/обновлении/удалении делаете через классы, а то и вообще вне БД (интересно, как!)?

Я искренне не понимаю, и если бы Вы объяснили Ваш подход именно с позиции разработчика БД, возможно, на одного программиста с недостаточным опытом стало бы меньше...

авторЯ не говорил, что ООП надо везде использовать. Сначала новички не знают что такое ООП, потом начинаю использовать везде, и только когда появляется опыт, то используют только там где это нужно.

Так вот меня и терзают смутные сомнения, нужно ли ООП на уровне БД? Покажите пример реализации чего-нибудь с помощью ООП в БД, если Вас не затруднит...
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175403
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну хорож уже цепляться к этим "аксиомам". суть цитаты относительно общего контекста вполне понятна и имеет практическую ценность - что с ООП, что без оного - в конце концов имеем некоторый прикладной "метаязык" - API. так вот тут говорится о том, что API, которое "идет от алгоритмов" - более прагматическое, чтоли. Так как "сразу сочинять классы" - и вот тут суть цитаты - как "изначально сочинять аксиомы"
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175489
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AmberitOld Nick,

авторОно и понятно. Это ведь из-за недостатка опыта.

Если возможно, объясните пожалуйста неопытному, что имеется в виду под "ООП в базе".

Я возьму на себя смелость пройтись по Вашим постам:

авторИ есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Согласен, но где здесь ООП?

авторЯ использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов.

Какие классы имеются в виду? Большинство данных в БД хранится в таблицах. Классы можно использовать для обработки этих данных. И как при добавлении нового справочника обойтись только добавлением класса? Или Вы хотите сказать, что все данные всех справочников хранятся в одной мега-таблице? Или Вы хотите сказать, что ограничения/триггера Вы не используете, а всю проверку при вставке/обновлении/удалении делаете через классы, а то и вообще вне БД (интересно, как!)?

Я искренне не понимаю, и если бы Вы объяснили Ваш подход именно с позиции разработчика БД, возможно, на одного программиста с недостаточным опытом стало бы меньше...

авторЯ не говорил, что ООП надо везде использовать. Сначала новички не знают что такое ООП, потом начинаю использовать везде, и только когда появляется опыт, то используют только там где это нужно.

Так вот меня и терзают смутные сомнения, нужно ли ООП на уровне БД? Покажите пример реализации чего-нибудь с помощью ООП в БД, если Вас не затруднит...


А, например, вот здесь

класс Document

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
include=System\Object.sql
include=System\Module.sql
include=System\Application.sql
include=Subjects\Person.sql
go

exec Folder 'Root.Docs', 'Документы'
go

exec Class 'Document', 'Object', 'Абстрактный документ', 0
  exec Field 'Number', 'String', 'Номер', 'null'
  exec Field 'Date', 'Date', 'Дата', 'null'
  exec Field 'Manager', 'Person', 'Менеджер', 'null^Folder=Root.Refs.Subjects.Persons'
  exec Field 'BaseDoc', 'Document', 'Документ-основание', 'null^Folder=Root.Docs'
  exec Action 'Print', 'Распечатать'
  --exec Event 'Register', 'Регистрация документа'
exec Compile
go

create procedure Document_GetDefaultRegistrator
as
  set nocount on
  select distinct 
         a.DocRegisterOID,
         a.DocRegisterName,
         a.DocRegisterClass
    from VModule_Users u
           join
         VApplication a
           on a.OID = u.OID
    where u.UserOID = dbo.CurrentUser()
go

create procedure Document_GetChildDocs
  @OID OID
as
  set nocount on
  select t.*
    from VTree t
           join
         VClassTree ct
           on ct.BaseClass = t.Class
           and ct.Class = 'Document'
    where t.ParentOID = @OID
      and t.HierarchyOID = (select OID from VHierarchy where Ext = 'Documents')
go

create procedure Document_Register
  @OID OID
as
  set nocount on
  declare @EventOID OID
  
  select @EventOID = OID from VEvent where Ext = 'Register'
  exec Event_Throw @EventOID, @OID
go



Операционный документ
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
include=Docs\Document.sql
include=Refs\Currency.sql
include=Things\Thing.sql
go

exec Class 'OperDoc', 'Document', 'Операционный документ', 0
  exec Field 'Agent', 'Subject', 'Юридическое лицо', 'Folder=Root.Refs.Subjects'
  exec Field 'Counter', 'Subject', 'Контрагент', 'null^Folder=Root.Refs.Subjects'
  exec Field 'Currency', 'Currency', 'Валюта', 'null^Folder=Root.Refs.Currencies'
  exec Field 'Summa', 'Money', 'Сумма', 'null'
  exec Field 'SummStr', 'String', 'Сумма Прописью', 'null'
  exec Field 'Comments', 'MaxString', 'Комментарий', 'null'
  exec SubTable 'Things' , 'Товары и услуги'
    exec Field 'RowID', 'Integer', '', 'Identity(1, 1) Key'
    exec Field 'Thing', 'Thing', 'Объект учета', 'Key^Folder=Root.Refs.Things'
    exec Field 'Agent', 'Subject', 'Субагент', 'null^Folder=Root.Refs.Subjects'
    exec Field 'Counter', 'Subject', 'Субконтрагент', 'null^Folder=Root.Refs.Subjects'
  exec SubTable 'Measures', 'Измерения'
    exec Field 'RowID', 'Integer', '', 'Key'
    exec Field 'Measure', 'Measure', 'Измерение', 'Key^Folder=Root.Refs.Measures'
    exec Field 'Unit', 'Unit', 'Ед. изм.', 'Folder=Root.Refs.Units'
    exec Field 'Quantity', 'Money', 'Количество'
  exec SubTable 'Operations', 'Операции'
    exec Field 'Operation', 'Operation', '', 'Key^Folder=Root.System.Operations'
exec Compile
go

create procedure OperDoc_Transact
  @OID OID
as
  set nocount on
  declare @TransactionOID OID,
          @Err            int
          
  declare Walker cursor local fast_forward for
    select TransactionOID
      from TOperDoc_Transactions
      where OID = @OID
      
  open Walker
    fetch next from Walker into @TransactionOID
    while @@fetch_status = 0
    begin
      exec @Err = Transaction_Execute @TransactionOID, @OID
      if @Err <> 0 return 1
      fetch next from Walker into @TransactionOID
    end
  close Walker
  deallocate Walker
go

create procedure OperDoc_Transact
  @OID         OID,
  @RegisterOID OID
as
  set nocount on
  declare @Date            datetime,
          @AgentOID        OID,
          @CounterOID      OID,
          @TranID          int,
          @MeasureOID      OID,
          @UnitOID         OID,
          @ThingOID        OID,
          @Err             int,
          @Quantity        int,
          @DebitOID        OID,
          @CreditOID       OID,
          @RowID           int
  
  select @Date        = dbo.Date(Date),
         @AgentOID    = AgentOID,
         @CounterOID  = CounterOID
    from VOperDoc 
    where OID = @OID
    
  declare Things cursor local fast_forward for
    select t.RowID, t.ThingOID, isnull(t.AgentOID, @AgentOID), isnull(t.CounterOID, @CounterOID)
      from TOperDoc_Things t
      where t.OID = @OID
      
  open Things
    fetch next from Things into @RowID, @ThingOID, @AgentOID, @CounterOID
    while @@fetch_status = 0
    begin
      exec @Err = Register_AddTran @RegisterOID, @OID, @Date, @AgentOID, @CounterOID, @ThingOID, @TranID output
      if @Err <> 0 return 1
      
      declare Measures cursor local fast_forward for
        select m.MeasureOID, m.UnitOID, m.Quantity
          from TOperDoc_Measures m
          where m.OID = @OID 
            and m.RowID = @RowID
            
      open Measures
        fetch next from Measures into @MeasureOID, @UnitOID, @Quantity
        while @@fetch_status = 0
        begin
          exec @Err = Register_AddMeasure @RegisterOID, @TranID, @MeasureOID, @UnitOID, @Quantity
          if @Err <> 0 return 1
          fetch next from Measures into @MeasureOID, @UnitOID, @Quantity
        end
      close Measures
      deallocate Measures
      
      declare Accounts cursor local fast_forward for
        select a.DebitOID, a.CreditOID
          from TOperDoc_Accounts a
          where a.OID = @OID
            and a.RowID = @RowID
            
      open Accounts
        fetch next from Accounts into @DebitOID, @CreditOID
        while @@fetch_status = 0
        begin
          exec @Err = Register_AddCorresponse @RegisterOID, @TranID, @DebitOID, @CreditOID
          if @Err <> 0 return 1
          fetch next from Accounts into @DebitOID, @CreditOID
        end
      close Accounts
      deallocate Accounts
            
      fetch next from Things into @RowID, @ThingOID, @AgentOID, @CounterOID
    end
  close Things
  deallocate Things
go
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175508
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или вот простой справочник без дополнительных полей

Код: sql
1.
2.
3.
exec Class 'Bank', 'Company', 'Банк' 
exec Compile
GO




Справочник посложнее

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
include=Subjects\Subject.sql
go

exec Folder 'Root.Refs.Subjects.Departments', 'Подразделения'
go

exec Class 'Department', 'Subject', 'Отдел'
  exec SubTable 'Positions', 'Должности'
    exec Field 'Position', 'Position', 'Должность', 'Key'
exec Compile
go

create procedure Department_Staffs_Select
  @OID  OID,
  @Date datetime = null
as
  set nocount on
  
  set @Date = isnull(@Date, dbo.ToDay())
  
  select distinct
         StaffOID = s.OID,
         StaffName = s.Name,
         StaffClass = s.Class,
         s.PositionOID,
         s.PositionName,
         s.PositionClass,
         sh.PersonOID,
         sh.PersonName,
         sh.PersonClass,
         s.ParentOID,
         s.ParentName,
         s.ParentClass,
         ss.StateOID,
         ss.StateName,
         ss.StateClass
    from VTreePath tp
           join
         VDepartment d
           on d.OID = tp.ChildOID
           join
         VStaff s
           on s.DepartmentOID = d.OID
           join
         VStaff_States ss
           on ss.OID = s.OID
           and ss.Date = (select max(Date)
                            from VStaff_States
                            where OID = ss.OID
                              and Date <= @Date)
           join
         VStaff_History sh
           on sh.OID = s.OID
           and sh.Date = (select max(Date)
                            from VStaff_History
                            where OID = sh.OID
                              and Date <= @Date)
    where tp.ParentOID = @OID
      and tp.HierarchyOID = (select OID from VHierarchy where Ext = 'Legal')
go
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175630
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

две OpenDoc_Transact с одинаковым именем как в БД появятся?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175634
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

может простынки кода прятать под маленький аккуратный плюсик? Или дать ссылку на репозиторий :)
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175705
ДжекНепотрошитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick
класс Document

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
include=System\Object.sql
include=System\Module.sql
include=System\Application.sql
include=Subjects\Person.sql
go

exec Folder 'Root.Docs', 'Документы'
go

exec Class 'Document', 'Object', 'Абстрактный документ', 0
  exec Field 'Number', 'String', 'Номер', 'null'
  exec Field 'Date', 'Date', 'Дата', 'null'
  exec Field 'Manager', 'Person', 'Менеджер', 'null^Folder=Root.Refs.Subjects.Persons'
  exec Field 'BaseDoc', 'Document', 'Документ-основание', 'null^Folder=Root.Docs'
  exec Action 'Print', 'Распечатать'
  --exec Event 'Register', 'Регистрация документа'
exec Compile
go


Понятно. Чем это лучше create table, кроме возможности указания заголовков для полей? И как этот механизм позволяет управлять оптимизацией запросов, например?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175737
Фотография Amberit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

Ок, спасибо за пример, давайте рассмотрим Ваш подход. К сожалению, я ни разу не спец в Transact-SQL, поэтому некоторые вещи мог неверно истолковать исходя из моих знаний ORACLE. Давайте рассмотрим Ваш подход к работе со справочниками.

Безотносительно к БД, необходимо совершать следующие действия над ними: просмотр, добавление, изменение, удаление элементов справочника.

1. Просмотр. У Вас реализован - ОК.
2. Добавление новой записи - НЕТ.
3. Редактирование существующей записи - НЕТ.
4. Удаление существующей записи - НЕТ.
5. Проверки при добавлении, редактировании, удалении - НЕТ.
6. Управление правами доступа к элементам справочника (в т.ч. на уровне строк) - НЕТ (или не применяется).
7. Логгирование действий со справочником (история изменений) - НЕТ (или не применяется).
8. Для особо критичных справочников - использование верификации (один вводит, другой подтверждает) - НЕТ (или не применяется).

Итого - приведенный пример неполон, т.к. не показана реализация основных действий со справочником. Или эти моменты у Вас реализованы не на стороне БД, а на стороне клиентского приложения (WEB-сервера)?

Из-за того, что вся информация о данных справочников хранится в строго ограниченном перечне таблиц, вытекает следующее:
1. Невозможность использования внешних ключей в принципе. Т.е., например, при удалении записи из справочника нужно дополнительно прописывать проверку, что для этой записи нет зависимостей и ее можно удалять. Иначе получим неконсистентные данные в БД.
2. Непонятно, как организовано хранение данных разных типов. Все приводится к строчному типу? Или какому-нибудь абстрактному типу а-ля ANYDATA в ORACLE?
3. По структуре БД нельзя обнаружить зависимости, вся логика находится в обрабатывающих процедурах.
4. Невозможность (затруднительность) использования триггеров/ограничений БД, т.к. их логика, судя по всему, будет сильно запутанна.
5. Скорее всего, ваша БД жестко привязана только к одному приложению. Использование БД с другим приложением потребует клонирования функционала.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175745
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld Nick,

две OpenDoc_Transact с одинаковым именем как в БД появятся?

Почему две то? Одна. При повторной загрузке в БД делается alter. Только это всё не ручками, а через программу SQLEditor.exe
Эту программу я написал сам для своих нужд и теперь не парясь пишу create table, create view, create procedure и т.д. Программа сама отслеживает есть объект в базе или нет и если есть, то меняет слово CREATE на ALTER
Для таблиц механизм сложнее. Таблица пересоздается не теряя данные.

Очень удобно знаете ли заливать целиком проект в базу не думая какая при этом текущая структура. После заливки структура становится по последней версии. И данные не трогаются. При этом всём целостное обновление структуры происходит в транзакции и если хоть где-то происходит ошибка или нестыковка, то происходит откат версии и пользователи ничего не замечают
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175753
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДжекНепотрошительOld Nickкласс Document

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
include=System\Object.sql
include=System\Module.sql
include=System\Application.sql
include=Subjects\Person.sql
go

exec Folder 'Root.Docs', 'Документы'
go

exec Class 'Document', 'Object', 'Абстрактный документ', 0
  exec Field 'Number', 'String', 'Номер', 'null'
  exec Field 'Date', 'Date', 'Дата', 'null'
  exec Field 'Manager', 'Person', 'Менеджер', 'null^Folder=Root.Refs.Subjects.Persons'
  exec Field 'BaseDoc', 'Document', 'Документ-основание', 'null^Folder=Root.Docs'
  exec Action 'Print', 'Распечатать'
  --exec Event 'Register', 'Регистрация документа'
exec Compile
go


Понятно. Чем это лучше create table, кроме возможности указания заголовков для полей? И как этот механизм позволяет управлять оптимизацией запросов, например?

Заметьте что тут есть процедура Compile. Она по вновь созданным или измененным метаданным начинает создавать или пересоздавать

1. Таблицы
2. Вьюхи с instead of triggers
3. Хранимые процедуры выборки, вставки, изменения, удаления
4. Разные вспомогательные объекты

Оптимизировать такие процедуры нет необходимости. Остальные методы классов и объектов это всего лишь хранимки на T-SQL
Они пишутся обычным текстом и там если нужно то оптимизируется.

Снаружи доступ есть только к вьюхам. Таблицы не видны - это и есть инкапсуляция.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175759
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДжекНепотрошительЧем это лучше create table, кроме возможности указания заголовков для полей?
там суть не в заголовках похоже. В приведенном примере обратите внимание на а-ля типы данных Person, Document:

Код: sql
1.
2.
  exec Field 'Manager', 'Person', 'Менеджер', 'null^Folder=Root.Refs.Subjects.Persons'
  exec Field 'BaseDoc', 'Document', 'Документ-основание', 'null^Folder=Root.Docs'



просто по какой-то причине OldNick не комментирует то, что показывает... только потому что нечто подобным занимался в начале 90-х в unix, была гипертекстовая СУБД, направление мыслей ТС понятно.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175771
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В результате у меня полноценная ООП - система с наследованием, инкапсуляцией, полиморфизмом, где сущность - это не класс в каком либо языке, а совокупность таблиц, вьюх, хранимок, метаданных, классов, форм и т.д. Сущность проходит через всю систему насквозь. От БД через АппСервер до интерфейса.

И примечательно то, что логика обрабатывается через ООП, а данные через SQL
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175780
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmДжекНепотрошительЧем это лучше create table, кроме возможности указания заголовков для полей?
там суть не в заголовках похоже. В приведенном примере обратите внимание на а-ля типы данных Person, Document:

Код: sql
1.
2.
  exec Field 'Manager', 'Person', 'Менеджер', 'null^Folder=Root.Refs.Subjects.Persons'
  exec Field 'BaseDoc', 'Document', 'Документ-основание', 'null^Folder=Root.Docs'



просто по какой-то причине OldNick не комментирует то, что показывает... только потому что нечто подобным занимался в начале 90-х в unix, была гипертекстовая СУБД, направление мыслей ТС понятно.

Manager - Имя поля
Person - тип поля - объектный
Менеджер - Caption - отображается в заголовках грида или в Label полей
А дальше допатрибуты через ^
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175783
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickiscrafmOld Nick,

две OpenDoc_Transact с одинаковым именем как в БД появятся?

Почему две то? Одна. При повторной загрузке в БД делается alter.
это я спросил по результатам просмотра этого кода: 14017688 Тогда где хранится приведенный в том сообщении код с OpenDoc_Transact в двух ипостасях? Просто в тексте где-то? Типа регистрируется информация для метаданных в служебных таблицах, а затем при помощи Compile по этой информации создаются уже реальные объекты БД, описание которых находится в этих же служебных таблицах или файлах. Так?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175806
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld Nickпропущено...


Почему две то? Одна. При повторной загрузке в БД делается alter.
это я спросил по результатам просмотра этого кода: 14017688 Тогда где хранится приведенный в том сообщении код с OpenDoc_Transact в двух ипостасях? Просто в тексте где-то? Типа регистрируется информация для метаданных в служебных таблицах, а затем при помощи Compile по этой информации создаются уже реальные объекты БД, описание которых находится в этих же служебных таблицах или файлах. Так?

Прошу прощения, не тот код скопировал. Код устаревший, не из той папки взял пример.
В данном случае вторая процедура перекрывает первую.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175809
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm,

Всё верно. Чуть выше я написал про Compile
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175918
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

если не секрет:
1. это все тобой одним разрабатывается/поддерживается? или командой? в течение какого срока?
2. для скольких разных систем (не вариаций одной) используется этот подход?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38175963
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickiscrafm,

Всё верно. Чуть выше я написал про Compile
т.е. это по сути стиль описания объектов СУБД, при помощи Compile подготовленный исходник преобразуется в "понятные" для реляционной СУБД объекты. Расскажите как изменения вносите, тоже в "исходник", а Compile соответственно изменяет объекты СУБД? К рассогласованиям как относитесь? К примеру разработчик открыл студию и внес изменения руками, минуя "компилируемый" исходник. По сути внес изменения в EXE-файл. Что предлагается делать? Обратная генерация исходника предусмотрена, типа DeCpmpile?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176070
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawOld Nick,

если не секрет:
1. это все тобой одним разрабатывается/поддерживается? или командой? в течение какого срока?
2. для скольких разных систем (не вариаций одной) используется этот подход?

В более-менее похожем виде я начал применять с 2008. Всё постепенно эволюционируется.

На этом движке была создана система документооборота для компании ЗАО "Веда", клиент на Delphi. 2007 год (В одиночку)
Затем складской учет для Аксель-Моторс, трехзвенка .NET (AppServer на Веб-методах) 2008 год (С одним помощником)
Аукционный портал www.ets24.ru, PHP / MS SQL, правда генератор кода я не использовал, вручную сущности создавались.
2010-11 Команда человек 5, я был архитектором и разработчиком PHP и SQL
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176086
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld Nickiscrafm,

Всё верно. Чуть выше я написал про Compile
т.е. это по сути стиль описания объектов СУБД, при помощи Compile подготовленный исходник преобразуется в "понятные" для реляционной СУБД объекты. Расскажите как изменения вносите, тоже в "исходник", а Compile соответственно изменяет объекты СУБД? К рассогласованиям как относитесь? К примеру разработчик открыл студию и внес изменения руками, минуя "компилируемый" исходник. По сути внес изменения в EXE-файл. Что предлагается делать? Обратная генерация исходника предусмотрена, типа DeCpmpile?

Повторюсь. Коды пишу в текстовом файле с расширением .sql, для каждого класса свой файл. В качестве редактора использую свою собственную программу SQLEditor.
Версионности нет, после каждой компиляции получаю последнюю версию, причем целиком, одним пакетом. Генерация и перегенерация кода происходит в транзакции. Поэтому либо целиком принимается, либо целиком откатывается.
Если кто-то что-то в базе ручками поменяет, то после компиляции всё это будет потеряно, поэтому менять надо только в исходниках, исходники подключены к SVN.
Обратная генерация не предусмотрена, т.к. необходимости не было.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176208
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickВ результате у меня полноценная ООП - система с наследованием, инкапсуляцией, полиморфизмом, где сущность - это не класс в каком либо языке, а совокупность таблиц, вьюх, хранимок, метаданных, классов, форм и т.д. Сущность проходит через всю систему насквозь. От БД через АппСервер до интерфейса.

И примечательно то, что логика обрабатывается через ООП, а данные через SQL
Точно такая же хрень реализована в ЦФТ. Там тоже в в доке упирают на то что ооп везде. И те же аргументы что и вы приводят. Так что вы не первый. И если смотреть по результатам то ваще-то они круче. У них клиенты пожирнее чем у вас.
А по моим личным ощущениям, система для типо быстрого лабания функциональности. А в сопровождении и развитии те же грабли, что и везде. И основная проблема - это то что без автора хрен кто поймет, что там наваял этот гений. Причем, уровень ЦФТ и ваш несопоставим.

Old NickКоды пишу в текстовом файле с расширением .sql, для каждого класса свой файл. В качестве редактора использую свою собственную программу SQLEditor.
И чем это легче простого написания DDL скрипта? Или, вообще, визуального редактора, где мышкой можно накликать создание табличек?
Впрочем это я в мелочи скатываюсь.

А вообще, ну сделали вы свою штучку. Ну и продайте ее за мегабаксы. Если кому понадобится, конешно.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176228
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nick,

У нас в Виртуозе в полный рост сделан create type. Новый тип создаётся на выбор "только для объектов в памяти" или "хранитсяв таблице", с наследованием и с функциями-членами в виде хранимок, явовских функций, перловых, пэхапэшныъ и ещё всяких. Никаких внешних утилит для этого, просто через ODBC или ещё что отправляется на сервер, точно так же, как create table или любой другой запрос.

И знаете результат? Это _очень_ мало используемая фича.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176252
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruOld Nick,

У нас в Виртуозе в полный рост сделан create type. Новый тип создаётся на выбор "только для объектов в памяти" или "хранитсяв таблице", с наследованием и с функциями-членами в виде хранимок, явовских функций, перловых, пэхапэшныъ и ещё всяких. Никаких внешних утилит для этого, просто через ODBC или ещё что отправляется на сервер, точно так же, как create table или любой другой запрос.

И знаете результат? Это _очень_ мало используемая фича.

Вы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодирования
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176257
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодированияБольшинство программистов, разработавших какой-нибудь фреймворк плохо представляют как без этого разработку вести. Оценить фреймворк можно только если его сторонние программисты используют.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176270
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И опять всё скатилось к инструменту. Люди, вы не понимаете о чем речь.

Я не агитирую за инструмент, которым я пользуюсь. Можно и без него делать. Я про технологию.
Технология это разработка в ООП стиле. Можно все скрипты ручками писать. Можно в Power Designer делать.
Можно из Visual Studio генерировать. Какая разница то? Если вы заметили, то по всем трем системам, которые сделал с этой базой клиенты были на разных языках написаны. Принципа это не изменило.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176273
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyOld NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодированияБольшинство программистов, разработавших какой-нибудь фреймворк плохо представляют как без этого разработку вести. Оценить фреймворк можно только если его сторонние программисты используют.

Причем здесь фреймворк? У меня нет фреймворка.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176275
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или ООП это фреймворк?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176288
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодирования
Посадить бы тебя сопровождать и развивать чужой ООП-код, который наваяли фанаты ооп, фаулера и прочего г-на. Туда, где логика простейшего crud размазана по куче классов и лэйеров. И ведь все в соответствии с канонами ооп.
А свой то код любой дурак сопровождать могет.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176300
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickА я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодирования

Можно привести какие-то объективные метрики, на основе чего сделан вывод о "десятикратном увеличении кодирования"? Или привести показательный пример?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176309
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакOld NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодирования
Посадить бы тебя сопровождать и развивать чужой ООП-код, который наваяли фанаты ооп, фаулера и прочего г-на. Туда, где логика простейшего crud размазана по куче классов и лэйеров. И ведь все в соответствии с канонами ооп.
А свой то код любой дурак сопровождать могет.

Вы же юзаете NHibernate
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176313
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Аукционный портал www.ets24.ru

Этой работой вы гордитесь, надо понимать?

Две очень простых задачи для оценки практической пригодности ваших "объектов".
1. Опишите все лавки, имеющие отношение к Philips, включая участие в акционерном капитале, но не ограничиваясь им.
Газеты какие-нибудь читаете? Наверное, слышали про Hermitage Capital?
2. Опишите структуру Hermitage Capital для российского рынка. Опишите претензии к Hermitage Capital.

Интересен не псевдокод, а реальный ddl, соответствующий решению обеих задач, сгенерированный вашими волшебными "объектами".
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176314
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакOld NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодирования
Посадить бы тебя сопровождать и развивать чужой ООП-код, который наваяли фанаты ооп, фаулера и прочего г-на. Туда, где логика простейшего crud размазана по куче классов и лэйеров. И ведь все в соответствии с канонами ооп.
А свой то код любой дурак сопровождать могет.

И кстати, я сопровождал и развивал такие системы. Это сказка. Всё предсказуемо и понятно. Пару строчек кода и новая функциональность. Что в этом плохого?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176316
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_20040621> Аукционный портал www.ets24.ru

Этой работой вы гордитесь, надо понимать?

Две очень простых задачи для оценки практической пригодности ваших "объектов".
1. Опишите все лавки, имеющие отношение к Philips, включая участие в акционерном капитале, но не ограничиваясь им.
Газеты какие-нибудь читаете? Наверное, слышали про Hermitage Capital?
2. Опишите структуру Hermitage Capital для российского рынка. Опишите претензии к Hermitage Capital.

Интересен не псевдокод, а реальный ddl, соответствующий решению обеих задач, сгенерированный вашими волшебными "объектами".

Ты идиот?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176323
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawOld NickА я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодирования

Можно привести какие-то объективные метрики, на основе чего сделан вывод о "десятикратном увеличении кодирования"? Или привести показательный пример?

Полгода назад взял подработку. Сделал АРМ для инвентаризации на основе RFID меток. Задача была спроектирована до меня. Естественно как у всех. Времени было всего 20 дней, некогда было применять свои плюшки. Любой чих приходилось многократно прописывать. Больше за такое не возьмусь
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176355
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Городить какую-то "ООП" поверх РСУБД, мое личное мнение, не даст прироста эффективности разработки (бросьте в меня помидор):

1. Есть предметная облать. Если она сложная - то простой она не станет ни при ООП стиле, ни при каком другом.
2. Реализация отражает предметную область по определению. Упростить её тоже не получится.
3. Загонять реализацию в какие-то искуственные рамки универсальных кодогенераторов, шаблонов (ООП или нет - не важно) - рано или поздно приведет к необходимости расширения рамок, переписванию ядер
4. Использование самодельной прикладной технологии/инфраструктуры, построенной поверх стандартной, приведет к:
- необходимости дополнительного обучения членов команды (текучку никто не отменял)
- необходимости поддержания этой технологии, которая будет обрастать множеством мелких костылей, выходящих за её первоначальный мэйнстрим
- сильной зависимости от автора инфраструктуры
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176356
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дружище, вам пытаются деликатно сказать о том, что ваши говноподелки к реальным задачам не имеют никакого отношения. Вам просто повезло с тем, что вы решали простые криво поставленные задачи.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176364
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickkmawпропущено...


Можно привести какие-то объективные метрики, на основе чего сделан вывод о "десятикратном увеличении кодирования"? Или привести показательный пример?

Полгода назад взял подработку. Сделал АРМ для инвентаризации на основе RFID меток. Задача была спроектирована до меня. Естественно как у всех. Времени было всего 20 дней, некогда было применять свои плюшки. Любой чих приходилось многократно прописывать. Больше за такое не возьмусь
у вас было целых 20 дней, для того, чтобы сделать один АРМ инвентаризации. И при этом некогда было "применять свои плюшки". Где тогда описываемое увеличение производительности?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176375
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickЛюбой чих приходилось многократно прописывать. Больше за такое не возьмусь - из этих "чихов" и складывается в итоге то, что называют "сложностью"
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176379
ДжекНепотрошитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawГородить какую-то "ООП" поверх РСУБД, мое личное мнение, не даст прироста эффективности разработки (бросьте в меня помидор):

Вот и я к чему веду. Этот фреймворк позволяет легко автоматизировать простые задачи... но при любом более-менее сложном случае мы упремся в те или иные ограничения фреймворка, и работа по его адаптации многократно съест все его преимущества.
Оно автоматом генерирует процедуры на вставку/удаление/обновление, а также вьюхи? Отлично. А что делать, если сгенерированная автоматом структура впадает в клинч на имеющихся данных, т.к. нужно править планы запросов и делать индексы?
А кто целостность данных там будет гарантировать? А где расширенную бизнес-логику писать? В объектах - низзя, оно ж их перегенерирует. Снаружи? Тогда в чем смысл такого "ООП"?
А документирование этого добра? Ведь мы могли бы иметь схему БД в каком-нибудь PowerDesigner'e, которая сама по себе является наглядной документацией, и отличным инструментом для сопровождения базы.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176384
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawГородить какую-то "ООП" поверх РСУБД, мое личное мнение, не даст прироста эффективности разработки (бросьте в меня помидор)
за что бросать помидорами? Правильно сказали.

p.s. есть разные подходы к проектированию и разработке в целом. Часто приходится общаться с разработчиками на тему каких-то хитрых алгоритмов ловли и индикации ошибок. На что я обычно говорю: вместо выдачи на гора километров кода сделайте так, чтобы пользователь не допускал ошибок. Например, не нужно, образно, давать пользователю на выбор для указания размерности товара возможность выбора единицы веса, а потом писать километры проверок и множество сообщений об ошибках. Сделайте так, чтобы их не было.
Так же и здесь. Нужно придумывать не возможности для более простого кодирования, а придумывать способы его сокращения.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176429
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДжекНепотрошительkmawГородить какую-то "ООП" поверх РСУБД, мое личное мнение, не даст прироста эффективности разработки (бросьте в меня помидор):

Вот и я к чему веду. Этот фреймворк позволяет легко автоматизировать простые задачи... но при любом более-менее сложном случае мы упремся в те или иные ограничения фреймворка, и работа по его адаптации многократно съест все его преимущества.
Оно автоматом генерирует процедуры на вставку/удаление/обновление, а также вьюхи? Отлично. А что делать, если сгенерированная автоматом структура впадает в клинч на имеющихся данных, т.к. нужно править планы запросов и делать индексы?
А кто целостность данных там будет гарантировать? А где расширенную бизнес-логику писать? В объектах - низзя, оно ж их перегенерирует. Снаружи? Тогда в чем смысл такого "ООП"?
А документирование этого добра? Ведь мы могли бы иметь схему БД в каком-нибудь PowerDesigner'e, которая сама по себе является наглядной документацией, и отличным инструментом для сопровождения базы.

Один мой знакомый сделал то же самое в PowerDesigner. Сущности оформлял в виде классов, а код генерировал на VB.
Я еще раз повторюсь, что дело не в инструменте, а в наличии мозгов. Если есть мозги, то можно весь код ручками сделать, а если мозгов нет, то и Visual Studio не поможет.

По поводу жесткости фреймворка.

Во-первых я могу его использовать, а могу и не использовать, то есть писать ручками. Конечный результат от этого не меняется.
Во-вторых у меня всегда есть возможность ручной правки кода поверх сгенерированного на всякий особый случай.

Я ж говорю, если не хватает мозгов и опыта, то инструмент то тут при чём?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176435
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld Nickпропущено...


Полгода назад взял подработку. Сделал АРМ для инвентаризации на основе RFID меток. Задача была спроектирована до меня. Естественно как у всех. Времени было всего 20 дней, некогда было применять свои плюшки. Любой чих приходилось многократно прописывать. Больше за такое не возьмусь
у вас было целых 20 дней, для того, чтобы сделать один АРМ инвентаризации. И при этом некогда было "применять свои плюшки". Где тогда описываемое увеличение производительности?

Проблема была в том, что не я один работал надо проектом. Была еще команда, которая писала код для терминала сбора данных. И чтобы поменять структуру таблиц на ООП стиль, пришлось бы согласовывать с ними. Я по опыту я знаю, что даже несколько лет недостаточно, чтобы люди поняли что такое ООП и как его применять. Вот даже тут на форуме пока еще никто не понял :-)
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176439
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickЯ по опыту я знаю, что даже несколько лет недостаточно, чтобы люди поняли что такое ООП и как его применять. Вот даже тут на форуме пока еще никто не понял :-)
точно уверены что никто не понял что такое ООП? После таких высказываний нить серьезного разговора теряется.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176441
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большинство программистов имя в руках объектно-ориентированный язык не могут объектно-ориентированно проектировать и программировать.

Я могу программировать объектно-ориентированно на любом языке программирования, даже на необъектно-ориентированных языках, таких как T-SQL или FoxPro 2.5 или любом процедурном.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176445
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmOld NickЯ по опыту я знаю, что даже несколько лет недостаточно, чтобы люди поняли что такое ООП и как его применять. Вот даже тут на форуме пока еще никто не понял :-)
точно уверены что никто не понял что такое ООП? После таких высказываний нить серьезного разговора теряется.

А с кем тут серьёзно то разговаривать? :-)
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176446
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickПричем здесь фреймворк? У меня нет фреймворка.

Или ООП это фреймворк?ООП - это подход, а ваша поделка (exec Class, exec Field, exec Compile и т.п) - это фреймворк. Можете заглянуть на википедию - там определение слова фреймворк написано.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176453
Фотография Old Nick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bogdanov AndreyOld NickПричем здесь фреймворк? У меня нет фреймворка.

Или ООП это фреймворк?ООП - это подход, а ваша поделка (exec Class, exec Field, exec Compile и т.п) - это фреймворк. Можете заглянуть на википедию - там определение слова фреймворк написано.

Еще раз поясню для особо талантливых. Я могу сделать то же самое ни разу не написав exec Class
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176459
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickiscrafmпропущено...

точно уверены что никто не понял что такое ООП? После таких высказываний нить серьезного разговора теряется.

А с кем тут серьёзно то разговаривать? :-)
понятно. Вы форумом ошиблись.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176465
Bogdanov Andrey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickЕще раз поясню для особо талантливых. Я могу сделать то же самое ни разу не написав exec ClassДля особо непонятливых я дал ссылку на вики. Но если вы не хотите называть свою поделку фреймворком - это ваше дело.
Фреймворк мог бы быть единственным ценным, что вы могли бы предложить здешней общественности. Но если у вас даже фреймворка нет, то говорить вообще не о чем. Просто мысль "а давайте работать эффективно" никакой ценности не представляет и обсуждать ее бессмысленно.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176479
ДжекНепотрошитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickЯ могу программировать объектно-ориентированно на любом языке программирования, даже на необъектно-ориентированных языках, таких как T-SQL или FoxPro 2.5 или любом процедурном.
ОК, мы это поняли. И какова ценность всего этого? В чем преимущество объектно-ориентированного подхода к работе с СУБД? ООП - это средство более удобной организации кода для построения сложных приложений. Это единственный смысл существования ООП. Если упрощения не наблюдается, оно становится вещью в себе. Где здесь упрощение?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176485
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickПроблема была в том, что не я один работал надо проектом. Была еще команда, которая писала код для терминала сбора данных. И чтобы поменять структуру таблиц на ООП стиль, пришлось бы согласовывать с ними.

это - явный минус подхода: его никто, кроме автора, в команде не использует (есть, наверное, причины). распараллелить нормально задачи не получится, договоренности между разрабами - нет, а это уже объективная причина срыва срока и/или ухудшения качества нарисовывается. как объяснять руководству, что ресурсов дали - а эффективности не добавилось?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176538
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickiv_an_ruOld Nick,

У нас в Виртуозе в полный рост сделан create type. Новый тип создаётся на выбор "только для объектов в памяти" или "хранится в таблице", с наследованием и с функциями-членами в виде хранимок, явовских функций, перловых, пэхапэшныъ и ещё всяких. Никаких внешних утилит для этого, просто через ODBC или ещё что отправляется на сервер, точно так же, как create table или любой другой запрос.

И знаете результат? Это _очень_ мало используемая фича.

Вы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодированияВ случае с CREATE TYPE причина КМК в другом. Это попытка то ли классы упростить до таблиц, то ли таблицы усложнить до классов. В результате - не рыба, не мясо, поэтому и не пользуются. Про это и Дейт много пишет и наш Кузнецов( http://citforum.ru/database/articles/sql_odmg/). Это не в коем случае не претензия к Виртуозе(!), а общая фича объектно-реляционных СУБД. Приставки "объектно-" совсем не стоит воспринимать как синоним ОО в широком смысле (кстати, когда читаешь их гайды и мануалы, то слово объект встречается редко, а сочетание "объетно-ориентированый вообще не найдешь"). И, применительно к ОРСУБД, не стоит говорить, что не научились пользоваться. Скорее, если мы хотим реализовать привычное ООП, то в ОРСУБД мало средств (и приходится изобретать свои велосипеды) а "объектность ОРСУБД" мало кому нужна.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176539
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kmawэто - явный минус подхода
там явный минус заключается даже в другом совершенно.
Наследование - не что иное как простые FK на лишние таблицы
Инкапсуляция - не что иное как банальное сокрытие из зоны видимости таблиц и работа через View
Полиморфизм - не что иное как IF THEN
...
Т.е. автору просто хочется думать, что он построил что-то объектно-ориентированное.
Естественно все это построение имеет и массу вытекающих из него недостатков.
Например наследование:
В таблице TObject хранится наименование, в таблице TPerson хранится вес пациента. Чтобы получить данные о пациенте естественно необходимо связывать 2 таблицы, вместо банального чтения из одной. Это просто самый банальный пример. Чем глубже иерархия наследования, тем более монстрообразная и неустойчивая вся эта конструкция. Точно также и с "полиморфизмом". Вместо банального вывода допустим имени объекта, описание которого хранится в какой-либо таблице, делается что:
-дополнительно создаются процедуры, в которых при помощи IF..THEN, образно, программно вызывается нужная, учитывая переданный параметр. Примерно: showmessage(ID) Если ID = 2 то "я человек", иначе - "непонятно кто". И все это вместо простого вызова showmessage('я человек') и т.п.
Подробнее...

p.s. как сторонник шаблона проектирования K.I.S.S. я, честно говоря, аж поперхнулся. Не со зла конечно, просто по-доброму.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176542
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafm Подробнее ...
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176592
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Old Nick
Как тут заметили, все этим баловались, большинство бросило, некоторые нет. Я сейчас перезентуху отрабатываю ("на кошках"), если есть желание, 1 час времени и ТимВьювер. могу показать, куда это может завести. Скайп в профиле без пробелов.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176600
Vladimir A
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iscrafmp.s. как сторонник шаблона проектирования K.I.S.S. я, честно говоря, аж поперхнулся. Не со зла конечно, просто по-доброму.

K.I.S.S это не шаблон проектирования это "The KISS principle states that most systems work best if they are kept simple rather than made complex..."
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176609
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladimir Aiscrafmp.s. как сторонник шаблона проектирования K.I.S.S. я, честно говоря, аж поперхнулся. Не со зла конечно, просто по-доброму.

K.I.S.S это не шаблон проектирования это "The KISS principle states that most systems work best if they are kept simple rather than made complex..."
ок, принцип. спасибо за поправку, невнимательность. Шаблоны в уме крутились по другому вопросу.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176632
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old Nickiv_an_ruOld Nick,

У нас в Виртуозе в полный рост сделан create type. Новый тип создаётся на выбор "только для объектов в памяти" или "хранитсяв таблице", с наследованием и с функциями-членами в виде хранимок, явовских функций, перловых, пэхапэшныъ и ещё всяких. Никаких внешних утилит для этого, просто через ODBC или ещё что отправляется на сервер, точно так же, как create table или любой другой запрос.

И знаете результат? Это _очень_ мало используемая фича.Вы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести.
Сразу всё упирается в десятикратное увеличение кодированияМы для внутреннего употребления как раз немножко используем. Но СУБД вообще-то делаются для нужд апп-девелоперов, а у них "спрос" на фичу оказался невелик. В итоге основное использование --- быстрое прототипирование абы каких веб-страничек на .vspx (это такой отдалённый аналог .aspx ), в то время как в продакшен в массе своей идут веб-странички на .vsp (то есть сервер для генерации странички тупо зовёт подобающую хранимку ).
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176645
казинак
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот интересно, почему кол-во кодеров ваяющих очередную революционную поделку, и убежденных в своей неповторимости не уменьшается. Ведь достаточно поиском по форуму полазить. Ну или погуглить. Или просто книжки почитать.
Видать, их нетленные велосипеды все свободное и рабочее время съедают.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176655
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
откуда возьмутся новые продукты если их никто не будет "ваять"? Это путь проб и ошибок. Главное в дебри не влазить, хорошо если сразу подскажет кто-то, что это пройденный путь. Не все же являются пользователями продуктов, кто то должен их и создавать.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176656
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакВот интересно, почему кол-во кодеров ваяющих очередную революционную поделку, и убежденных в своей неповторимости не уменьшается.Потому что писать код бизнес-приложения --- скучно.
У меня свой критерий для определения ценности таких самоделок: если автор озаботился удобством подготовки документации 1) с своей тулзе и 2) к коду разрабатываемого приложения и к самому приложению, то надо внимательно смотреть. Представьте себе Страуструпа, который бы ограничился написанием транслятора, и не написал учебники по языку. Да его забыли бы все.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176687
Фотография U-gene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
казинакВот интересно, почему кол-во кодеров ваяющих очередную революционную поделку, и убежденных в своей неповторимости не уменьшается. Ведь достаточно поиском по форуму полазить. Ну или погуглить. Или просто книжки почитать.
Видать, их нетленные велосипеды все свободное и рабочее время съедают....из-за лени. Сначала лень работать по-старинке, потом лень искать. Надо хоть где-нибудь, но напрячься.
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38176798
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old NickБольшинство программистов имя в руках объектно-ориентированный язык не могут объектно-ориентированно проектировать и программировать.

Я могу программировать объектно-ориентированно на любом языке программирования, даже на необъектно-ориентированных языках, таких как T-SQL или FoxPro 2.5 или любом процедурном.
да пофиг ООП твой и РМД
че прогеру надо?
инструмент, который по описания задачи сгенерировал бы работающее приложние. Хорошо бы полностью.
Но, к сожалению полностью не получается.
П трахаться на недоязыках что было ООП :):)
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38186657
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По самодельным фреймворкам/ООП ещё один вопрос:

У обычно меня дело не ограничивается одной средой (предположим, делфи).
Есть же еще, например, отчеты - фаст или кристалл-репорт + эксель с вордом - а это часто не менее 50..60% задачи.
Остаются ли они за рамками общей концепции? Или как-то интегрируются с ней?
...
Рейтинг: 0 / 0
Эффективность разработки ПО
    #38186667
ViPRos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

в ВИПРОС встроен генератор отчетов от девехкспресс, которому подсовывается модель данных в ВИПРОС
...
Рейтинг: 0 / 0
127 сообщений из 127, показаны все 6 страниц
Форумы / Разработка информационных систем [игнор отключен] [закрыт для гостей] / Эффективность разработки ПО
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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