powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Множественное наследование
25 сообщений из 127, страница 5 из 6
Множественное наследование
    #34074897
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerОписывая такое вот "плоское программирование", Вы практически говорите о повседневном труде кодеров.

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


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

Предлагаю так же, не делать тождества между "наследованием" и "проектированием". Я об этом не говорил.
Использовать наследование или нет - это только один из многих вопросов, которые нужно решать при проектировании.
Поэтому если перед человеком не встают задачи, где требуется что-нибудь в четыре этажа отнаследовать - это не обязательно значит, что он неспособный на творческую деятельность "кодер" - просто такова специфика большинства решаемых задач.

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

NotGonnaGetUsОпять же, каков процент "студентов" среди общего числа разработчиков и какие "куски проектирования" им можно давать? :)
Это непростой вопрос. У многих "студентов" присутствует неподтвержденно высокое мнение о своих возможностях, соответственно желание взять большой кусок задачи...... некоторые таки его неплохо делают :)

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

Ну а дальше - вопрос не столько в том, "какие куски давать", сколько "насколько плотно и тщательно при этом контролировать".

NotGonnaGetUsПредлагаю так же, не делать тождества между "наследованием" и "проектированием".
Безусловно, не следует. Я в данном случае употребил проектирование исключительно как стадию, в ходе которой возникает желание отнаследовать.
...
Рейтинг: 0 / 0
Множественное наследование
    #34074985
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerПо моему опыту, "направление решения" и "вид результата" прежде всего определяется тем, кто именно решает задачу, и уже во вторую очередь - тем, какая именно задача решается.

Т.е. с оценкой 90% на 10% вы категорически не согласны? :)
...
Рейтинг: 0 / 0
Множественное наследование
    #34075025
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsТ.е. с оценкой 90% на 10% вы категорически не согласны? :)
Я полагаю, что дисперсия этой оценки делает ее бессмысленной. Грубо говоря, есть люди, у которых будет 100/0, а есть люди, у которых будет 60/40. Для одних и тех же задач.
...
Рейтинг: 0 / 0
Множественное наследование
    #34075181
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerЯ полагаю, что дисперсия этой оценки делает ее бессмысленной. Грубо говоря, есть люди, у которых будет 100/0, а есть люди, у которых будет 60/40. Для одних и тех же задач.

Мы опять о несколько разном говорим.

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

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

Моё имхо, что отношение получится 90/10, из чего я делаю вывод, что среди людей обсуждающих наследование, и в особенности МН, преобладают люди не имевшие возможности на практике проверить истинность своих теорий.

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

Естественно серьёзно относиться к конкретным цифрам нельзя, т.к. для этого не собрано никакой сколько-нибудь объективной статистики. Тем не менее, порядок величин - 90/10, 80/20 - выглядит достаточно похожим на правду...
...
Рейтинг: 0 / 0
Множественное наследование
    #34075389
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUsПримем в первом приближении, что глядя на задачу можно объективно оценить к какому из двух классов она принадлежит
Именно это приближение я не готов принять. Точнее, я безусловно способен "объективно оценить" со своей колокольни, но абсолютно уверен в том, что при статистически значимой выборке оценивающих мы получим прорву других объективных оценок. При этом поставить эксперимент "чьи оценки в итоге окажутся точнее" весьма затруднительно.

Мало того, я полагаю, что тут есть определенная вариативность, и там, где для себя я выбрал бы вариант А, другому человеку я сам бы сказал: знаешь.... делай лучше Б.

NotGonnaGetUsМоё имхо, что отношение получится 90/10, из чего я делаю вывод, что среди людей обсуждающих наследование, и в особенности МН, преобладают люди не имевшие возможности на практике проверить истинность своих теорий.
Я существенно более оптимистичен. По нескольким причинам, из которых в первую очередь назову следующую: даже того, что Вы отнесли к 90%, на самом деле хватает, чтобы сделать многие верные выводы. Не обязательно учиться на собственных ошибках.

NotGonnaGetUsт.к. мне кажется очень вероятным значительное пересечение множества программистов склонных к более частому использованию наследования с множеством программистов решающих задачи действительно требующих применение наследования :)
Помимо прочего, я уверен в существовании широкого класса пограничных задач, то есть тех, для которых нельзя выбрать однозначно лучший вариант решения. Однозначно лучший - в смысле "компетентные эксперты единодушно выскажутся за этот вариант".
...
Рейтинг: 0 / 0
Множественное наследование
    #34076330
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что вы тут спорите? Ваще не понимаю. Надо б вначале научить людей мыслить в терминах ООП... без МН. а не кодить процедурно.
грязно плююсь от текущего колупания в лапше из if'ов и switch'ей
...
Рейтинг: 0 / 0
Множественное наследование
    #34076382
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimmНадо б вначале научить людей мыслить в терминах ООП... без МН. а не кодить процедурно.
Для начала хорошо бы понимать, что ООП - это синтаксис, ничего нового в мышление оно не вносит. Ровно как break - удобный синтаксис записи частного случая goto, так и допустим виртуальный метод - удобный синтаксис записи частного случая указателя на функцию. Человек либо умеет выбирать адекватное решение - и выбирает его безотносительно ООП - либо не умеет, и получаем -

Timmгрязно плююсь от текущего колупания в лапше из if'ов и switch'ей
Именно что. Лапшу можно делать из ASSIGNABLE GOTO (была такая прелестная форма этого оператора), можно из ифоф и свитчей (я как-то на спор написал фрагмент программного кода в стиле "классическое спагетти", пользуюясь только и исключительно "структурными" if и while), ну а последние лет десять я периодически ругаюсь словами "объектно-ориентированное спагетти".
...
Рейтинг: 0 / 0
Множественное наследование
    #34076400
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer NotGonnaGetUsПримем в первом приближении, что глядя на задачу можно объективно оценить к какому из двух классов она принадлежит
Именно это приближение я не готов принять.

Ок. Ваше имхо построенное на личном опыте против аналогичного моего :)

softwarer
По нескольким причинам, из которых в первую очередь назову следующую: даже того, что Вы отнесли к 90%, на самом деле хватает, чтобы сделать многие верные выводы.
Ну да.
Этого хватает, чтобы корректно решаеть многие задачи, но не хватает, чтобы осмысленно рассуждать о наследовании самом по себе и множественном наследовании в частности.

Вспоминаю топик на другом форуме. Человек утверждал, что наследовать можно что угодно и от чего угодно (например, человека от руки или геометрическую фигуру от точки). При этом ссылки на LSP и т.п. он бодро игнорировал, заявляя, что раз он и никто из его сослуживцев не в курсе данного приниципа, то принимать его во внимание не стоит.

softwarer
Не обязательно учиться на собственных ошибках.

Я бы перефразировал: обязательно нужно учиться на чужих ошибках.
Т.е. нужно читать, нужно общаться с коллегами, нужно искать интересные решения в существующем коде.

Однако какова массовая доля программистов активно идущих этим путём? :)
Или, как пишет Марконелл: "спросите себя - сколько книг по программированию вы прочитали на последние полгода?".

softwarerОднозначно лучший - в смысле "компетентные эксперты единодушно выскажутся за этот вариант".
А другие компетентные эксперты скажут: "да ну ваше неповоротливое и тяжёловесное ООП в баню. Эрланг рулит" :) И будут в общем-то правы по своему.
Но это уже оффтопик :)
...
Рейтинг: 0 / 0
Множественное наследование
    #34076413
Фотография Timm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer[quot Timm]Надо б вначале научить людей мыслить в терминах ООП... без МН. а не кодить процедурно.
Для начала хорошо бы понимать, что ООП - это синтаксис, ничего нового в мышление оно не вносит.
[quot]
ээ. не согласен. категорически. ООП - это не синтаксис. Синтаксис - это язык, в терминах которого человек выражает объедко-ориентированные мысли. о как :)
...
Рейтинг: 0 / 0
Множественное наследование
    #34076475
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TimmСинтаксис - это язык, в терминах которого человек выражает объедко-ориентированные мысли. о как :)
Как называть эти мысли - вопрос имхо десятый. Мне трудно называть "объектно-ориентированными" мысли, которые появились и были известны в семидесятых годах. Главное - понимать то, что есть мысли [сами по себе], есть форма их записи на конкретном языке. К сожалению, большинство авторов книг смешивает эти понятия, создавая разруху в головах.
...
Рейтинг: 0 / 0
Множественное наследование
    #34078705
AciD_v
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Timm[quot softwarer]ООП - это не синтаксис. Синтаксис - это язык, в терминах которого человек выражает объедко-ориентированные мысли. о как :)
В отношнении мыслей ООП - это все-таки синтаксис. Если попытаться провести аналогию с шаблоном MVC, то мысли - это M и C, а объектно-ориентированные мысли - это V. Хотя кто-то со мной может не согласиться.

А вообще, я к тому, что все сравнения нужно проводить в пределах одного словаря с набором аксиом, и определения понятиям давать тоже в пределах этого словаря.
...
Рейтинг: 0 / 0
Множественное наследование
    #34079747
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читал, читал решил тоже свою лепту скромну внести.
1. МН - нельзя сказать, что это однозначно плохо (в принципе, ни о чем так сказать нельзя), но все таки я его буду стараться избегать или реализовывать через интерфейсы. Включения его в Java не хочу (хотя кто меня спросит).
2. ООП. Новая идеология или нет. Вирт считает, что нет. В одном из интервью он сказал, что-то вроде того
почти Вирт
Меня удивляет, когда про инкапсуляцию узнают только при начале работы с ООП.

Так, нам в ВУЗе давали эти понятия без использования принципов ООП. Хотя я к тому времени уже знал о нем и видел, что ООП позволяет их очень легко использовать (за что низкий поклон Сульповару из ЛЭТИ).
С другой стороны, я все-таки думаю, что думать на ООП можно. Тут получается другой стиль мышления, чем при линейном (так оно называется?) программирование. По крайне мере когда я писал курсовики своим одногруппникам, мне переходилось переключаться на другой стиль мышления (Я практически сразу стал писать с помощью объектов. Кстати, писал на Дельфи, а про объекты узнал из книги на Java. И еще потом лет 6 писал(пишу) на Дельфи).

Ну а на счет программистов, которые используют проектирование или нет. Кому что в жизни надо, тот это от жизни и берет. Вряд ли системному программисту, которые пишет встроенное ПО нужно ООП. Они вообще стараются на C писать (по крайне мере у нас, и про Nokia мне так говорили). С другой стороны, если человек хочет стать архитектором - он будет задумываться над архитектурой и искать разные решения.
...
Рейтинг: 0 / 0
Множественное наследование
    #34079809
Matzumoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerДля начала хорошо бы понимать, что ООП - это синтаксис, ничего нового в мышление оно не вносит. Атец, знаешь, с таким пониманием вопроса тебе не программистом надо быть, а артиллеристом. ООП - это не синтаксис и к синтаксису относится так же как к целлюлиту, т.е. ортогонально. В ОО стиле можно на асме писать и на лиспе, это МЕТОДОЛОГИЯ программирования, а никак уж не синтаксис. Методология, способствующая применению принципа "разделяй и властвуй", способствующая еще больше, чем структурное и процедурное программирование.

С ООП идет рука об руку ООД. Объектно-ориентированный дизайн программ.
...
Рейтинг: 0 / 0
Множественное наследование
    #34079991
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvС другой стороны, я все-таки думаю, что думать на ООП можно. Тут получается другой стиль мышления, чем при линейном (так оно называется?) программирование.
Нет. Линейное программирование - это ну совсем другая тема, к "программированию в нашем смысле" относящаяся опосредованно: http://www.dvo.ru/studio/linpro/lp1st/node3.html

"Думать на ООП" в каком-то смысле можно, только это уже как минимум называется ООД. Да и то... впрочем, обсуждая эту тему, неизбежно упремся в понимание терминов?

LeonidvПо крайне мере когда я писал курсовики своим одногруппникам, мне переходилось переключаться на другой стиль мышления
Ээ... зачем? Не понял, Вы писали себе объектно, а им - нет?

Leonidv(Я практически сразу стал писать с помощью объектов. Кстати, писал на Дельфи, а про объекты узнал из книги на Java. И еще потом лет 6 писал(пишу) на Дельфи).
Увы, классическая история из серии "учил дельфу по плохой книге".

Мне в этом плане повезло, поскольку про объекты я узнал лет за восемь до появления явы.

LeonidvНу а на счет программистов, которые используют проектирование или нет. Кому что в жизни надо, тот это от жизни и берет. Вряд ли системному программисту, которые пишет встроенное ПО нужно ООП. Они вообще стараются на C писать
Хм. Подумайте еще раз: если ООП - это способ мышления, какая разница, на чем писать? Те идеи, которые ассимилировало ООП, как раз и привели к появлению Паскаля, Си, Ады; собственно, ООП по большому счету выросло из обобщения опыта работы на этих языках. Эти идеи отлично реализуются на ассемблере, на любом интерпретаторе, сугубые проблемы будут лишь на старых компиляторах типа Fortran IV или PL/I.

То, что Вы говорите, как раз служит иллюстрацией к "путанице между идеями и синтаксисом", о которой я говорил чуть раньше.

Признаться, меня всегда коробит, когда встроенное ПО относят к системному программированию, но это отдельный вопрос. Встроенное ПО бывает достаточно разным, и в нем наверняка можно назвать задачи, в которых ООП вполне применимо, хотя безусловно в большинстве случаев подход "узко и прямо".
...
Рейтинг: 0 / 0
Множественное наследование
    #34080295
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Нет. Линейное программирование - это ну совсем другая тема, к "программированию в нашем смысле" относящаяся опосредованно: http://www.dvo.ru/studio/linpro/lp1st/node3.html

