PLO - 页 7

 
falkov:

在我看来,你大错特错了!

一旦你有了大的项目(至少有几千行代码),你会发现用类(OOP)编程使你非常容易控制开发过程,最重要的是,控制调试过程。

此外,OOP使项目更接近现实生活,事实上在现实生活中,我们只是处理对象的实例(一栋房子、一棵树、一个人、一辆车、一个订单等),即处理一组属性和方法 :)

试着用OOP做一些事情,你会发现,它更加优雅和清晰。它比程序化编程更容易!

+1
 

MoneyJinn:

在MetaTrader 5中使用通常的程序性编程。

OOP是程序化编程的一种发展。

毕竟,没有人质疑你可以没有功能。事实上,在一定程度上,它甚至更快。有一些代码片段,用不同的数据执行一个相同的动作,这并不重要。制作一份副本非常容易。

函数的重复使用输给了OOP。功能的扩展总是创建一个新的函数,并重新编写代码,使之能够根据不同的条件调用这个函数。在一个正确编写的OOP程序中,扩展是一个简单的事情,不需要重做整个代码。

如果在编写没有OOP的程序时,你不会因为规模问题、大量不必要的数据和数百个函数、变量的随机重叠和功能的 "热交换 "的必要性而感到不适,你就不需要OOP。

是的,你不应该为了OOP而写OOP,没有什么好结果。你不应该用类来代替函数。避免反模式

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

OOP是一个错误,就像 "Niva "或 "Lada"。

在MetaTrader 5中使用常规程序化编程。

它在这里和MetaTrader 4中一样可以访问。

太糟糕了,MetaQuotes没有强调这一点。

真是一派胡言。如果我是你,我会删除我的帖子,这样就不会让自己难堪......
 
Vigor:

OOP是程序化编程的一种发展。

如果在编写没有OOP的程序时,你不会因为规模问题、大量的额外数据和数百个函数、意外重叠的变量、需要 "热交换 "的功能而感到不适,那么你就不需要OOP。

是的,你不应该为了OOP而写OOP,没有什么好结果。你不需要用类来代替函数。

我100%同意。

100%同意。

此外,OOP使项目更接近现实生活,因为在现实生活中,我们只是处理对象(房子、树、人、机器、订单等)的实例,也就是处理一系列的属性和方法 :)

哪一个更接近现实:一个虚拟的房子、一棵树、一个人,还是看到程序被处理器实际执行的顺序?

这是一个宗教问题。而每个人都有自己的选择。

AlexSTAL

我的帖子是对一个被封杀的话题发起人的问题的回答,他最终为自己不喜欢OOP而付出了代价。

同时也是对那些试图掌握像MT5这样的产品或从MT4转到MT5的普通交易者的回答。

 
MoneyJinn:

我的帖子是对一个被封杀的话题发起人的问题的回应,他最后为自己不喜欢OOP而付出了代价。

课题发起人的检查清单。

面向对象的编程是(把这句话倒过来读) 面向对象的编程。或者说,基于对象的编程。

我们所说的对象是指程序代码(通常与其他代码隔离),它描述了 真实对象(例如 "机器")或虚构对象(例如 "grail poopkin")的参数和行为。每个物体都可以有自己的生命,可以在自己的汁液中炖煮。一套有限的 "神经通道 "被用来与外部世界沟通- 像具有外部访问的特殊功能。

在我看来,OOP的主要优势在于,对象代码可以独立于其他代码进行调试。然后你可以像马赛克一样,组装出更复杂的物体。例如,一个 "女人 "对象可能包括其他对象。"机身"、"起落架"、"坦克"、"驾驶舱 "等。

MQL5 Wizard 是MQL OOP的一个很好的例子。它允许你用现成的对象来组装专家顾问。而这些对象可以被组合起来。

赞成OOP的最悲惨的论点是:那些已经理解了它的本质的人,会迷上它。它只是更容易编程;代码更清晰、更有条理。

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

赞成OOP的最有力的论据是:那些了解它的人都会迷上它。它只是更容易编程,代码更容易理解,结构更合理。

这是真的,在我掌握OOP之前,我觉得它是如此的垃圾,甚至不值得混进去。

一旦我理解了它,一切都变得清晰了,我不需要再发明独特的变量名。

你不必为变量创建唯一的名字,你不必为i和j计数器创建唯一的名字,你也不必在成千上万次的代码中搜索出这个变量没有归零的地方。:o),最重要的是,一切都在你的眼前--当你打开程序时,一切都瞬间清晰,这里是对象的调用,这里是对象的交互,如果你想了解对象在做什么,你就去看对象代码......。

 
Urain:

这倒是真的,在我掌握OOP之前,在我看来,它就是一坨屎,甚至不值得去研究。

我一理解它,就摆脱了一切,我不需要再发明独特的变量名。

你不需要为变量创建唯一的名字,你不需要为i和j计数器创建唯一的名字,你也不需要在成千上万的代码中寻找这个变量没有归零的地方。:o),最重要的是,所有的一切都平淡如水,当你打开程序时,一切都可以立即理解,这里是对象的调用,这里是对象的交互,如果你想了解对象的作用,你就去看对象代码吧

+10

我甚至会反驳这样的说法:不应该在小项目中使用OOP

在我看来,只要有可能,就应该使用OOP--代码只是延长了一点,但其透明度却增加了许多倍。

 
falkov:

+10

我甚至会争辩说,对于小项目来说,没有必要使用OOP。

在我看来,OOP应该被推到任何可能的地方--代码的长度并不明显,但其透明度却增加了许多倍。


顺便说一下,这里 有一个非常简单的例子,说明在一个微不足道的项目中使用OOP可以带来额外的便利。
 

我是一个OOP的支持者,因为我已经理解了从下往上编程的便利性。从对象交互的接口到类的实现。所有那些从实现类开始的人都不是在写正确的OOP,他们是在写功能包装。这样的包装器只是为变量和函数提供了一个方便的命名空间。这是图书馆的通常做法。但即使是这样的最低限度也适合一些人,他们骄傲地说 "我是用OOP写的",虽然这也是他们的权利。

有一些熟练的程序员和现代软件的整个潮流的创始人,他们有足够的经验来批评OOP范式。这是一个老话题,原则上,所有的东西都在很久以前被讨论到最小的细节,什么时候,什么地方失去了。

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

以下是OOP支持者的回答

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

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

C++速度比较(小测试)面向对象和程序化编程(+不同的编译器)。

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

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