Войти
ФлеймФорумОбщее

Как обьяснить людям, зачем нужны классы, наследование и ООП? (3 стр)

Страницы: 1 2 3 4 5 6 7 Следующая »
#30
17:05, 19 сен. 2018

f1ufx_
> включая Принцип Единой Ответственности, понятия связности и связанности (cohesion и coupling) и многие другие, призваны бороться с неотъемлемой сложностью (essential complexity) нашей бизнес-области и сводить случайную сложность (accidental complexity) к минимуму
Да, лишь заслышав эти заветные слова все сразу бросят функциональное программирование и побегут писать только ООП :)

ООП позволяет быстро, просто и изящно решать сложные задачи, которых без ООП вообще не возникало. (Это типа почти шутка)

Лично для меня ООП удобнее в большинстве случаев. То же самое я могу написать без ООП и оно будет работать быстрее и занимать меньше памяти (прецеденты были), но для программиста это не так удобно.
Второй момент - ООП это стандарт. Им пользуются все. Писать без запятых и ввбщ бз глснх бкв нврн дбн бстр вбщ пркльн, но "во внешней среде" бытует иная точка зрения, пусть гласные и занимают этак процентов 30-50% текста - а можно было бы сэкономить и время на набор текста, и краску принтера, и бумагу (спасти деревья!).


#31
18:12, 19 сен. 2018

eugeneloza
> Второй момент - ООП это стандарт. Им пользуются все.
  Кроме Микрософта

#32
19:17, 19 сен. 2018

f1ufx_
> Говорю что разделив код на маленькие сущности, снижается вероятность ошибки.
нет.
Разделение кода на маленькие сущности это структурное программирование

+ Показать

ООП, это по сути эволюция структурного программирования -  код и данные, разделенные на маленькие сущности. (...маленькие...лол)
Т.к. код это код, а данные это данные (Кэп!), при их объеденнии ввели новый термин "объект".

Можно ли делать такую связку (код+данные), без ООП? Например, только на уровне структурного программирования - да можно.
Но проблема уже упирается в человеческий фактор.
Т.е. при написании программы, человек может принебречь "логической" строгостью такой связки, и внести хаков и ошибок

Имхо, проблема не в ООП, а в реализации ООП!

f1ufx_
> На что мне резонно отвечают: вероятность ошибки зависит от умности
> программиста. сколько не было бы сущностей - плохой программист понаделает
> ошибок, а хороший - в любом коде не будет делать ошибок.
Скорее так:
Плохой программист понаделает ошибок, которые быстро вылезут и которые будет легко отладить
Хороший программист понаделает ошибок, которые вылазить будут очень редко, а отдладить будет очень трудно.

+ очевидно, чтобы не делать ошибок, нужно
#33
19:20, 19 сен. 2018

WhiteWolf
> Предмет описания не может давать описание.
Почему?

#34
20:15, 19 сен. 2018

f1ufx_
> Именно поэтому мне интересно найти формулировки, которые бы позволили мне
> обьяснять это другим людям.

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

#35
20:24, 19 сен. 2018

=A=L=X=
> То есть в алгоритм работающий с сущностью можно подсовывать разные оные,
> отличающиеся по поведению из-за динамического полиморфизма.
Контр-вопрос: зачем тогда шаблоны завозили?
Если можно те же задачи решать мета-программированием.
Вместо того, чтобы делать полиморфизм, делать адаптировать код, по разные типы.

=A=L=X=
> Действительно дебилизм, что это становится так трудно понять в сложившемся информационном шуме.
ненавистинкам (и неосиляторам) ООП нужно выделяться

#36
20:33, 19 сен. 2018

skalogryz
Динамический и статический полиморфизмы это две больших разницы.
Статический это средство генерации кода из одного исходника, а динамический это код способный работать с разными обьектами как есть, без перекомпиляции.

#37
20:41, 19 сен. 2018

=A=L=X=
> Динамический и статический полиморфизмы это две больших разницы.
> Статический это средство генерации кода из одного исходника, а динамический это
> код способный работать с разными обьектами как есть, без перекомпиляции.
Ну, новичёк тебе скажет, что полиморфизм потребует, чтобы классы наследовались.
А ситуация такая, что есть два типа, которые друг от друга не наследуются, но вот алгоритм к ним нужен один и тот же.

+ пути решения

И значит придётся статически это делать.
А раз в данном случае придётся делать статически, то и весь ООП нафиг не нужен. (типичная логика)

#38
20:53, 19 сен. 2018

skalogryz
Переиспользование шаблонного кода или макросов это не ООП, а сам ООП нужен не везде, я и не спорю с этим.

#39
21:17, 19 сен. 2018

skalogryz
> те же задачи решать мета-программированием
как показывает практика, моя, внутренняя кодогенерация проигрывает внешней, по скорости компиляции уж точно

так что ОП в большинстве случаев тоже не нужно : )

#40
22:34, 19 сен. 2018

Оставлю здесь

http://blogerator.org/page/evangelie-ot-myshhha-kris-kasperski-intervju-1

#41
22:38, 19 сен. 2018

f1ufx_
> Как обьяснить людям, зачем нужны классы, наследование и ООП?
Самый лучший способ - дать задачу которая позволит этим людям прочувствовать такую необходимость на собственной шкуре, в пределах разумного, конечно. А лясы точить либо в баре с друзьями, либо тут, на форуме.
Литературой хорошо топить камин в загородном доме, долгими зимними вечерами.

#42
22:55, 19 сен. 2018

f1ufx_
> Именно поэтому мне интересно найти формулировки, которые бы позволили мне
> обьяснять это другим людям.

..основные принципы ООП чуть ли не на каждом собеседовании спрашивают.

Абстракция
Полиморфизм
Наследование
Инкапсуляция

В свете нынемодной инверсии зависимостей и DI можно рассказать много чего интересного.

#43
23:01, 19 сен. 2018

endeavour_pr
> http://blogerator.org/page/evangelie-ot-myshhha-kris-kasperski-intervju-1
а причём тут информационная безопасность?
кстати, все в курсе, что Крис погиб... больше года назад?

#44
23:35, 19 сен. 2018

там он немного про движки говорит и сравнивает плюсовиков с сишниками

Страницы: 1 2 3 4 5 6 7 Следующая »
ФлеймФорумОбщее

Тема в архиве.