А ООП вообще парадоксальная тема. Обычно, при изучении чего-то нового и сложного, изучающий проходит следующие этапы:
1. Что за чертовщина?
2. Что-то не врублюсь.
3. Впринципе, все понятно.
4. Эксперт.
Но в отношение ООП порядок строго обратный: 4, 3, 2, 1!
Но самое интересное — на этом все не заканчивается и ряд продолжается: 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1...
Поэтому, если встретится оппонент, находящийся, скажем, на этапе 2, целесообразно выяснить, на каком витке спирали он находится...
Здравствуйте, artelk, Вы писали:
A>Но в отношение ООП порядок строго обратный: 4, 3, 2, 1! A>Но самое интересное — на этом все не заканчивается и ряд продолжается: 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1...
Пруфлинк?
Здравствуйте, artelk, Вы писали:
A>А ООП вообще парадоксальная тема. Обычно, при изучении чего-то нового и сложного, изучающий проходит следующие этапы:
A>1. Что за чертовщина? A>2. Что-то не врублюсь. A>3. Впринципе, все понятно. A>4. Эксперт.
Классические этапы:
1) Не умеешь использовать.
2) Умеешь использовать.
3) Умеешь не использовать.
Здравствуйте, artelk, Вы писали:
A>А ООП вообще парадоксальная тема. Обычно, при изучении чего-то нового и сложного, изучающий проходит следующие этапы:
A>1. Что за чертовщина? A>2. Что-то не врублюсь. A>3. Впринципе, все понятно. A>4. Эксперт.
A>Но в отношение ООП порядок строго обратный: 4, 3, 2, 1!
В сказках, рассказываемых теми, кто выше пункта 2 никогда не поднимался и не пытается.
Такие люди с рождения себя экспертами во многих сферах считают и ООП тут не единичный случай.
A>Но самое интересное — на этом все не заканчивается и ряд продолжается: 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1...
Это им так кажется. На самом деле там 1, 2, 1, 2, 1, 2... и не более того.
A>Поэтому, если встретится оппонент, находящийся, скажем, на этапе 2, целесообразно выяснить, на каком витке спирали он находится...
В своем воображении он может находиться где угодно. А на самом деле или 1 или 2
А у дошедших до пункта 3 и 4 появляется еще один очень важный пункт:
5. У любой вещи есть ограниченная область применения.
Здравствуйте, 0x7be, Вы писали:
A>>Но в отношение ООП порядок строго обратный: 4, 3, 2, 1! A>>Но самое интересное — на этом все не заканчивается и ряд продолжается: 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1... 0>Пруфлинк?
Здравствуйте, artelk, Вы писали:
A>А ООП вообще парадоксальная тема.
в ООП ничего сложного нет, если, конечно, не начинать его изучение с плюсов.
скажем, радиолюбители сначала собирают (и заставляют работать) приемник прямого усиления по готовым схемам. затем, они вносят в схему изменения на предмет улучшений до полного ее развала. после чего курят матчасть и проектируют отдельные компоненты уже самостоятельно.
затем они переходят к супергетеродину, который проще собрать, чем отладить. а собирают его по готовым схемам. и очень долго экспериментируют с ними прежде, чем отправиться в самостоятельное плаванье.
си++ -- очень сложный язык. начинать изучать ООП с него -- убийство времени, сил и кода.
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.
Здравствуйте, мыщъх, Вы писали:
М>си++ -- очень сложный язык. начинать изучать ООП с него -- убийство времени, сил и кода.
Я начинал изучение ООП с C. Потом С++ показался очень простым и понятным.
ЗЫ
Правда это был старый С++. До того как на шаблонах стало можно писать рекурсивные функции работающие во время компиляции и использующие паттерн-матчинг для остановки рекурсии.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Здравствуйте, minorlogic, Вы писали:
M>Если не путать ООП и ООД , тогда все ок.
Т.е. можно писать код в ООП парадигме, и при этом дизайн системы может не быть объектно-ориентированным? Оригинально.
Конечно же, ООП включает себя ООД.
Здравствуйте, Abyx, Вы писали:
A>Здравствуйте, artelk, Вы писали:
A>в ООП нет ничего сложного. A>если ты используешь "объекты" — значит ты используешь ООП. это просто.
Ну да, поначалу все просто. Остается только уточнить понятие "объект" в контексте ООП, чтобы небыло неоднозначности, а то термином "объект" в жизни можно назвать все, что угодно.
И тут начинается: identity, поведение, состояние... And we need to go deeper!
A>сделать правильную архитектуру, правильно использовать правильные технологии — это может быть сложно. но само по себе ООП — просто.
Само по себе "представим приложение в виде набора объектов, обменивающихся сообщениями" настолько же просто, насколько бесполезно на практике.
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, 0x7be, Вы писали:
A>>>Но в отношение ООП порядок строго обратный: 4, 3, 2, 1! A>>>Но самое интересное — на этом все не заканчивается и ряд продолжается: 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1... 0>>Пруфлинк?
I>Это он Гегеля перефразирует.
Здравствуйте, dilmah, Вы писали:
D>спираль это простейший случай; we need to dig deeper: реально там марковский процесс
Дело осложняется еще и тем, что (подозреваю) количество вариантов понимания ООП сравнимо с количеством человек, утверждающих, что они понимают ООП.
И еще со временем этот термин претерпевал изменения в трактовке (I did not have C++ in mind (C) Alan Kay).
Если завтра ко мне (или к тебе) придет на собеседование сам Алан Кей, то очень вероятно, что придется послать его в пешее дальнее за незнание основ ООП!
Здравствуйте, artelk, Вы писали:
A>А ООП вообще парадоксальная тема. Обычно, при изучении чего-то нового и сложного, изучающий проходит следующие этапы:
Парадоксальность (aka холиваропригодность) темы прямо связана с возможностью проверить (или опровергнуть) утверждения оппонентов. Я что-то не припомню мощных заруб на тему двоичной арифметики или проблем бинарной сортировки. Зато любое обсуждение паттернов/аджиля/метапрограммирования на макросах — только успевай оттаскивать
Без привязки к конкретному языку/фреймворку любое обсуждение неизбежно скатывается к замерам "моё ООП сильнее твоего!". Победил — эксперт, не вышло — что за чертовщина?
С привязкой — рулят не сферическое ООП и паттерны в вакууме, а знание матчасти и умение её с толком применять. Да, ООП как вещь в себе тоже входит в матчасть, но далеко не на первом месте.
Здравствуйте, artelk, Вы писали:
A>А ООП вообще парадоксальная тема. Обычно, при изучении чего-то нового и сложного, изучающий проходит следующие этапы:
A>1. Что за чертовщина? A>2. Что-то не врублюсь. A>3. Впринципе, все понятно. A>4. Эксперт.
A>Но в отношение ООП порядок строго обратный: 4, 3, 2, 1! A>Но самое интересное — на этом все не заканчивается и ряд продолжается: 2, 3, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1...
A>Поэтому, если встретится оппонент, находящийся, скажем, на этапе 2, целесообразно выяснить, на каком витке спирали он находится...
"Если все кажется лёгким, это безошибочно доказывает, что работник весьма мало искусен и что работа выше его разумения." Леонардо да Винчи
Здравствуйте, VladD2, Вы писали:
VD>Я начинал изучение ООП с C.
А можно немного детальнее?
Не ради споров, а реально интересно.
Я могу представить(хотя это и не легко) как можно применять ООП используя голый С.
Но вот чтобы ООП таким образом изучать и даже начать изучать. Это как минимум сурово.
VD>Потом С++ показался очень простым и понятным.
Ну сложность и непонятность С++ по моим наблюдениям именно с ООП и не очень связаны
Здравствуйте, robin_of_the_wood, Вы писали:
VD>>Я начинал изучение ООП с C. ___>А можно немного детальнее?
Можно.
___>Не ради споров, а реально интересно. ___>Я могу представить(хотя это и не легко) как можно применять ООП используя голый С. ___>Но вот чтобы ООП таким образом изучать и даже начать изучать. Это как минимум сурово.
Все очень просто. Я учился писать на С. Одной из первых моих задач было создание ээ... текствого GUI . Эдакой оконной справочной (гипертекстовой, это было еще до того как HTML стал известен, а может и до его появления) системы.
Первая версия была написана в лоб. Код получился очень грязным и трудно поддерживаемым. Параллельно я читал книгу о программировании под Виндовс и проникся идеями ОО-дизайна. Это подтолкнуло меня искать пути абстрагирования работы с окнами. Так я пришел к объектам, сообщениям и виртуальным методам.
ООП, конечно же, эмулировался С-паттернами. Он был не таким как на С++.
Зато когда я стал изучать С++, то все ОО-понятия были для меня очевидны.
VD>>Потом С++ показался очень простым и понятным. ___>Ну сложность и непонятность С++ по моим наблюдениям именно с ООП и не очень связаны
Мне тоже так кажется. Но тут рядом прозвучало именно такое утверждение.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.