Модераторы: Се ля ви

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как удалось перейти к ООП технически, Как удалось перейти к ООП технически 
:(
    Опции темы
Guitar_Player
Дата 25.1.2008, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 2.1.2007
Где: г.Новосибирск

Репутация: нет
Всего: нет



Мне тут задали такой вопросик: 
Как известно, программирование начало развиваться как программирование структурного(процедурного) типа. В далбнейшем стиль программирования изменился, оно стало ООП. Вопрос в следующем в чем заключалась суть революции ООП, если такая революция имела место.

Нельзя говорить слова типо объект, класс и т.д.

Требуется конкретное техническое решение.
PM MAIL WWW ICQ   Вверх
izekia
Дата 25.1.2008, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



Guitar_Player, ты где-то услышал слово ООП и тебе оно понравилось?
причем здесь конкретное техническое решение
PM MAIL   Вверх
Guitar_Player
Дата 25.1.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 2.1.2007
Где: г.Новосибирск

Репутация: нет
Всего: нет



Притом что нужно не принципы, не предусловия,постусловия а именно какое решение повлекло к созданию объектно ориентированного программирования
PM MAIL WWW ICQ   Вверх
Platon
Дата 25.1.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: нет
Всего: 40



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

Если по делу всегда слушай Вики
PM MAIL ICQ   Вверх
izekia
Дата 25.1.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



Guitar_Player, ООП в общем случае расшифровывается как подход, а не как программирование.
Никакого решения не было, существует куча парадигм, которые так или иначе развивались ООП - одна из них, наиболее популярная на сегодняшний день. Как мне кажется. 

То что я написал выше для того, чтобы дать тебе понять, что твой вопрос по меньшей мере некорректен

Добавлено через 3 минуты и 27 секунд
Platon, ну по поводу скорости - это сложный вопрос
и далеко не однозначный

PM MAIL   Вверх
Platon
Дата 25.1.2008, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1801
Регистрация: 25.4.2006

Репутация: нет
Всего: 40



Цитата(izekia @  25.1.2008,  14:16 Найти цитируемый пост)
ну по поводу скорости - это сложный вопрос

ну, как же? Был бы медленный, не получил бы такого распространения.
PM MAIL ICQ   Вверх
Guitar_Player
Дата 25.1.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 2.1.2007
Где: г.Новосибирск

Репутация: нет
Всего: нет



Но все таки что изменилось технически?
При поступлении на работу в 1С дают список вопросов один из них этот.


Это сообщение отредактировал(а) Guitar_Player - 25.1.2008, 13:36
PM MAIL WWW ICQ   Вверх
izekia
Дата 25.1.2008, 13:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



Guitar_Player, ты имел в виду во франча?
позови автора и спроси что он имел в виду
вопрос поставлен некорректно
Что значит технически?


Platon, у него немного другие преимущества, хотя их оспаривают и небезуспешно
скорость разработки мало зависит от выбранной парадигмы   smile 

Это сообщение отредактировал(а) izekia - 25.1.2008, 13:48
PM MAIL   Вверх
onsql
Дата 25.1.2008, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 3.12.2007

Репутация: нет
Всего: 3



Бери Гради Буча "Объектно-ориентированный анализ и проектирование", сделай небольшой конспект одной из первых глав, где обмусоливается ООП со всех сторон. Выучи его и всегда на подобные вопросы по ООП отвечай его словами. Хорошо если его самого при этом упомянешь, типа "как пишет великий и ужасный Гради Буч, один из соавторов УМЛ, автор многочисленных фудаментальных работ по ООП...". Не станут же они в здравом уме спорить с Великим и Ужасным! smile))
PM MAIL   Вверх
izekia
Дата 25.1.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



onsql, да он про какую-то непонятную технологию пишет
то что с++ Страуструп придумал?
но так ООП и до него было

Добавлено через 1 минуту и 2 секунды
onsql
там первые пять глав стоит прочитать)
за исключением нотации, хотя для общего понимания развития УМЛ и ее можно
PM MAIL   Вверх
onsql
Дата 25.1.2008, 14:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 94
Регистрация: 3.12.2007

Репутация: нет
Всего: 3



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

Добавлено через 4 минуты и 47 секунд
Привести конкретный технический пример про абстрактную фигуру и конкретные треугольник, круг, квадрат и мол как раньше мы как дураки делали switch по типу фигуры, но теперь то, в постреволюционные времена дружно делаем виртуальный метод draw у фигуры и используем полиморфизм.
PM MAIL   Вверх
Guitar_Player
Дата 25.1.2008, 14:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 2.1.2007
Где: г.Новосибирск

Репутация: нет
Всего: нет



Ну мы с ней по icq общались я ей в начале что вот суть революции ООП: переход от"сделать так как удобно выполнить машине" к "...удобно выполнить это человеку".
Она:  требуется конкретное техническое решение -как удалось перейти к ООП технически. Философия не интересует.
Я начинаю говорить что вот появились 3 основные идеи. Там все такое облегчило жизнь.
Она: это принципы ООП,а не техническое решение.
Вот я и обратился за помощью к вам. просто даже не знаю про что она... Слышал при процедурном подходе есть ограничение по количеству слов, в ооп оно больше. Вообще фиг знает. smile 

///////////////////////////

А может революция заключалось в объединении данных и кода?

Это сообщение отредактировал(а) Guitar_Player - 25.1.2008, 14:48
PM MAIL WWW ICQ   Вверх
izekia
Дата 25.1.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



Guitar_Player, а тебе надо в такую контору устраиваться, где так проводят собеседования?
она не понимает о чем она спрашивает, а вопрос задан некорректно
попроси переформулировать вопрос

прямо так и скажи, что вопрос некорректен, и у него нет однозначности.
Можно сказать, что появились новые мегакомпьютеры, которые позволили создать языки использующие ООП
PM MAIL   Вверх
izekia
Дата 25.1.2008, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



Guitar_Player, как вакансия называется?
PM MAIL   Вверх
archimed7592
Дата 25.1.2008, 15:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: нет
Всего: 93



История умалчивает, но до меня доходили слухи(от весьма неадекватного человека, так что правдивость оставляю под вопросом), что некая женщина ещё во времена великого и могучего Си придумала такую вот хреновину:
Код

struct OOP
{
    // functions
    void (*doSmth)(struct OOP *obj, int arg);
    // data
    int member;
};

void OOP_doSmth(struct OOP *obj, int arg)
{
    obj->member += arg;
}

void OOP_ctor(struct OOP *obj)
{
    obj->doSmth = OOP_doSmth;
    obj->member = 0;
}
// ...

struct OOP *obj = (struct OOP *)malloc(sizeof(*obj));
OOP_ctor(obj);
obj->doSmth(obj, 123);

После чего это трансформировалось в применение vftbl(т.е. уменьшились размеры объектов).
Код

struct OOP_vftbl
{
    // functions
    void (*doSmth)(struct OOP *obj, int arg);
};

struct OOP
{
    struct OOP_vftbl *vftbl;
    // data
    int member;
};

// ...
obj->vftbl->doSmth(obj, 123);


Но, на самом деле, если кто читал D&E Старуструпа, те знают, истинные причины, перечислять которые я не буду, ибо если кто не читал - лучше прочесть.

Попробуй ответить ей именно про таблицу виртуальных ф-ций - может она именно это хочет услышать smile.

PS. Пишу в контексте C/C++, ибо тема перемещена именно из С++.

Это сообщение отредактировал(а) archimed7592 - 25.1.2008, 15:16


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
izekia
Дата 25.1.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



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

идея про то, что функции обработки данных были помещены в один контекст с этими данными, те были убраны из глобального контекста - тоже как бы не совсем техническая часть, а опять же часть концепции
PM MAIL   Вверх
archimed7592
Дата 25.1.2008, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: нет
Всего: 93



Цитата(izekia @  25.1.2008,  15:20 Найти цитируемый пост)
то есть в техническом плане революции не было

Возможно, что для этой женщины(та что на аське сидит) - это было технической революцией smile.


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
izekia
Дата 25.1.2008, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



archimed7592, мне кажется ситуация как в детском саду, когда вопросы местами поменяли
PM MAIL   Вверх
warmonger_
Дата 25.1.2008, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 7.7.2007
Где: г. Киев

Репутация: нет
Всего: 3



Цитата(Guitar_Player @  25.1.2008,  12:36 Найти цитируемый пост)
Вопрос в следующем в чем заключалась суть революции ООП

еще можно сказать, для повторного использования программного кода.
--------------------
Make everything as simple as possible, but not simpler.Albert Einstein
PM MAIL   Вверх
georain
Дата 27.1.2008, 05:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 193
Регистрация: 28.11.2006
Где: Санкт-Петербург

Репутация: нет
Всего: нет



Я не знаю про эту, но в основном эти девушки, как боты, они задают вопрос и ответ должен быть в точности как у них написано в ответе,  до символов препинания.
PM MAIL   Вверх
izekia
Дата 27.1.2008, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 83
Регистрация: 5.12.2007

Репутация: нет
Всего: 3



georain, да, когда я устраивался на работу , девушка из кадров перепутала буквы и долго пыталась узнать у меня не владею ли я программой с каки-то левым названием, причем все попытки поправить ее не увенчались успехом, в итоге я честно сознался, что такой проги не знаю.
Потом перезванивали оттуда, типа звали на собеседование, но я побоялся ... ну нафиг такие конторы.
PM MAIL   Вверх
TeAnton
Дата 30.1.2008, 01:21 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 40
Регистрация: 5.7.2007

Репутация: нет
Всего: нет



Я так понимаю, это все кровью и потом выработалось.

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

Наплодили программисты кучу функций с названиями cube_draw, line_draw, circle_draw... замучились и поняли, что полиморфизм и наследование это здорово.

Вот приблизительно так.


PM MAIL   Вверх
EvilsInterrupt
Дата 23.2.2008, 14:14 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Executables research
***


Профиль
Группа: Завсегдатай
Сообщений: 1019
Регистрация: 14.7.2007
Где: Железнодорожный, МО, Россия

Репутация: нет
Всего: 9



Следует различать программирование, мышление и реализацию.
Что все это значит ?

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

Для процессора, код не особо изменился. Даже не смотря на то что появились таблицы на методы, таблицы с интерфейсами и другие вещи, все это уже было, только раньше человек это в ручную писал для каких-либо  нужд. Рекомендую почитать в 3-х томнике Кнута, там отчетливо все это прослеживается!
Поменялось всего-лишь наше мышление! Мы поняли,что мы думаем объектами, а не структурно. Пример:
"Сынок дай шкафу стакан воды, а то он пить хочет". а в ответ "Почему ? Шкафы же пить не умеют!" . Спросите себя почему это шкаф не умеет пить? Глупо говорить, что не умеет, а может все таки умеет? Ответ прост: в голове у любого здраво мыслящего человека есть концепция шкафа и в нее не входит, что он умеет пить!!!

Вот и пришел человек к мысли, хорошо, пусть дядя Вася напишет Базу Данных(TDataBaseManager), а я напишу клиента(т.е. АРМ). Это естественное разделение труда, но человек не сразу к этому пришел. Но все таки, чисто технически, как было, так и осталось! Компиллеры, просто включили в себя инструкции class, virtual и некоторые другие. Но все осталось в том же виде, Ваш процессор вообще не поймет разницы меж ООП и структурным методом написания программы. Потому что для него все подано практически в одинаковом виде!

Не техническое поменялось, а поменялось мышление программистов!
PM MAIL WWW ICQ Jabber   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Системный анализ, проектирование и UML"
Се ля ви

Форум "Системный анализ, проектирование и UML" предназначен для обсуждения вопросов, так или иначе связанных с этапами жизненного цикла автоматизированных (программных, информационных, автоматических) систем:

• предпроектные обследования объектов автоматизации;

• разработка концепции создания систем;

• моделирование бизнес-процессов (в т.ч. на UML);

• проектирование архитектуры систем;

• управление проектами;

• управление качеством;

• CASE-средства;

• реинжиниринг.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Системный анализ, проектирование и UML | Следующая тема »


 




[ Время генерации скрипта: 0.1205 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.