Мне так на одном собеседование сказали. О ЛП я даже курсовик в Wolfram Mathematica делал, уже забыл :(

softwarer
LeonidvПо крайне мере когда я писал курсовики своим одногруппникам, мне переходилось переключаться на другой стиль мышления
Ээ... зачем? Не понял, Вы писали себе объектно, а им - нет?

Да. Именно так. И меня это немного напрягало вначале.

softwarer
Увы, классическая история из серии "учил дельфу по плохой книге".

Не совсем понял, причем тут конкретный язык и ООП. Но вообще так же как сейчас Java я дельфи не изучал. А книжки у меня хорошие, вроде Марок Канту (?) и "Профессиональное использование D3" - сборник, страниц на 1000.
Только это книги не по ООП, а по Delphi. Книги по ООП - это GoF, Фаулер и другие.

softwarer
Мне в этом плане повезло, поскольку про объекты я узнал лет за восемь до появления явы.

Я в это время еще не родился, в 1983 году.
softwarer
LeonidvНу а на счет программистов, которые используют проектирование или нет. Кому что в жизни надо, тот это от жизни и берет. Вряд ли системному программисту, которые пишет встроенное ПО нужно ООП. Они вообще стараются на C писать

Хм. Подумайте еще раз: если ООП - это способ мышления, какая разница, на чем писать?

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

А все-таки раскройте, что такое системное программирование? Интересно узнать.
...
Рейтинг: 0 / 0
Множественное наследование
    #34080371
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvНе совсем понял, причем тут конкретный язык и ООП.
Ну вот. Для кого Blazkowicz о properties и hashtable вспоминал? :)
Конкретный язык, конкретно влияет на то "ООП", которое в нём используется.


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


Вспоминается фраза из утреннего шоу бачинского и стилавина:
- Ему в голову звёздый десант лезет! :)
...
Рейтинг: 0 / 0
Множественное наследование
    #34080422
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NotGonnaGetUs
Ну вот. Для кого Blazkowicz о properties и hashtable вспоминал? :)

Ну вы же не хотите сказать, что использование наследования вместо композиции там, где ему не место, в Java есть плохо, а в Delphi есть хорошо?
...
Рейтинг: 0 / 0
Множественное наследование
    #34080430
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv NotGonnaGetUs
Ну вот. Для кого Blazkowicz о properties и hashtable вспоминал? :)

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

Я хочу сказать, что использование наследование в данном случае для C++ будет хорошо, а для java плохо.
...
Рейтинг: 0 / 0
Множественное наследование
    #34080472
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не большой специалист по этим вопросам (пока), но мне кажется - что это везде плохо. Как на Java, так на C++, так и на Delphi. По крайне мере когда Блох объясняет это в своей книги, он говорит "вот так делать не надо", а не "на Java так делать не надо".
...
Рейтинг: 0 / 0
Множественное наследование
    #34080539
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvЯ не большой специалист по этим вопросам (пока), но мне кажется - что это везде плохо. Как на Java, так на C++, так и на Delphi. По крайне мере когда Блох объясняет это в своей книги, он говорит "вот так делать не надо", а не "на Java так делать не надо".

На Блоха теперь нужно молиться?
Он написал одну маленьку книжечку, где на пальцах показал некоторые особенности реализации java библиотек из-за чего стал популярен. При этом он поливал дерьмом всё, что писал не он сам, и хвалил собственные творения (коллекции java2).

Возвращаясь в properties.
Если бы вы внимательно читали о чём писалось выше, вы бы увидели и слова софтварера и мои, где объявняется почему в java это плохое решение.

Ещё раз: в java нет закрытого наследования, т.е. нельзя отнаследоваться и скрыть от публики часть методов родителя. Поэтому приходится изобретать делегирование. Это всё следствия особенностей оо-нотации принятой в java и к ООП имеет мало отношения.
...
Рейтинг: 0 / 0
Множественное наследование
    #34080851
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое скрытое наследование?
Я так понимаю, что если A наследуется от B, то везде где нужен B можно подставить A. Если я правильно понял, то скрытое наследование это правило нарушает?
...
Рейтинг: 0 / 0
Множественное наследование
    #34080896
АСУ ТПшник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поддерживаю вопрос.
...
Рейтинг: 0 / 0
Множественное наследование
    #34080913
АСУ ТПшник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вообще, пользуйте private, а то понимаешь развели семейственность в лучших традициях мафиози - ты мой старший сын, тебе рулить песочницей, а ты сын моего сына, нехрена тебе песочницей рулить :)

Для особо рьяных: это была шутка.
...
Рейтинг: 0 / 0
Множественное наследование
    #34081007
NotGonnaGetUs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АСУ ТПшникДля особо рьяных: это была шутка.
Специфический птушный юмор?

Leonidv
А что такое скрытое наследование?

Мне повторить абзац из предыдущего сообщения?

Остановись на секундочку и подумай: если ты не знаешь, что бывает скрытое наследование, не в курсе того, как могут разрешаться "конфликты" при МН, то как ты можешь говорить о том, что ООП существует вне контекста языка программирования и более того, что ты думаешь именно в его терминах?!
...
Рейтинг: 0 / 0
25 сообщений из 127, страница 5 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Множественное наследование
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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