Извиняюсь, опять не смог ничего найти, хотя наверно
такая тема уже где-то была.
Заинтересовал вопрос: как лучше освоить ООП?
Точнее — что следует освоить перед этим.
Почему-то мне кажется, что в реальной жизни
все устроено "не по ООП", а объекты могут быть
(или не быть) добавлены к этому.
И программист должен в первую очередь освоить
основы и только потом, если хочет, может добавить ООП.
А если начинать с ООП, ничего хорошего не получится.
Здравствуйте, jeeist, Вы писали:
J>Заинтересовал вопрос: как лучше освоить ООП? J>Точнее — что следует освоить перед этим.
Любая книга по программированию на объектно-ориентированных языках, начинается с основ — типы, идентификаторы, функции и т.п., и только потом идет ООП. Так что надо начинать читать книжки с начала
А насчет того, что в жизни "все не по ООП" — это какая-то странная теория... Мне кажется тот, кто понял ООП, думает как раз противоположным образом.
Здравствуйте, jeeist, Вы писали:
J>Извиняюсь, опять не смог ничего найти, хотя наверно J>такая тема уже где-то была.
J>Заинтересовал вопрос: как лучше освоить ООП? J>Точнее — что следует освоить перед этим.
J>Почему-то мне кажется, что в реальной жизни J>все устроено "не по ООП", а объекты могут быть J>(или не быть) добавлены к этому.
J>И программист должен в первую очередь освоить J>основы и только потом, если хочет, может добавить ООП. J>А если начинать с ООП, ничего хорошего не получится.
Набор заблуждений. ООП во всей красе себя проявляет на больших проектах, поэтому путь только один — начать их разрабатывать. Либо юниором устроиться в большую контору, либо в опен-сорсе к какому-то проекту присоединиться.
Здравствуйте, Baudolino, Вы писали:
B>В жизни всё по ООП. Этим ещё Дарвин пользовался, когда изучал происхождение видов.
В жизни, да. Но в компьютерах — нет, там только единицы и нолики,
которые процессор переключает
Конечно, ООП — это красиво, объекты, функции, вызовы функций.
Но, по-моему, пока человек не представляет, как объекты
расположены в памяти и как процессор "шагает" по этим объектам,
ему трудно будет написать что-то эффективное.
Здравствуйте, sunsquirel, Вы писали:
S>Любая книга по программированию на объектно-ориентированных языках, начинается с основ — типы, идентификаторы, функции и т.п., и только потом идет ООП. Так что надо начинать читать книжки с начала S>А насчет того, что в жизни "все не по ООП" — это какая-то странная теория... Мне кажется тот, кто понял ООП, думает как раз противоположным образом.
Мне кажется, что понимать ООП — это означает понимать,
что под ООП стоит основа, которая не является "ОО"
Просто я пытаюсь сделать веб-сайт с использованием ООП,
но так чтобы я понимал, как этот сайт работает.
Здравствуйте, Baudolino, Вы писали:
B>В жизни всё по ООП. Этим ещё Дарвин пользовался, когда изучал происхождение видов.
Да ну? Дарвин точно не думал, что пользуется ООП
А вообще есть хороший фильм — "23" — там главный герой начинает верить в магию цифр и начинает видеть в своей жизни только цифры 2 и 3.
Думаю не стоит уподобляться этому герою и видеть в мире только ООП — ведь есть и другие парадигмы, которые когда надо применять при необходимости
Здравствуйте, jeeist, Вы писали:
J>Заинтересовал вопрос: как лучше освоить ООП? J>Точнее — что следует освоить перед этим.
Прочитай книгу Гради Буча "Объектно-ориентированный анализ и проектирование". Она есть в электронном виде, но такие книги лучше иметь в бумажном варианте. Собственно, даже не знаю, что нужно знать перед ООП, но однозначно, для этого надо быть в какой-то степени личностью, организованной по принципам ООП). Вообще, изучить ООП нелегко, это большая работа, но легких путей не бывает. НЕ БЫВАЕТ, советую еще раз перечитать эти слова.
Здравствуйте, jeeist, Вы писали:
J>Извиняюсь, опять не смог ничего найти, хотя наверно J>такая тема уже где-то была.
J>Заинтересовал вопрос: как лучше освоить ООП? J>Точнее — что следует освоить перед этим.
Гради Буч, "Объектно-ориентированный анализ и проектирование".
J>Почему-то мне кажется, что в реальной жизни J>все устроено "не по ООП", а объекты могут быть J>(или не быть) добавлены к этому.
В ООП объекты выполняют операции после запроса субъекта, который должен сам справляться об их состоянии, в жизни субъект напрямую оперирует объектами и испытывает их воздействие на него.
J>И программист должен в первую очередь освоить J>основы и только потом, если хочет, может добавить ООП. J>А если начинать с ООП, ничего хорошего не получится.
Здравствуйте, vl690001x, Вы писали:
V>Прочитай книгу Гради Буча "Объектно-ориентированный анализ и проектирование". Она есть в электронном виде, но такие книги лучше иметь в бумажном варианте. Собственно, даже не знаю, что нужно знать перед ООП, но однозначно, для этого надо быть в какой-то степени личностью, организованной по принципам ООП). Вообще, изучить ООП нелегко, это большая работа, но легких путей не бывает. НЕ БЫВАЕТ, советую еще раз перечитать эти слова.
Я тоже прочел, понял, книга понравилась, наверно являлся ООП-личностью. И стал вовсю использовать.
Только получилось что-то ужасное.
Т.е. личностью, написать что-то простое, не являлся Чего-то не хватало...
Здравствуйте, vl690001x, Вы писали:
V>Вообще, изучить ООП нелегко, это большая работа, но легких путей не бывает. НЕ БЫВАЕТ, советую еще раз перечитать эти слова.
Советую перестать дрочить на ООП, ПЕРЕСТАТЬ ДРОЧИТЬ, запомните эти слова.
Здравствуйте, Vladek, Вы писали:
V>В ООП объекты выполняют операции после запроса субъекта, который должен сам справляться об их состоянии, в жизни субъект напрямую оперирует объектами и испытывает их воздействие на него.
Да, но ООП — это про объекты, а не субъекты Это слово там
не упоминается
А если серьезно, то к объектам предметной области
надо добавить объекты ГУИ, веб-сервера, итд. Иначе будут
красивые картинки и ужасные программы.
Здравствуйте, jeeist, Вы писали:
J>Заинтересовал вопрос: как лучше освоить ООП?
Взять нормальный объектный (это не С++ подобный и тем более не язык поддерживающий несколько парадигм) язык и попрограмировать на нём. Рекомендую SmallTalk.
J>Точнее — что следует освоить перед этим.
Ничего это независимая парадигма и не требует спец знаний для использования.
J>Почему-то мне кажется, что в реальной жизни J>все устроено "не по ООП", а объекты могут быть J>(или не быть) добавлены к этому.
Ну иерархии не в ту сторону
В програмировании иерархия расширяет функциоанльность в реальном мире уточняет.
Это как класический вопрос как относятся между собой квадрат и прямоугольник
J>И программист должен в первую очередь освоить J>основы и только потом, если хочет, может добавить ООП.
Основы это ассемблер? да это основа сех процедурных языков програмирования.
Но к объектоному это не имеет ниикакого отношения. Тут скорее нужно забыть что внутри, что бы писать красивые программы в объектом стиле.
J>А если начинать с ООП, ничего хорошего не получится.
Если считать что человек думающий иначе чем ты заведомо думает хуже, то да.
Здравствуйте, jeeist, Вы писали:
J>Здравствуйте, Vladek, Вы писали:
V>>В ООП объекты выполняют операции после запроса субъекта, который должен сам справляться об их состоянии, в жизни субъект напрямую оперирует объектами и испытывает их воздействие на него.
J>Да, но ООП — это про объекты, а не субъекты Это слово там J>не упоминается
Субъектом является сама программа. Или один объект по отношению к другому.
J>А если серьезно, то к объектам предметной области J>надо добавить объекты ГУИ, веб-сервера, итд. Иначе будут J>красивые картинки и ужасные программы.
Чего? Предметная область моделируется в программе ровно до той степени, в которой это необходимо для решения задачи. В чём вообще проблема? КУод не так элегантен как хотелось? Рефакторьте. Грамотно спроектированная система сама подсказывает где что надо исправить. Пишите тесты, формируйте удобный API к коду, затем пишите сам код, что API стал проходить тесты.
Вот вам тест на ООП: сколько программистов требуется, чтобы ввернуть лампочку?
J>Почему-то мне кажется, что в реальной жизни J>все устроено "не по ООП", а объекты могут быть J>(или не быть) добавлены к этому.
"В реальной жизни" — имелось ввиду то, что _реально_
происходит на уровне аппаратуры или ОС, в отличии от
уровня языка программирования, среды разработки.