|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Очень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения. Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 14:36 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, Ладно, отвечу сам. Чаще всего встречаешь такую картину. Несколько разработчиков целыми днями напряженно пишут код, много кода, сложные запросы, постоянно их оптимизируют, дебажат код, когда вылазят ошибки. Знакомая картина. И есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Примерно в 10 раз меньше работы, чем в первом случае. Я использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов. Я справлялся с такой задачей не напрягаясь, причем параллельно был архитектором приложения, разработчиком клиентской части, учителем программирования и иногда бизнес-аналитиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 14:52 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, молодец, чё ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 14:55 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, все мы такие были) ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 15:09 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickОчень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения. Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так? еще чаще встречаются конторы, где весь отдел занят весь день. И когда вдруг начинают эффективность измерять..всем становится плохо, потому что 38м квадратных попугаев эффективности пугает даже знатных психоаналитиков. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 15:49 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickИ есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Примерно в 10 раз меньше работы, чем в первом случае. Я использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов. Я справлялся с такой задачей не напрягаясь Это потому, что у тебя работы было мало :) Видишь, вон еще один стотысячный объектно-ориентированный велосипед фреймворк написать успел... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 16:02 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
ДжекНепотрошительOld NickИ есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Примерно в 10 раз меньше работы, чем в первом случае. Я использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов. Я справлялся с такой задачей не напрягаясь Это потому, что у тебя работы было мало :) Видишь, вон еще один стотысячный объектно-ориентированный велосипед фреймворк написать успел... такие мысли часто приходят когда наоборот, много работы, которая отнимает слишком много времени, которое можно потратить на что-более полезное: на себя, семью, другие проекты в конце концов. 10 лет назад, тоже ставил такие вопросы . ... |
|||
:
Нравится:
Не нравится:
|
|||
12.02.2013, 17:52 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickOld Nick, Ладно, отвечу сам. Чаще всего встречаешь такую картину. Несколько разработчиков целыми днями напряженно пишут код, много кода, сложные запросы, постоянно их оптимизируют, дебажат код, когда вылазят ошибки. Знакомая картина. И есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Примерно в 10 раз меньше работы, чем в первом случае. Я использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов. Я справлялся с такой задачей не напрягаясь, причем параллельно был архитектором приложения, разработчиком клиентской части, учителем программирования и иногда бизнес-аналитиком.т.е. в представляемой системе нет ни сложных запросов, ни необходимости в их опитмизации? Нет ошибок и отладок? Хочу туда Хотя нет, не хочу. Скучно )) ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2013, 04:48 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
andreymx, приходилось в математике раскладывать сложную формулу на элементарные составляющие? В разработке информационных систем точно также. Существуют множество подходов. Часть из них - это действительно то, о чем ты и хотел сказать, но говорить об этом действительно скучно. Разработка выполняется по принципу "что вижу, то и пишу", трехэтажные формулы, километровые запросы. Но есть и другие подходы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2013, 11:59 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafm, наверное, я был бы не против попробовать себя в компании с "другими подходами" ... |
|||
:
Нравится:
Не нравится:
|
|||
02.03.2013, 12:25 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
andreymxiscrafm, наверное, я был бы не против попробовать себя в компании с "другими подходами" При таком подходе очень мало тратится ресурсов на программирование и основное время уходит на проектирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 10:01 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
У нас подход далеко не такой. Правда, есть куча наработок. Например, есть система запросов: основной запрос, запросы для выпадающих списков, настройки колонок и подключение по необходимости хранимок, и это всё через админку. Система используется во всех приложениях. Есть и универсальный справочник: приложение, настроенное эту на систему запросов. Подходит под 98% справочников. Обычно для подключения нового надо написать всего пару-тройку-пяток запросов, и всё. Приложение это используется не только для справочников, но и вообще в куче случаев, когда надо организовать срочный/массовый и не сильно сложный табличный ввод. Но до полного ООП не дошли. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 10:26 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
andreymxУ нас подход далеко не такой. Правда, есть куча наработок. Например, есть система запросов: основной запрос, запросы для выпадающих списков, настройки колонок и подключение по необходимости хранимок, и это всё через админку. Система используется во всех приложениях. Есть и универсальный справочник: приложение, настроенное эту на систему запросов. Подходит под 98% справочников. Обычно для подключения нового надо написать всего пару-тройку-пяток запросов, и всё. Приложение это используется не только для справочников, но и вообще в куче случаев, когда надо организовать срочный/массовый и не сильно сложный табличный ввод. Но до полного ООП не дошли. Это вы просто не с той стороны зашли. То что вы сделали вещь полезная и нужная, но не достаточная. Это вы автоматизировали только первый этап - элементы интерфейса Далее нужно автоматизировать второй этап - то есть создать библиотеку сущностей и связать их с элементами интерфейса. В таком случае получите аналог 1С - конструктор. И вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапа ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 10:35 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickОчень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения. Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так? А что это самоцель? Занять имел на 30% ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 10:44 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
MasterZivOld NickОчень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения. Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так? А что это самоцель? Занять имел на 30% В таком случае разработчик БД может быть занят сразу в 3-х проектах. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 11:39 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickИ вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапаТ.е. можно и сразу BPMS внедрить? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 11:57 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickВ таком случае разработчик БД может быть занят сразу в 3-х проектах.у меня все заняты сразу во всех проектах правда, у нас 66% - это сопровождение ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 12:02 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
ShrOld NickИ вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапаТ.е. можно и сразу BPMS внедрить? BPMS - это средство. То, что пишут на Дельфях не обязательно ООП ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 13:26 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
andreymxOld NickВ таком случае разработчик БД может быть занят сразу в 3-х проектах.у меня все заняты сразу во всех проектах правда, у нас 66% - это сопровождение Это очень плохой показатель. Хотя с какой стороны смотреть. Если со стороны собственника вашей компании, то это выгодно, постоянный доход. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 13:27 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickДалее нужно автоматизировать второй этап - то есть создать библиотеку сущностей и связать их с элементами интерфейса. В таком случае получите аналог 1С - конструктор. И вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапа после 2-го этапа, после того как поведетесь на магическую библиотеку каких-то "сущностей" уже ничего не будет. Так что планы на 3-й этап можно не строить. p.s. то что описал andreymx и то что вы приняли за автоматизацию "элементов интерфейса", по какой-то причине, совершенно этим не является. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 13:40 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
andreymxНо до полного ООП не дошли. вам повезло, что не влезли в трясину. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 13:41 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickandreymxпропущено... у меня все заняты сразу во всех проектах правда, у нас 66% - это сопровождение Это очень плохой показатель. Хотя с какой стороны смотреть. Если со стороны собственника вашей компании, то это выгодно, постоянный доход. а с какой стороны еще нужно смотреть на это все? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 13:43 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld Nickпропущено... Это очень плохой показатель. Хотя с какой стороны смотреть. Если со стороны собственника вашей компании, то это выгодно, постоянный доход. а с какой стороны еще нужно смотреть на это все? Ну это хорошо, пока нет конкуренции среди "автоматизаторов". Им сходит с рук даже 3%-ный КПД. Наверное, всё-таки придёт время когда будет конкуренция за клиентов и проиграют те, что не могут настроить технологию разработки ПО. А заказчик будет голосовать рублём. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 14:26 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld NickДалее нужно автоматизировать второй этап - то есть создать библиотеку сущностей и связать их с элементами интерфейса. В таком случае получите аналог 1С - конструктор. И вот только на третьем этапе - когда научитесь автоматизировать бизнес-процессы, получите эффективность разработки на 2(два) порядка выше, чем после первого этапа после 2-го этапа, после того как поведетесь на магическую библиотеку каких-то "сущностей" уже ничего не будет. Так что планы на 3-й этап можно не строить. p.s. то что описал andreymx и то что вы приняли за автоматизацию "элементов интерфейса", по какой-то причине, совершенно этим не является. То есть вы не в курсе, что ООП выгоднее чем лапшепрограммирование? 8-() ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 14:27 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Странно такое слышать от программиста. Вы не в курсе зачем библиотека System.dll или System.Data.dll и набор сущностей, который там есть? И как это помогает программистам тоже не в курсе? Я в шоке... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 14:31 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickiscrafmпропущено... после 2-го этапа, после того как поведетесь на магическую библиотеку каких-то "сущностей" уже ничего не будет. Так что планы на 3-й этап можно не строить. p.s. то что описал andreymx и то что вы приняли за автоматизацию "элементов интерфейса", по какой-то причине, совершенно этим не является. То есть вы не в курсе, что ООП выгоднее чем лапшепрограммирование? 8-() Он прав. Именно так происходит с бизнес-приложениями, которые пишут профессиональные программисты, забыв пригласить в команду бизнес-аналитика и архитектора. Вместо автоматизации бизнес-задач сопровождение такой системы превращается в бесконечное допиливание стандартных сущностей или в бесконечную головоломку, как обойти их ограничения. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 15:43 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickiscrafmпропущено... после 2-го этапа, после того как поведетесь на магическую библиотеку каких-то "сущностей" уже ничего не будет. Так что планы на 3-й этап можно не строить. p.s. то что описал andreymx и то что вы приняли за автоматизацию "элементов интерфейса", по какой-то причине, совершенно этим не является. То есть вы не в курсе, что ООП выгоднее чем лапшепрограммирование? 8-() где в моих словах было какое-то "лапшепрограммирование"? Что это такое? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 15:53 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickСтранно такое слышать от программиста. Вы не в курсе зачем библиотека System.dll или System.Data.dll и набор сущностей, который там есть? И как это помогает программистам тоже не в курсе? Я в шоке... ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь ) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 15:56 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld NickСтранно такое слышать от программиста. Вы не в курсе зачем библиотека System.dll или System.Data.dll и набор сущностей, который там есть? И как это помогает программистам тоже не в курсе? Я в шоке... ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь ) Да, конечно, молод, я всего 11 лет использую библиотеку сущностей, написанную на SQL, многие куски кода я даже забыл как работают, просто использую и всё. И мне лень каждый раз с нуля программировать. Вот скажите мне сирому, зачем на каждом новом проекте с нуля проектировать, например, регистр учета, иерархию субъектов, систему доступа, BPMS-движок, событийную систему? И мне кажется мы разные вещи понимаем под словами ООП в базе ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 16:46 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld NickСтранно такое слышать от программиста. Вы не в курсе зачем библиотека System.dll или System.Data.dll и набор сущностей, который там есть? И как это помогает программистам тоже не в курсе? Я в шоке... ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь ) Мои сущности - это 1. Пользователь 2. Организация 3. Товар 4. Документ 5. Приходный ордер 6. Регистр учёта 7. Операция 8. Бизнес-процесс .... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 16:48 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickзачем на каждом новом проекте с нуля проектировать, например, регистр учета, иерархию субъектов, систему доступа, BPMS-движок, событийную систему? 1. какой-то регистр учета и какая-то иерархия субъектов - это одно 2. BPMS-движок, событийная система - это другое 2 - конечно не нужно проектировать каждый раз, это автономное ПО. 1 - если под этим понимается то, что вы озвучили далее, то действительно это проектируется для каждого нового проекта. Если конечно вы говорите о разработке чего-то "коробочного", то да. В этом случае проектируется один раз на все случаи жизни, а потом используется, нужно оно или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 17:22 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld Nickзачем на каждом новом проекте с нуля проектировать, например, регистр учета, иерархию субъектов, систему доступа, BPMS-движок, событийную систему? 1. какой-то регистр учета и какая-то иерархия субъектов - это одно 2. BPMS-движок, событийная система - это другое 2 - конечно не нужно проектировать каждый раз, это автономное ПО. 1 - если под этим понимается то, что вы озвучили далее, то действительно это проектируется для каждого нового проекта. Если конечно вы говорите о разработке чего-то "коробочного", то да. В этом случае проектируется один раз на все случаи жизни, а потом используется, нужно оно или нет. А если это не автономное ПО, а просто набор классов в библиотеке? И при компиляции проекта просто указываешь то. что будешь использовать И регистр с иерархией субъектов у меня вместе с движком BPMS и событийной системой находится, не вижу почему это другое. И я не разрабатываю коробочное, просто делаю так, что сущности не зависят от прикладной задачи. Просто заказчику поставляется то, что ему нужно и пишутся под него процессы. И это всё на ООП. Не представляю как это без ООП делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 17:29 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickiscrafmпропущено... ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь ) Да, конечно, молод, я всего 11 лет использую библиотеку сущностей, написанную на SQL, многие куски кода я даже забыл как работают, просто использую и всё. И мне лень каждый раз с нуля программировать. извини, не хотел чтобы это выглядело таким образом (как личный выпад), не поставил просто смайлик, чтобы было четкое указание на сарказм. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 17:30 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickя не разрабатываю коробочное, просто делаю так, что сущности не зависят от прикладной задачи. Просто заказчику поставляется то, что ему нужно и пишутся под него процессы. И это всё на ООП. Не представляю как это без ООП делать. уточни такой момент: заказчику, который является торговцем мясом и заказчику, который является проектной организацией поставляется одни и тот же объект Организации? каждый раз же проектировать не требуется? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 17:34 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, Видимо у каждого разработчика наступает такой момент, когда он считает что крут нереально, постиг дзен и Бога за бороду ухватил. Когда у вас сущности товар да приходный ордер - и в самом деле, кажется, что потолок разработки-то - вот он. А 1С-овцы, к слову - с этого вообще начинают, некоторые даже не знают, что есть некий SQL, серьезно. А вот когда приходят более сложные задачи, тогда сначала слетает гонор, потом паника, а потом заваленный проект. Увы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 22:24 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickпропущено... То есть вы не в курсе, что ООП выгоднее чем лапшепрограммирование? 8-()Редкостный отжиг... Аффтару для ознакомления - "Почему объектно-ориентированное программирование провалилось?" ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 22:30 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickiscrafmпропущено... ты еще просто молод и неопытен в разработке. Многим кажется что ООП сейчас сделает революцию в бизнес-приложениях ( при чем здесь System.dll... у тебя путаница в сущностях, как ты их называешь ) Да, конечно, молод, я всего 11 лет использую библиотеку сущностей, написанную на SQL, многие куски кода я даже забыл как работают, просто использую и всё. И мне лень каждый раз с нуля программировать. Осталось только внятно сформулировать "мысл" о том, какое отношение "библиотека на SQL" имеет отношение к ООП - и будет все небо в алмазах... В качестве "наводки"... Во-первых, SQL ни разу не ОО-язык... Во-вторых, реляционные БД, с которыми SQL (обычно) применяют, в "объекты" в стиле ООП не очень хорошо помещаются - вплоть до "не помещается вообще"... Ну, а использование библиотек - это вообще технологии времен времен перфокарт, когда не то, чтобы об объектно-ориентированном, но и о структурном программировании еще только думали... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 23:11 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
sphinx_mvАффтару для ознакомления - "Почему объектно-ориентированное программирование провалилось?" корявая, мягко говоря, статья... Попало под руку заявление автора: авторНаследование — это самая большая провокация в индустрии. Ни в каком моделировании наследования не существует (и в реальной жизни его нет тоже) — ни в электронике, ни в бухгалтерии, ни в политике, ни где бы то ни было еще. Автор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2013, 23:54 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
комментарии к статье почитал... авторА кто-нибудь из сторонников "провала ООП" может привести пример крупного приложения уровня enterprise, написанного в процедурном стиле? Неужели есть такие извращенцы? Как иначе назвать людей, поддерживающих проект на 100-200 тысяч строк кода в процедурном стиле? уровень ИТ зашкаливает, причем что с одной, что с другой стороны. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 00:31 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmАвтор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм... Гм. А где наследование в политике ? Максимум, что есть - это изучение "хороших паттернов проектирования" студентами-международниками. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 00:44 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
strizhiscrafmАвтор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм... Гм. А где наследование в политике ? Максимум, что есть - это изучение "хороших паттернов проектирования" студентами-международниками. демократы, христианские демократы, социал-демократы и еще куча наследников ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 00:55 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
strizh, про наследование, которого нет в бухгалтерии, еще более интересно. Активы-Имущество-Деньги-Обязательства и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 01:05 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 01:28 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
2 sphinx_mv "Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой." Голубчик, ну это же бред.:) Ну Вы хоть в Википедии посмотрите, что такое аксиома , или вспомните, с чего геометрию начинали изучать (с аксиоматических понятий "точка" и "прямая"). А тоВы лепите, не думая, а впечатление, чтоВы не думаете. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 02:04 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
sphinx_mviscrafmпропущено... корявая, мягко говоря, статья... Попало под руку заявление автора: пропущено... Автор этой статьи в блоге, похоже, слабо знаком с теми вещами, о которых он пишет. Наследования нет в политике... в бухгалтерии... хм...Вот не пойму - в этом месте плакать или смеяться? Такое "ошушение", что Вы уже успели защитить докторскую в Стэндфорде и, как минимум, поработать старшим архитектором в Sun и IBM... плакать или смеяться? Автор может быть хоть котом в сапогах, но это не повод ляпать о том, что в бухгалтерии нет наследования. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 02:42 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
я думаю что здесь какой-то неправильный перевод на русский. К тому же при чем здесь Gabriel. Есть ссылка на "оригинал"? Уже вопрос стоит о качестве интерпретации текстов Gabriel-а, а не о провале ООП. Я разрабатывал однотипные приложения и в ООП средах и в функциональных. Всему свое место. В бизнес-приложениях ООП как гиря на ноге, в системных разработках конечно без ООП тяжело, но не смертельно. Больше разговоров в среде публицистов и блогеров. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 03:07 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
U-gene2 sphinx_mv "Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой." Голубчик, ну это же бред.:) Ну Вы хоть в Википедии посмотрите, что такое аксиома , или вспомните, с чего геометрию начинали изучать (с аксиоматических понятий "точка" и "прямая"). А тоВы лепите, не думая, а впечатление, чтоВы не думаете.:) В случае с ООП - оно даже не аксиома, а набор ничем не подкрепленных суеверий, к тому же уровня передаваемых из уст в уста народного творчества. Это было раз... Автор соотвествующего высказывания Вам известен с точностью до имени и фамилии - Вы вполне можете попытаться ему напрямую высказать это свое "фе" - и это было два... :) Вы абсолютно уверены, что "точка" и "прямая" в математике - "аксиомы"? (а это было три) :) Ну, и четыре - последний абзац по Вашей ссылке : Сейчас аксиомы обосновываются не сами по себе, а в качестве необходимых базовых элементов теории. Критерии формирования набора аксиом в рамках конкретной теории часто являются прагматическими: краткость формулировки, удобство манипулирования, минимизация числа исходных понятий и т. п. Такой подход не гарантирует истинность принятых аксиом. Лишь подтверждение теории является одновременно и подтверждением набора её аксиом .Истинность теории "о более эффективном программировании с использованием ООП" опровергается окружающей действительностью. Даже точное количество одних только классов "базовой поставки" .NET или Java - на выбор! - вряд ли кто скажет... "Овер ХЗ сколько" - примерно "дословная" интерпретация "общеизвестных" познаний в данном вопросе. Риторический вопрос о знании всех методов этих классов задавать? Соответственно, любая попытка заявлять о возможности эфективно использовать что-то, о чем практически никто не имеет полного представления - это неплохое обоснование длятого, чтобы провести лето, зиму, весну, осень (нужное подчеркнуть) на даче у купца Канатчикова... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 03:23 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmsphinx_mvпропущено... Вот не пойму - в этом месте плакать или смеяться? Такое "ошушение", что Вы уже успели защитить докторскую в Стэндфорде и, как минимум, поработать старшим архитектором в Sun и IBM... плакать или смеяться? Автор может быть хоть котом в сапогах, но это не повод ляпать о том, что в бухгалтерии нет наследования.Нет в бухгалтерии наследования - и никогда не было! Есть план счетов, журнал проводок, двойная запись и баланс, которые элементарным образом реализовывались, реализуются и еще долго будут реализовываться средствами реляционных БД, про которые тому уж лет 40 как известно, что никакого отношения к ООП не имеют - очевидно, как минимум, по причине отсутствия ООП в природе на момент создания теории реляционных БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 03:38 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
U-gene"Это как если бы математики начинали бы с аксиом. Но реально никто не начинает с аксиом, все начинают с доказательств. Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома. Т.е. в математике вы заканчиваете аксиомой." Голубчик, ну это же бред.:) высказывание довольно "топорное" - возможно из-за перевода - но это далеко не бред. С аксиом в математике, действительно, никто не начинает. Они (аксиомы) - результат кропотливой работы. И эта аналогия с интерфейсами ООП очень удачна ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 08:34 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmМногим кажется что ООП сейчас сделает революцию в бизнес-приложениях бугага, то же самое казалось 15 лет назад, когда я книжку по дельфи 2 читал. ДжекНепотрошительОн прав. Именно так происходит с бизнес-приложениями, которые пишут профессиональные программисты, забыв пригласить в команду бизнес-аналитика и архитектора. Вместо автоматизации бизнес-задач сопровождение такой системы превращается в бесконечное допиливание стандартных сущностей или в бесконечную головоломку, как обойти их ограничения. о да!!! этот бесконечный процесс - наше все!!:) Но появление в команде еще и болтунов-дармоедов в виде бизнес-аналитика и архитектора не принесет улучшений:) Это я по опыту говорю. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 09:37 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
U-gene2 sphinx_mv Ну Вы хоть в Википедии посмотрите, что такое аксиома, или вспомните, с чего геометрию начинали изучать (с аксиоматических понятий "точка" и "прямая"). А тоВы лепите, не думая, а впечатление, чтоВы не думаете. В статьях по ссылкам был же ответ. Готовая математическа конструкция (доказательство теоремы/правильности алгоритма/описания способа вычислений) базируется/cтроится на утверждениях, называемых аксиомами. Но придумывание/конструирование этой конструкции не с аксиом начинают. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 11:17 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, авторИ мне кажется мы разные вещи понимаем под словами ООП в базе Наверное, в этом и загвоздка. По-моему, Вы недостаточно четко разъяснили, что имеете в виду под "ООП в базе", и у большинства камрадов это вызвало "легкое" недоумение... В ORACLE (не знаю как в других БД, в них я не копенгаген) ООП на уровне SQL, PL/SQL - это, мягко говоря, нужно как козе баян. Конечно, некоторые возможности есть, и их даже можно/нужно использовать в определенных случаях, но почти всегда их можно безболезненно заменить на процедурный подход (в PL/SQL) или переделать в реляционную модель (SQL). Такой подход почти всегда (за редкими исключениями) более понятен, сопровождаем, имеет лучшую производительность. Ведь реализация БД появилась в те времена, когда об ООП в лучшем случае писались какие-то научные исследования, и естественно ядро БД изначально не поддерживает таких возможностей, это "не родное" для всех БД с многолетней историей... Все-таки, мое ИМХО, нужно разделять подходы к разработке внутри БД и на Java, C# и т.д. Внутри БД нужно использовать те механизмы, которые наиболее оптимальны и проверены временем, а не изобретать велосипеды для реализации стандартных задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 11:51 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
AmberitOld Nick, авторИ мне кажется мы разные вещи понимаем под словами ООП в базе Наверное, в этом и загвоздка. По-моему, Вы недостаточно четко разъяснили, что имеете в виду под "ООП в базе", и у большинства камрадов это вызвало "легкое" недоумение... В ORACLE (не знаю как в других БД, в них я не копенгаген) ООП на уровне SQL, PL/SQL - это, мягко говоря, нужно как козе баян. Конечно, некоторые возможности есть, и их даже можно/нужно использовать в определенных случаях, но почти всегда их можно безболезненно заменить на процедурный подход (в PL/SQL) или переделать в реляционную модель (SQL). Такой подход почти всегда (за редкими исключениями) более понятен, сопровождаем, имеет лучшую производительность. Ведь реализация БД появилась в те времена, когда об ООП в лучшем случае писались какие-то научные исследования, и естественно ядро БД изначально не поддерживает таких возможностей, это "не родное" для всех БД с многолетней историей... Все-таки, мое ИМХО, нужно разделять подходы к разработке внутри БД и на Java, C# и т.д. Внутри БД нужно использовать те механизмы, которые наиболее оптимальны и проверены временем, а не изобретать велосипеды для реализации стандартных задач. Оно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака. Просто вы не умеете его готовить (с) не моё ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 12:47 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
2 sphinx_mv, kmaw ,Inkelyad Повторю цитату "Только когда найден набор подходящих доказательств, лишь тогда на этой основе выводится аксиома." Ну если бы был глагол "подбирается" или "придумывается", то я бы не возражал. А говорить, что аксиомы 1)откуда-то 2)выводятся - бред. Имею право это отметить. И все толкования и объяснения здесь - это как сначала сказать, что "Волга вытекает из Каспийского моля" а потом начать оправдываться, что де она впадает , конечно. 2 sphinx_mv, espacially Я про ООП ни слова не сказал. По мне, так удобнее чем предыдущие структуры и функции. А аргумент про количество классов в поставке меня вообще удивляет. Например, я не перечитал всех книг, и вряд ли перечитаю. И никто не знает, сколько их есть. Но это не значит , что они вообще не нужны. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 12:49 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
sphinx_mviscrafmпропущено... плакать или смеяться? Автор может быть хоть котом в сапогах, но это не повод ляпать о том, что в бухгалтерии нет наследования.Нет в бухгалтерии наследования - и никогда не было! а выше приведенный пример не читали? Ладно, послушаем опытного бухгалтера, нет так нет. Ты автор этой статьи что-ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:10 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Вообще ООП+женерики+лямбды и прочие деревья выражений - большая сила, нужно только понимать что к чему и уметь использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:12 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
казинакНо появление в команде еще и болтунов-дармоедов в виде ... архитектора не принесет улучшений:) Это я по опыту говорю. поздравляю с "шикарнейшим" опытом. Только почему здесь так принято гордится этим. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:15 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickAmberitOld Nick, пропущено... Наверное, в этом и загвоздка. По-моему, Вы недостаточно четко разъяснили, что имеете в виду под "ООП в базе", и у большинства камрадов это вызвало "легкое" недоумение... В ORACLE (не знаю как в других БД, в них я не копенгаген) ООП на уровне SQL, PL/SQL - это, мягко говоря, нужно как козе баян. Конечно, некоторые возможности есть, и их даже можно/нужно использовать в определенных случаях, но почти всегда их можно безболезненно заменить на процедурный подход (в PL/SQL) или переделать в реляционную модель (SQL). Такой подход почти всегда (за редкими исключениями) более понятен, сопровождаем, имеет лучшую производительность. Ведь реализация БД появилась в те времена, когда об ООП в лучшем случае писались какие-то научные исследования, и естественно ядро БД изначально не поддерживает таких возможностей, это "не родное" для всех БД с многолетней историей... Все-таки, мое ИМХО, нужно разделять подходы к разработке внутри БД и на Java, C# и т.д. Внутри БД нужно использовать те механизмы, которые наиболее оптимальны и проверены временем, а не изобретать велосипеды для реализации стандартных задач. Оно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака. Просто вы не умеете его готовить (с) не моё во-первых что имеется ввиду конкретно показано не было. Понятно что это от недостатка опыта. Но это не причина для того, чтобы еще и язвить. Нужно лучше учиться отстаивать свою позицию. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:22 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickОно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака. да ладно... все как раз ровно наоборот происходит: "Мы слышали что ооп - это круто, так што давайте везде и всюду только его использовать" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 13:51 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
казинакOld NickОно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака. да ладно... все как раз ровно наоборот происходит: "Мы слышали что ооп - это круто, так што давайте везде и всюду только его использовать" Да, как в анекдоте: "мыши кололись, плакали, но ели кактус" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 14:34 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
казинакOld NickОно и понятно. Это ведь из-за недостатка опыта. Зато как слюной брызжут :-) Мы ООП пробовали и оно нам не понравилось :-) ржака. да ладно... все как раз ровно наоборот происходит: "Мы слышали что ооп - это круто, так што давайте везде и всюду только его использовать" Я не говорил, что ООП надо везде использовать. Сначала новички не знают что такое ООП, потом начинаю использовать везде, и только когда появляется опыт, то используют только там где это нужно. Я не использую ООП, когда играюсь с атрибутами объектов (полями). В моих сущностях нет полей, есть только операции. С полями лучше на уровне SQL играться. В бизнес-логике я наследование практически не использую, вложенность операций даёт больше удобств. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 14:35 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickОчень часто в конторах, которые занимаются разработкой ПО для собственных нужд, да и для внедрения у заказчиков работает несколько разработчиков БД. Это связано прежде всего с неправильно проектированной архитектурой приложения. Как считаете, может быть такая ситуация, что пишется крупный проект и при этом разработчик БД один и занят всего процентов на 30? И если нет, то как сделать так, чтобы было именно так?Легко! Свалить всё без разбору в EAV и выпереть всю бизнес-логику в клиентские приложения. Разработчик БД вообще не понядобится... ...в отличие от многочисленных тестеров клиентских аппликух и толстого-толстого саппорта. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 17:02 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, авторОно и понятно. Это ведь из-за недостатка опыта. Если возможно, объясните пожалуйста неопытному, что имеется в виду под "ООП в базе". Я возьму на себя смелость пройтись по Вашим постам: авторИ есть другой подход - использовать наработки, дописывая только то что нужно для новой прикладной логики. Согласен, но где здесь ООП? авторЯ использую объектно-ориентированный подход с проектированию БД. Естественно есть базовые классы, базовая логика. В полной мере используется наследование, которое сводится к простому добавлению новых классов. Классы справочников, причем типовые справочники уже есть. Классы новых документов, типовые тоже уже есть. Классы бизнес-процессов. Какие классы имеются в виду? Большинство данных в БД хранится в таблицах. Классы можно использовать для обработки этих данных. И как при добавлении нового справочника обойтись только добавлением класса? Или Вы хотите сказать, что все данные всех справочников хранятся в одной мега-таблице? Или Вы хотите сказать, что ограничения/триггера Вы не используете, а всю проверку при вставке/обновлении/удалении делаете через классы, а то и вообще вне БД (интересно, как!)? Я искренне не понимаю, и если бы Вы объяснили Ваш подход именно с позиции разработчика БД, возможно, на одного программиста с недостаточным опытом стало бы меньше... авторЯ не говорил, что ООП надо везде использовать. Сначала новички не знают что такое ООП, потом начинаю использовать везде, и только когда появляется опыт, то используют только там где это нужно. Так вот меня и терзают смутные сомнения, нужно ли ООП на уровне БД? Покажите пример реализации чего-нибудь с помощью ООП в БД, если Вас не затруднит... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.03.2013, 20:39 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
ну хорож уже цепляться к этим "аксиомам". суть цитаты относительно общего контекста вполне понятна и имеет практическую ценность - что с ООП, что без оного - в конце концов имеем некоторый прикладной "метаязык" - API. так вот тут говорится о том, что API, которое "идет от алгоритмов" - более прагматическое, чтоли. Так как "сразу сочинять классы" - и вот тут суть цитаты - как "изначально сочинять аксиомы" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 07:26 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
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.
Операционный документ Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 09:18 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Или вот простой справочник без дополнительных полей Код: sql 1. 2. 3.
Справочник посложнее Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 09:28 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, две OpenDoc_Transact с одинаковым именем как в БД появятся? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 10:47 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, может простынки кода прятать под маленький аккуратный плюсик? Или дать ссылку на репозиторий :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 10:49 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick класс Document Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Понятно. Чем это лучше create table, кроме возможности указания заголовков для полей? И как этот механизм позволяет управлять оптимизацией запросов, например? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 11:27 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, Ок, спасибо за пример, давайте рассмотрим Ваш подход. К сожалению, я ни разу не спец в Transact-SQL, поэтому некоторые вещи мог неверно истолковать исходя из моих знаний ORACLE. Давайте рассмотрим Ваш подход к работе со справочниками. Безотносительно к БД, необходимо совершать следующие действия над ними: просмотр, добавление, изменение, удаление элементов справочника. 1. Просмотр. У Вас реализован - ОК. 2. Добавление новой записи - НЕТ. 3. Редактирование существующей записи - НЕТ. 4. Удаление существующей записи - НЕТ. 5. Проверки при добавлении, редактировании, удалении - НЕТ. 6. Управление правами доступа к элементам справочника (в т.ч. на уровне строк) - НЕТ (или не применяется). 7. Логгирование действий со справочником (история изменений) - НЕТ (или не применяется). 8. Для особо критичных справочников - использование верификации (один вводит, другой подтверждает) - НЕТ (или не применяется). Итого - приведенный пример неполон, т.к. не показана реализация основных действий со справочником. Или эти моменты у Вас реализованы не на стороне БД, а на стороне клиентского приложения (WEB-сервера)? Из-за того, что вся информация о данных справочников хранится в строго ограниченном перечне таблиц, вытекает следующее: 1. Невозможность использования внешних ключей в принципе. Т.е., например, при удалении записи из справочника нужно дополнительно прописывать проверку, что для этой записи нет зависимостей и ее можно удалять. Иначе получим неконсистентные данные в БД. 2. Непонятно, как организовано хранение данных разных типов. Все приводится к строчному типу? Или какому-нибудь абстрактному типу а-ля ANYDATA в ORACLE? 3. По структуре БД нельзя обнаружить зависимости, вся логика находится в обрабатывающих процедурах. 4. Невозможность (затруднительность) использования триггеров/ограничений БД, т.к. их логика, судя по всему, будет сильно запутанна. 5. Скорее всего, ваша БД жестко привязана только к одному приложению. Использование БД с другим приложением потребует клонирования функционала. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 11:48 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld Nick, две OpenDoc_Transact с одинаковым именем как в БД появятся? Почему две то? Одна. При повторной загрузке в БД делается alter. Только это всё не ручками, а через программу SQLEditor.exe Эту программу я написал сам для своих нужд и теперь не парясь пишу create table, create view, create procedure и т.д. Программа сама отслеживает есть объект в базе или нет и если есть, то меняет слово CREATE на ALTER Для таблиц механизм сложнее. Таблица пересоздается не теряя данные. Очень удобно знаете ли заливать целиком проект в базу не думая какая при этом текущая структура. После заливки структура становится по последней версии. И данные не трогаются. При этом всём целостное обновление структуры происходит в транзакции и если хоть где-то происходит ошибка или нестыковка, то происходит откат версии и пользователи ничего не замечают ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 11:56 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
ДжекНепотрошительOld Nickкласс Document Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Понятно. Чем это лучше create table, кроме возможности указания заголовков для полей? И как этот механизм позволяет управлять оптимизацией запросов, например? Заметьте что тут есть процедура Compile. Она по вновь созданным или измененным метаданным начинает создавать или пересоздавать 1. Таблицы 2. Вьюхи с instead of triggers 3. Хранимые процедуры выборки, вставки, изменения, удаления 4. Разные вспомогательные объекты Оптимизировать такие процедуры нет необходимости. Остальные методы классов и объектов это всего лишь хранимки на T-SQL Они пишутся обычным текстом и там если нужно то оптимизируется. Снаружи доступ есть только к вьюхам. Таблицы не видны - это и есть инкапсуляция. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:00 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
ДжекНепотрошительЧем это лучше create table, кроме возможности указания заголовков для полей? там суть не в заголовках похоже. В приведенном примере обратите внимание на а-ля типы данных Person, Document: Код: sql 1. 2.
просто по какой-то причине OldNick не комментирует то, что показывает... только потому что нечто подобным занимался в начале 90-х в unix, была гипертекстовая СУБД, направление мыслей ТС понятно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:02 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
В результате у меня полноценная ООП - система с наследованием, инкапсуляцией, полиморфизмом, где сущность - это не класс в каком либо языке, а совокупность таблиц, вьюх, хранимок, метаданных, классов, форм и т.д. Сущность проходит через всю систему насквозь. От БД через АппСервер до интерфейса. И примечательно то, что логика обрабатывается через ООП, а данные через SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:09 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmДжекНепотрошительЧем это лучше create table, кроме возможности указания заголовков для полей? там суть не в заголовках похоже. В приведенном примере обратите внимание на а-ля типы данных Person, Document: Код: sql 1. 2.
просто по какой-то причине OldNick не комментирует то, что показывает... только потому что нечто подобным занимался в начале 90-х в unix, была гипертекстовая СУБД, направление мыслей ТС понятно. Manager - Имя поля Person - тип поля - объектный Менеджер - Caption - отображается в заголовках грида или в Label полей А дальше допатрибуты через ^ ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:13 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickiscrafmOld Nick, две OpenDoc_Transact с одинаковым именем как в БД появятся? Почему две то? Одна. При повторной загрузке в БД делается alter. это я спросил по результатам просмотра этого кода: 14017688 Тогда где хранится приведенный в том сообщении код с OpenDoc_Transact в двух ипостасях? Просто в тексте где-то? Типа регистрируется информация для метаданных в служебных таблицах, а затем при помощи Compile по этой информации создаются уже реальные объекты БД, описание которых находится в этих же служебных таблицах или файлах. Так? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:15 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld Nickпропущено... Почему две то? Одна. При повторной загрузке в БД делается alter. это я спросил по результатам просмотра этого кода: 14017688 Тогда где хранится приведенный в том сообщении код с OpenDoc_Transact в двух ипостасях? Просто в тексте где-то? Типа регистрируется информация для метаданных в служебных таблицах, а затем при помощи Compile по этой информации создаются уже реальные объекты БД, описание которых находится в этих же служебных таблицах или файлах. Так? Прошу прощения, не тот код скопировал. Код устаревший, не из той папки взял пример. В данном случае вторая процедура перекрывает первую. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:22 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafm, Всё верно. Чуть выше я написал про Compile ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 12:23 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, если не секрет: 1. это все тобой одним разрабатывается/поддерживается? или командой? в течение какого срока? 2. для скольких разных систем (не вариаций одной) используется этот подход? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 13:13 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickiscrafm, Всё верно. Чуть выше я написал про Compile т.е. это по сути стиль описания объектов СУБД, при помощи Compile подготовленный исходник преобразуется в "понятные" для реляционной СУБД объекты. Расскажите как изменения вносите, тоже в "исходник", а Compile соответственно изменяет объекты СУБД? К рассогласованиям как относитесь? К примеру разработчик открыл студию и внес изменения руками, минуя "компилируемый" исходник. По сути внес изменения в EXE-файл. Что предлагается делать? Обратная генерация исходника предусмотрена, типа DeCpmpile? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 13:29 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
kmawOld Nick, если не секрет: 1. это все тобой одним разрабатывается/поддерживается? или командой? в течение какого срока? 2. для скольких разных систем (не вариаций одной) используется этот подход? В более-менее похожем виде я начал применять с 2008. Всё постепенно эволюционируется. На этом движке была создана система документооборота для компании ЗАО "Веда", клиент на Delphi. 2007 год (В одиночку) Затем складской учет для Аксель-Моторс, трехзвенка .NET (AppServer на Веб-методах) 2008 год (С одним помощником) Аукционный портал www.ets24.ru, PHP / MS SQL, правда генератор кода я не использовал, вручную сущности создавались. 2010-11 Команда человек 5, я был архитектором и разработчиком PHP и SQL ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 14:33 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld Nickiscrafm, Всё верно. Чуть выше я написал про Compile т.е. это по сути стиль описания объектов СУБД, при помощи Compile подготовленный исходник преобразуется в "понятные" для реляционной СУБД объекты. Расскажите как изменения вносите, тоже в "исходник", а Compile соответственно изменяет объекты СУБД? К рассогласованиям как относитесь? К примеру разработчик открыл студию и внес изменения руками, минуя "компилируемый" исходник. По сути внес изменения в EXE-файл. Что предлагается делать? Обратная генерация исходника предусмотрена, типа DeCpmpile? Повторюсь. Коды пишу в текстовом файле с расширением .sql, для каждого класса свой файл. В качестве редактора использую свою собственную программу SQLEditor. Версионности нет, после каждой компиляции получаю последнюю версию, причем целиком, одним пакетом. Генерация и перегенерация кода происходит в транзакции. Поэтому либо целиком принимается, либо целиком откатывается. Если кто-то что-то в базе ручками поменяет, то после компиляции всё это будет потеряно, поэтому менять надо только в исходниках, исходники подключены к SVN. Обратная генерация не предусмотрена, т.к. необходимости не было. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 14:45 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickВ результате у меня полноценная ООП - система с наследованием, инкапсуляцией, полиморфизмом, где сущность - это не класс в каком либо языке, а совокупность таблиц, вьюх, хранимок, метаданных, классов, форм и т.д. Сущность проходит через всю систему насквозь. От БД через АппСервер до интерфейса. И примечательно то, что логика обрабатывается через ООП, а данные через SQL Точно такая же хрень реализована в ЦФТ. Там тоже в в доке упирают на то что ооп везде. И те же аргументы что и вы приводят. Так что вы не первый. И если смотреть по результатам то ваще-то они круче. У них клиенты пожирнее чем у вас. А по моим личным ощущениям, система для типо быстрого лабания функциональности. А в сопровождении и развитии те же грабли, что и везде. И основная проблема - это то что без автора хрен кто поймет, что там наваял этот гений. Причем, уровень ЦФТ и ваш несопоставим. Old NickКоды пишу в текстовом файле с расширением .sql, для каждого класса свой файл. В качестве редактора использую свою собственную программу SQLEditor. И чем это легче простого написания DDL скрипта? Или, вообще, визуального редактора, где мышкой можно накликать создание табличек? Впрочем это я в мелочи скатываюсь. А вообще, ну сделали вы свою штучку. Ну и продайте ее за мегабаксы. Если кому понадобится, конешно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 15:48 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nick, У нас в Виртуозе в полный рост сделан create type. Новый тип создаётся на выбор "только для объектов в памяти" или "хранитсяв таблице", с наследованием и с функциями-членами в виде хранимок, явовских функций, перловых, пэхапэшныъ и ещё всяких. Никаких внешних утилит для этого, просто через ODBC или ещё что отправляется на сервер, точно так же, как create table или любой другой запрос. И знаете результат? Это _очень_ мало используемая фича. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:02 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iv_an_ruOld Nick, У нас в Виртуозе в полный рост сделан create type. Новый тип создаётся на выбор "только для объектов в памяти" или "хранитсяв таблице", с наследованием и с функциями-членами в виде хранимок, явовских функций, перловых, пэхапэшныъ и ещё всяких. Никаких внешних утилит для этого, просто через ODBC или ещё что отправляется на сервер, точно так же, как create table или любой другой запрос. И знаете результат? Это _очень_ мало используемая фича. Вы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодирования ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:17 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодированияБольшинство программистов, разработавших какой-нибудь фреймворк плохо представляют как без этого разработку вести. Оценить фреймворк можно только если его сторонние программисты используют. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:21 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
И опять всё скатилось к инструменту. Люди, вы не понимаете о чем речь. Я не агитирую за инструмент, которым я пользуюсь. Можно и без него делать. Я про технологию. Технология это разработка в ООП стиле. Можно все скрипты ручками писать. Можно в Power Designer делать. Можно из Visual Studio генерировать. Какая разница то? Если вы заметили, то по всем трем системам, которые сделал с этой базой клиенты были на разных языках написаны. Принципа это не изменило. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:28 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Bogdanov AndreyOld NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодированияБольшинство программистов, разработавших какой-нибудь фреймворк плохо представляют как без этого разработку вести. Оценить фреймворк можно только если его сторонние программисты используют. Причем здесь фреймворк? У меня нет фреймворка. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:29 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Или ООП это фреймворк? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:30 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодирования Посадить бы тебя сопровождать и развивать чужой ООП-код, который наваяли фанаты ооп, фаулера и прочего г-на. Туда, где логика простейшего crud размазана по куче классов и лэйеров. И ведь все в соответствии с канонами ооп. А свой то код любой дурак сопровождать могет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:38 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickА я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодирования Можно привести какие-то объективные метрики, на основе чего сделан вывод о "десятикратном увеличении кодирования"? Или привести показательный пример? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:46 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
казинакOld NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодирования Посадить бы тебя сопровождать и развивать чужой ООП-код, который наваяли фанаты ооп, фаулера и прочего г-на. Туда, где логика простейшего crud размазана по куче классов и лэйеров. И ведь все в соответствии с канонами ооп. А свой то код любой дурак сопровождать могет. Вы же юзаете NHibernate ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:49 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
> Аукционный портал www.ets24.ru Этой работой вы гордитесь, надо понимать? Две очень простых задачи для оценки практической пригодности ваших "объектов". 1. Опишите все лавки, имеющие отношение к Philips, включая участие в акционерном капитале, но не ограничиваясь им. Газеты какие-нибудь читаете? Наверное, слышали про Hermitage Capital? 2. Опишите структуру Hermitage Capital для российского рынка. Опишите претензии к Hermitage Capital. Интересен не псевдокод, а реальный ddl, соответствующий решению обеих задач, сгенерированный вашими волшебными "объектами". ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:50 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
казинакOld NickВы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодирования Посадить бы тебя сопровождать и развивать чужой ООП-код, который наваяли фанаты ооп, фаулера и прочего г-на. Туда, где логика простейшего crud размазана по куче классов и лэйеров. И ведь все в соответствии с канонами ооп. А свой то код любой дурак сопровождать могет. И кстати, я сопровождал и развивал такие системы. Это сказка. Всё предсказуемо и понятно. Пару строчек кода и новая функциональность. Что в этом плохого? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:50 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
guest_20040621> Аукционный портал www.ets24.ru Этой работой вы гордитесь, надо понимать? Две очень простых задачи для оценки практической пригодности ваших "объектов". 1. Опишите все лавки, имеющие отношение к Philips, включая участие в акционерном капитале, но не ограничиваясь им. Газеты какие-нибудь читаете? Наверное, слышали про Hermitage Capital? 2. Опишите структуру Hermitage Capital для российского рынка. Опишите претензии к Hermitage Capital. Интересен не псевдокод, а реальный ddl, соответствующий решению обеих задач, сгенерированный вашими волшебными "объектами". Ты идиот? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:52 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
kmawOld NickА я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодирования Можно привести какие-то объективные метрики, на основе чего сделан вывод о "десятикратном увеличении кодирования"? Или привести показательный пример? Полгода назад взял подработку. Сделал АРМ для инвентаризации на основе RFID меток. Задача была спроектирована до меня. Естественно как у всех. Времени было всего 20 дней, некогда было применять свои плюшки. Любой чих приходилось многократно прописывать. Больше за такое не возьмусь ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 16:55 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Городить какую-то "ООП" поверх РСУБД, мое личное мнение, не даст прироста эффективности разработки (бросьте в меня помидор): 1. Есть предметная облать. Если она сложная - то простой она не станет ни при ООП стиле, ни при каком другом. 2. Реализация отражает предметную область по определению. Упростить её тоже не получится. 3. Загонять реализацию в какие-то искуственные рамки универсальных кодогенераторов, шаблонов (ООП или нет - не важно) - рано или поздно приведет к необходимости расширения рамок, переписванию ядер 4. Использование самодельной прикладной технологии/инфраструктуры, построенной поверх стандартной, приведет к: - необходимости дополнительного обучения членов команды (текучку никто не отменял) - необходимости поддержания этой технологии, которая будет обрастать множеством мелких костылей, выходящих за её первоначальный мэйнстрим - сильной зависимости от автора инфраструктуры ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:05 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Дружище, вам пытаются деликатно сказать о том, что ваши говноподелки к реальным задачам не имеют никакого отношения. Вам просто повезло с тем, что вы решали простые криво поставленные задачи. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:05 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickkmawпропущено... Можно привести какие-то объективные метрики, на основе чего сделан вывод о "десятикратном увеличении кодирования"? Или привести показательный пример? Полгода назад взял подработку. Сделал АРМ для инвентаризации на основе RFID меток. Задача была спроектирована до меня. Естественно как у всех. Времени было всего 20 дней, некогда было применять свои плюшки. Любой чих приходилось многократно прописывать. Больше за такое не возьмусь у вас было целых 20 дней, для того, чтобы сделать один АРМ инвентаризации. И при этом некогда было "применять свои плюшки". Где тогда описываемое увеличение производительности? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:08 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickЛюбой чих приходилось многократно прописывать. Больше за такое не возьмусь - из этих "чихов" и складывается в итоге то, что называют "сложностью" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:12 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
kmawГородить какую-то "ООП" поверх РСУБД, мое личное мнение, не даст прироста эффективности разработки (бросьте в меня помидор): Вот и я к чему веду. Этот фреймворк позволяет легко автоматизировать простые задачи... но при любом более-менее сложном случае мы упремся в те или иные ограничения фреймворка, и работа по его адаптации многократно съест все его преимущества. Оно автоматом генерирует процедуры на вставку/удаление/обновление, а также вьюхи? Отлично. А что делать, если сгенерированная автоматом структура впадает в клинч на имеющихся данных, т.к. нужно править планы запросов и делать индексы? А кто целостность данных там будет гарантировать? А где расширенную бизнес-логику писать? В объектах - низзя, оно ж их перегенерирует. Снаружи? Тогда в чем смысл такого "ООП"? А документирование этого добра? Ведь мы могли бы иметь схему БД в каком-нибудь PowerDesigner'e, которая сама по себе является наглядной документацией, и отличным инструментом для сопровождения базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:14 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
kmawГородить какую-то "ООП" поверх РСУБД, мое личное мнение, не даст прироста эффективности разработки (бросьте в меня помидор) за что бросать помидорами? Правильно сказали. p.s. есть разные подходы к проектированию и разработке в целом. Часто приходится общаться с разработчиками на тему каких-то хитрых алгоритмов ловли и индикации ошибок. На что я обычно говорю: вместо выдачи на гора километров кода сделайте так, чтобы пользователь не допускал ошибок. Например, не нужно, образно, давать пользователю на выбор для указания размерности товара возможность выбора единицы веса, а потом писать километры проверок и множество сообщений об ошибках. Сделайте так, чтобы их не было. Так же и здесь. Нужно придумывать не возможности для более простого кодирования, а придумывать способы его сокращения. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:20 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
ДжекНепотрошительkmawГородить какую-то "ООП" поверх РСУБД, мое личное мнение, не даст прироста эффективности разработки (бросьте в меня помидор): Вот и я к чему веду. Этот фреймворк позволяет легко автоматизировать простые задачи... но при любом более-менее сложном случае мы упремся в те или иные ограничения фреймворка, и работа по его адаптации многократно съест все его преимущества. Оно автоматом генерирует процедуры на вставку/удаление/обновление, а также вьюхи? Отлично. А что делать, если сгенерированная автоматом структура впадает в клинч на имеющихся данных, т.к. нужно править планы запросов и делать индексы? А кто целостность данных там будет гарантировать? А где расширенную бизнес-логику писать? В объектах - низзя, оно ж их перегенерирует. Снаружи? Тогда в чем смысл такого "ООП"? А документирование этого добра? Ведь мы могли бы иметь схему БД в каком-нибудь PowerDesigner'e, которая сама по себе является наглядной документацией, и отличным инструментом для сопровождения базы. Один мой знакомый сделал то же самое в PowerDesigner. Сущности оформлял в виде классов, а код генерировал на VB. Я еще раз повторюсь, что дело не в инструменте, а в наличии мозгов. Если есть мозги, то можно весь код ручками сделать, а если мозгов нет, то и Visual Studio не поможет. По поводу жесткости фреймворка. Во-первых я могу его использовать, а могу и не использовать, то есть писать ручками. Конечный результат от этого не меняется. Во-вторых у меня всегда есть возможность ручной правки кода поверх сгенерированного на всякий особый случай. Я ж говорю, если не хватает мозгов и опыта, то инструмент то тут при чём? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:42 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld Nickпропущено... Полгода назад взял подработку. Сделал АРМ для инвентаризации на основе RFID меток. Задача была спроектирована до меня. Естественно как у всех. Времени было всего 20 дней, некогда было применять свои плюшки. Любой чих приходилось многократно прописывать. Больше за такое не возьмусь у вас было целых 20 дней, для того, чтобы сделать один АРМ инвентаризации. И при этом некогда было "применять свои плюшки". Где тогда описываемое увеличение производительности? Проблема была в том, что не я один работал надо проектом. Была еще команда, которая писала код для терминала сбора данных. И чтобы поменять структуру таблиц на ООП стиль, пришлось бы согласовывать с ними. Я по опыту я знаю, что даже несколько лет недостаточно, чтобы люди поняли что такое ООП и как его применять. Вот даже тут на форуме пока еще никто не понял :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:45 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickЯ по опыту я знаю, что даже несколько лет недостаточно, чтобы люди поняли что такое ООП и как его применять. Вот даже тут на форуме пока еще никто не понял :-) точно уверены что никто не понял что такое ООП? После таких высказываний нить серьезного разговора теряется. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:49 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Большинство программистов имя в руках объектно-ориентированный язык не могут объектно-ориентированно проектировать и программировать. Я могу программировать объектно-ориентированно на любом языке программирования, даже на необъектно-ориентированных языках, таких как T-SQL или FoxPro 2.5 или любом процедурном. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:51 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafmOld NickЯ по опыту я знаю, что даже несколько лет недостаточно, чтобы люди поняли что такое ООП и как его применять. Вот даже тут на форуме пока еще никто не понял :-) точно уверены что никто не понял что такое ООП? После таких высказываний нить серьезного разговора теряется. А с кем тут серьёзно то разговаривать? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:51 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickПричем здесь фреймворк? У меня нет фреймворка. Или ООП это фреймворк?ООП - это подход, а ваша поделка (exec Class, exec Field, exec Compile и т.п) - это фреймворк. Можете заглянуть на википедию - там определение слова фреймворк написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:51 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Bogdanov AndreyOld NickПричем здесь фреймворк? У меня нет фреймворка. Или ООП это фреймворк?ООП - это подход, а ваша поделка (exec Class, exec Field, exec Compile и т.п) - это фреймворк. Можете заглянуть на википедию - там определение слова фреймворк написано. Еще раз поясню для особо талантливых. Я могу сделать то же самое ни разу не написав exec Class ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:52 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickiscrafmпропущено... точно уверены что никто не понял что такое ООП? После таких высказываний нить серьезного разговора теряется. А с кем тут серьёзно то разговаривать? :-) понятно. Вы форумом ошиблись. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:54 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickЕще раз поясню для особо талантливых. Я могу сделать то же самое ни разу не написав exec ClassДля особо непонятливых я дал ссылку на вики. Но если вы не хотите называть свою поделку фреймворком - это ваше дело. Фреймворк мог бы быть единственным ценным, что вы могли бы предложить здешней общественности. Но если у вас даже фреймворка нет, то говорить вообще не о чем. Просто мысль "а давайте работать эффективно" никакой ценности не представляет и обсуждать ее бессмысленно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 17:59 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickЯ могу программировать объектно-ориентированно на любом языке программирования, даже на необъектно-ориентированных языках, таких как T-SQL или FoxPro 2.5 или любом процедурном. ОК, мы это поняли. И какова ценность всего этого? В чем преимущество объектно-ориентированного подхода к работе с СУБД? ООП - это средство более удобной организации кода для построения сложных приложений. Это единственный смысл существования ООП. Если упрощения не наблюдается, оно становится вещью в себе. Где здесь упрощение? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 18:10 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickПроблема была в том, что не я один работал надо проектом. Была еще команда, которая писала код для терминала сбора данных. И чтобы поменять структуру таблиц на ООП стиль, пришлось бы согласовывать с ними. это - явный минус подхода: его никто, кроме автора, в команде не использует (есть, наверное, причины). распараллелить нормально задачи не получится, договоренности между разрабами - нет, а это уже объективная причина срыва срока и/или ухудшения качества нарисовывается. как объяснять руководству, что ресурсов дали - а эффективности не добавилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 18:14 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickiv_an_ruOld Nick, У нас в Виртуозе в полный рост сделан create type. Новый тип создаётся на выбор "только для объектов в памяти" или "хранится в таблице", с наследованием и с функциями-членами в виде хранимок, явовских функций, перловых, пэхапэшныъ и ещё всяких. Никаких внешних утилит для этого, просто через ODBC или ещё что отправляется на сервер, точно так же, как create table или любой другой запрос. И знаете результат? Это _очень_ мало используемая фича. Вы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодированияВ случае с CREATE TYPE причина КМК в другом. Это попытка то ли классы упростить до таблиц, то ли таблицы усложнить до классов. В результате - не рыба, не мясо, поэтому и не пользуются. Про это и Дейт много пишет и наш Кузнецов( http://citforum.ru/database/articles/sql_odmg/). Это не в коем случае не претензия к Виртуозе(!), а общая фича объектно-реляционных СУБД. Приставки "объектно-" совсем не стоит воспринимать как синоним ОО в широком смысле (кстати, когда читаешь их гайды и мануалы, то слово объект встречается редко, а сочетание "объетно-ориентированый вообще не найдешь"). И, применительно к ОРСУБД, не стоит говорить, что не научились пользоваться. Скорее, если мы хотим реализовать привычное ООП, то в ОРСУБД мало средств (и приходится изобретать свои велосипеды) а "объектность ОРСУБД" мало кому нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 18:54 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
kmawэто - явный минус подхода там явный минус заключается даже в другом совершенно. Наследование - не что иное как простые FK на лишние таблицы Инкапсуляция - не что иное как банальное сокрытие из зоны видимости таблиц и работа через View Полиморфизм - не что иное как IF THEN ... Т.е. автору просто хочется думать, что он построил что-то объектно-ориентированное. Естественно все это построение имеет и массу вытекающих из него недостатков. Например наследование: В таблице TObject хранится наименование, в таблице TPerson хранится вес пациента. Чтобы получить данные о пациенте естественно необходимо связывать 2 таблицы, вместо банального чтения из одной. Это просто самый банальный пример. Чем глубже иерархия наследования, тем более монстрообразная и неустойчивая вся эта конструкция. Точно также и с "полиморфизмом". Вместо банального вывода допустим имени объекта, описание которого хранится в какой-либо таблице, делается что: -дополнительно создаются процедуры, в которых при помощи IF..THEN, образно, программно вызывается нужная, учитывая переданный параметр. Примерно: showmessage(ID) Если ID = 2 то "я человек", иначе - "непонятно кто". И все это вместо простого вызова showmessage('я человек') и т.п. Подробнее... p.s. как сторонник шаблона проектирования K.I.S.S. я, честно говоря, аж поперхнулся. Не со зла конечно, просто по-доброму. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 18:54 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
iscrafm Подробнее ... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 18:55 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
2 Old Nick Как тут заметили, все этим баловались, большинство бросило, некоторые нет. Я сейчас перезентуху отрабатываю ("на кошках"), если есть желание, 1 час времени и ТимВьювер. могу показать, куда это может завести. Скайп в профиле без пробелов. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 19:50 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
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..." ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 19:53 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
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..." ок, принцип. спасибо за поправку, невнимательность. Шаблоны в уме крутились по другому вопросу. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 19:58 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old Nickiv_an_ruOld Nick, У нас в Виртуозе в полный рост сделан create type. Новый тип создаётся на выбор "только для объектов в памяти" или "хранитсяв таблице", с наследованием и с функциями-членами в виде хранимок, явовских функций, перловых, пэхапэшныъ и ещё всяких. Никаких внешних утилит для этого, просто через ODBC или ещё что отправляется на сервер, точно так же, как create table или любой другой запрос. И знаете результат? Это _очень_ мало используемая фича.Вы научились делать, но не научились использовать. А я вот без ООП уже не представляю как разработку вести. Сразу всё упирается в десятикратное увеличение кодированияМы для внутреннего употребления как раз немножко используем. Но СУБД вообще-то делаются для нужд апп-девелоперов, а у них "спрос" на фичу оказался невелик. В итоге основное использование --- быстрое прототипирование абы каких веб-страничек на .vspx (это такой отдалённый аналог .aspx ), в то время как в продакшен в массе своей идут веб-странички на .vsp (то есть сервер для генерации странички тупо зовёт подобающую хранимку ). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 20:20 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Вот интересно, почему кол-во кодеров ваяющих очередную революционную поделку, и убежденных в своей неповторимости не уменьшается. Ведь достаточно поиском по форуму полазить. Ну или погуглить. Или просто книжки почитать. Видать, их нетленные велосипеды все свободное и рабочее время съедают. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 20:37 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
откуда возьмутся новые продукты если их никто не будет "ваять"? Это путь проб и ошибок. Главное в дебри не влазить, хорошо если сразу подскажет кто-то, что это пройденный путь. Не все же являются пользователями продуктов, кто то должен их и создавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 20:45 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
казинакВот интересно, почему кол-во кодеров ваяющих очередную революционную поделку, и убежденных в своей неповторимости не уменьшается.Потому что писать код бизнес-приложения --- скучно. У меня свой критерий для определения ценности таких самоделок: если автор озаботился удобством подготовки документации 1) с своей тулзе и 2) к коду разрабатываемого приложения и к самому приложению, то надо внимательно смотреть. Представьте себе Страуструпа, который бы ограничился написанием транслятора, и не написал учебники по языку. Да его забыли бы все. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 20:47 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
казинакВот интересно, почему кол-во кодеров ваяющих очередную революционную поделку, и убежденных в своей неповторимости не уменьшается. Ведь достаточно поиском по форуму полазить. Ну или погуглить. Или просто книжки почитать. Видать, их нетленные велосипеды все свободное и рабочее время съедают....из-за лени. Сначала лень работать по-старинке, потом лень искать. Надо хоть где-нибудь, но напрячься. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2013, 21:25 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
Old NickБольшинство программистов имя в руках объектно-ориентированный язык не могут объектно-ориентированно проектировать и программировать. Я могу программировать объектно-ориентированно на любом языке программирования, даже на необъектно-ориентированных языках, таких как T-SQL или FoxPro 2.5 или любом процедурном. да пофиг ООП твой и РМД че прогеру надо? инструмент, который по описания задачи сгенерировал бы работающее приложние. Хорошо бы полностью. Но, к сожалению полностью не получается. П трахаться на недоязыках что было ООП :):) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2013, 01:13 |
|
Эффективность разработки ПО
|
|||
---|---|---|---|
#18+
По самодельным фреймворкам/ООП ещё один вопрос: У обычно меня дело не ограничивается одной средой (предположим, делфи). Есть же еще, например, отчеты - фаст или кристалл-репорт + эксель с вордом - а это часто не менее 50..60% задачи. Остаются ли они за рамками общей концепции? Или как-то интегрируются с ней? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2013, 14:35 |
|
|
start [/forum/topic.php?all=1&fid=33&tid=1547725]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
122ms |
get tp. blocked users: |
2ms |
others: | 311ms |
total: | 531ms |
0 / 0 |