ООП vs процедурное программирование - страница 25

 

1.Сделал несколько включаемых классов на основе  статьи. Только не пойму зачем использовать классы, а не просто сделать включаемый файл с вызываемыми функциями?

2.Возник вопрос, для улучшения скорости оптимизации лучше разбить подключаемые файлы на несколько или все разместить в одном?

3.Есть ощущение, что если вызывать индикатор не в советнике, а в подключаемом файле, то скорость оптимизации быстрее получается...?

 
forexman77:

1.Сделал несколько включаемых классов на основе  статьи. Только не пойму зачем использовать классы, а не просто сделать включаемый файл с вызываемыми функциями?

2.Возник вопрос, для улучшения скорости оптимизации лучше разбить подключаемые файлы на несколько или все разместить в одном?

3.Есть ощущение, что если вызывать индикатор не в советнике, а в подключаемом файле, то скорость оптимизации быстрее получается...?

1. Классы потребуются, когда будет  нужен полиморфизм - то есть вызов разных функций со сходным назначением. Простейший пример - блок получает указатель на ордер, надо получить его тикет. Учитывая реальные и исторические ордеры, а также МТ4 и МТ5 - получаем четыре различных функции для работы.

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

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

3. Разницы совершенно нет. А лично я вобще никогда не вызываю никаких индикаторов, предпочитая вычислять их значения непосредственно внутри эксперта.

 
George Merts:

1. Классы потребуются, когда будет  нужен полиморфизм - то есть вызов разных функций со сходным назначением. Простейший пример - блок получает указатель на ордер, надо получить его тикет. Учитывая реальные и исторические ордеры, а также МТ4 и МТ5 - получаем четыре различных функции для работы.

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

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

3. Разницы совершенно нет. А лично я вобще никогда не вызываю никаких индикаторов, предпочитая вычислять их значения непосредственно внутри эксперта.


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

По отдельности легче отрезки кода проверить на ошибки, что-то новое добавлять и т.д. Код становится более легким для понимания, особенно для мкл5.

 
Реter Konow:
Непонятно только, почему столько местных огородников стали убежденными экскаваторщиками и у себя на участке под деревце, котлован заготавливают.))

Наверное они решили у себя на участке построить ещё и дом. Что в этом плохого?

Да, конечно, даже многие большие каналы, которыми сейчас пользуется человечество, вырыто лопатой. Но тогда просто экскаваторов не было. Зачем же сейчас, когда есть экскаваторы, копать котлован лопатой?

 
Nikolai Semko:

Наверное они решили у себя на участке построить ещё и дом. Что в этом плохого?

Да, конечно, даже многие большие каналы, которыми сейчас пользуется человечество, вырыто лопатой. Но тогда просто экскаваторов не было. Зачем же сейчас, когда есть экскаваторы, копать котлован лопатой?


Суть в том, что то что ты подразумеваешь под "лопатой", совсем не то, что я подразумеваю под "процедурным" программированием. Я, можно сказать, вообще о нем не говорю. Я говорю о том, что методы решения задач которые здесь некоторые применяют очень слабы сами по себе,  а потому какая разница - экскаватор или лопата, если они оба используются не эффективно?


Дело то в проффесионализме, и его отсутствие инструментом не заменишь...


А с наличием проффесионализма, можно и процедурным методом горы сверуть. Поверь.

 
Реter Konow:

Суть в том, что то что ты подразумеваешь под "лопатой", совсем не то, что я подразумеваю под "процедурным" программированием. Я, можно сказать, вообще о нем не говорю. Я говорю о том, что методы решения задач которые здесь некоторые применяют очень слабы сами по себе,  а потому какая разница - экскаватор или лопата, если они оба используются не эффективно?


Дело то в проффесионализме, и его отсутствие инструментом не заменишь...


А с наличием проффесионализма, можно и процедурным методом горы сверуть. Поверь.


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

И я не понимаю, что ты подразумеваешь под "процедурным" программированием, но я знаю, что ООП - это эволюционное развитие процедурного программирования. 

 
forexman77:

1.Сделал несколько включаемых классов на основе  статьи. Только не пойму зачем использовать классы, а не просто сделать включаемый файл с вызываемыми функциями?

2.Возник вопрос, для улучшения скорости оптимизации лучше разбить подключаемые файлы на несколько или все разместить в одном?

3.Есть ощущение, что если вызывать индикатор не в советнике, а в подключаемом файле, то скорость оптимизации быстрее получается...?

ларчик просто открывается - это статья :-) в ней код ради кода и объёма самой статьи... "не читайте газет перед едой" :-)


 
Реter Konow:

Суть в том, что то что ты подразумеваешь под "лопатой", совсем не то, что я подразумеваю под "процедурным" программированием. Я, можно сказать, вообще о нем не говорю. Я говорю о том, что методы решения задач которые здесь некоторые применяют очень слабы сами по себе,  а потому какая разница - экскаватор или лопата, если они оба используются не эффективно?


Дело то в проффесионализме, и его отсутствие инструментом не заменишь...


А с наличием проффесионализма, можно и процедурным методом горы сверуть. Поверь.


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

 
Nikolai Semko:

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

Николай, если сравнивать инструменты, то рыл я совсем не лопатой. Тут другой инструмент, покруче гораздо. Не придумал пока, как его можно назвать, но вполне возможно, что и экскаватором за ним не угнаться. Будущее покажет...


Вообще, экскаватор как инструмент я уважаю, но времени его изучать не было. Другая идея захватила.)

 
Реter Konow:

Николай, если сравнивать инструменты, то рыл я совсем не лопатой. Тут другой инструмент, покруче гораздо. Не придумал пока, как его можно назвать, но вполне возможно, что и экскаватором за ним не угнаться. Будущее покажет...

Вообще, экскаватор как инструмент я уважаю, но времени его изучать не было. Другая идея захватила.)

Ну тогда тема должна звучать по другому. Что-то вроде: "Новый инструментарий в программировании" или "Новая парадигма программирования"...
Если это правда, что ты создал что-то круче ООП, тогда автограф дашь свой, когда станешь знаменитым?