ООП - страница 7

 
falkov:

По моему мнению, Вы ошибаетесь очень сильно!

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

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

Да Вы попробуйте сделать что-либо на ООП, сами увидите, что это более элегантно и понятно. Это легче, чем процедурное программирование!

+1
 

MoneyJinn:

Используйте в MetaTrader 5 обычное процедурное программирование. 

ООП - это развитие процедурного программирования.

Ведь никто не спорит, что можно обойтись и без функций. Ведь так еще быстрее, до определенного момента. Не беда, что есть участки кода которые выполняют одно и тоже действие, с разными данными. Копипаст сделать очень просто. 

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

Если при написании программ без ООП у вас не возникло дискомфорта от проблем с масштабированием, обилия лишних данных и сотен функций, случайно перекрытых переменных, необходимости в "горячей" замене функционала, то ООП вам не нужен.

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

Антипаттерн — Википедия
  • ru.wikipedia.org
Анти-паттерны (anti-patterns), также известные как ловушки (pitfalls) — это классы наиболее часто внедряемых плохих решений проблем. Они изучаются, как категория, в случае когда их хотят избежать в будущем, и некоторые отдельные случаи их могут быть распознаны при изучении неработающих систем. Концепция также прекрасно подходит к...
 
MoneyJinn:

ООП - это ошибка, как "Нива" или "Лада".

Используйте в MetaTrader 5 обычное процедурное программирование.

Оно здесь также доступно как и в MetaTrader 4.

Жаль, что MetaQuotes не делают на этом акцент.

Полный бред. Я бы на Вашем месте удалил свой пост, что бы так себя не позорить...
 
Vigor:

ООП - это развитие процедурного программирования. ...

Если при написании программ без ООП у вас не возникло дискомфорта от проблем с масштабированием, обилия лишних данных и сотен функций, случайно перекрытых переменных, необходимости в "горячей" замене функционала, то ООП вам не нужен.

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

Согласен на 100%.

falkov:

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

Что ближе к реальности: виртуальные дом, дерево, человек или же видеть программу в той последовательности, в которой она на самом деле выполняется процессором?

Это вопрос религиозный. И у каждого свой выбор.

AlexSTAL:

Мой пост был ответом на вопрос заблокированного топикстартера, который в результате поплатился за свою неприязнь к ООП,

а также ответом для простых трейдеров, которые попытаются освоить такой продукт как MT5 или перейти на MT5 c MT4.

 
MoneyJinn:

Мой пост был ответом на вопрос заблокированного топикстартера, который в результате поплатился за свою неприязнь к ООП,

Контрольный для топикстартера:

Объектно-ориентированное программирование – это (читаем фразу в обратной последовательности)  программирование ориентированное на объекты. Или, программирование основанное на объектах.

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

Основное преимущество ООП, на мой взгляд, в том, что код объекта можно отладить независимо от другого кода. А потом собрать, как мозаику, более сложные объекты. Например, объект "женщина" может включать другие объекты: "фюзеляж", "шасси", "баки", "кабину пилотов", и т.д.

Хорошим примером ООП на  MQL является Мастер MQL5. Он позволяет собрать советник из уже готовых отлаженных объектов. Причем эти объекты можно комбинировать.

Самый убийственный аргумент в пользу ООП: тот, кто вник в его суть, подсаживается на него. Просто программировать легче, код более понятный и структурированный.

Мастер MQL5: Создание эксперта без программирования
Мастер MQL5: Создание эксперта без программирования
  • 2010.12.15
  • MetaQuotes Software Corp.
  • www.mql5.com
Вы хотите быстро проверить торговую идею, не тратя времени на программирование? Выберите в "Мастере MQL5" нужный тип торговых сигналов, подключите модули сопровождения позиций и управления капиталом - на этом вся работа закончена. Создайте свои реализации модулей или закажите их через сервис "Работа" - и комбинируйте новые модули с уже существующими.
 
Lizar:
...

Самый убийственный аргумент в пользу ООП: тот, кто вник в его суть, подсаживается на него. Просто программировать легче, код более понятный и структурированный.

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

Как только понял, всё как рукой сняло, не нужно больше выдумывать уникальные имена переменным,

счётчик первой вложенности i, счётчик второй вложенности j, размер массива size и не шаришся по всему многотысячному коду а хде это у меня переменная не обнулилась? :о), а главное всё как на ладони, открываешь программу всё сразу понятно, вот вызов объекта вот взаимодействие объектов, если нужно понять что объект делает идёшь к коду объекта.

 
Urain:

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

Как только понял, всё как рукой сняло, не нужно больше выдумывать уникальные имена переменным,

счётчик первой вложенности i, счётчик второй вложенности j, размер массива size и не шаришся по всему многотысячному коду а хде это у меня переменная не обнулилась? :о), а главное всё как на ладони, открываешь программу всё сразу понятно, вот вызов объекта вот взаимодействие объектов, если нужно понять что объект делает идёшь к коду объекта.

+10

Я бы даже поспорил с тезисом о том, что для маленьких проектов нет нужды использовать ООП.

Мне кажется, что ООП надо пихать всюду, где только можно - код удлиняется незначительно, а вот прозрачность его возрастает в разы.

 
falkov:

+10

Я бы даже поспорил с тезисом о том, что для маленьких проектов нет нужды использовать ООП.

Мне кажется, что ООП надо пихать всюду, где только можно - код удлиняется незначительно, а вот прозрачность его возрастает в разы.


Кстати, вот здесь очень простой пример того, когда использование ООП в мизерном проекте может привести к дополнительным удобствам. 
 

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

Есть матерые программисты и основатели целых течений в современном программном обеспечении, которые имеют достаточно опыта для критики парадигмы ООП. Это - старая тема, и в принципе все давно уже обсосано до мелочей, когда и где что проигрывает:

http://blogerator.ru/page/oop_why-objects-have-failed

Вот ответ сторонников ООП

http://bugtraq.ru/library/programming/objectshavenotfailed.html

Классика ООП - Почему объектно-ориентированное программирование провалилось? [MUST READ]
Классика ООП - Почему объектно-ориентированное программирование провалилось? [MUST READ]
  • blogerator.org
Прошло ровно 10 лет с публикации известной и классической в мире программирования статьи, написанной Ричардом Гэбриелом, название которой стало уже нарицательным и вынесено в заголовок моей заметки. Его статья стала настолько острой и злободневной для своего времени, что вызвала бурный всплеск обсуждений в сообществе программистов, целый ряд...
 

Сравнение скорости С++ (небольшой тест) Объектно-ориентированное и процедурное программирование(+ разные компиляторы)

https://www.mql5.com/ru/forum/132434/page3 

Практические эксперименты на скорость(тесты, исходники, ссылки), на разных языках программирования выкладываем, сравниваем, делаем выводы - MQL4 форум
  • www.mql5.com
Практические эксперименты на скорость(тесты, исходники, ссылки), на разных языках программирования выкладываем, сравниваем, делаем выводы - MQL4 форум
Причина обращения: