PLO - Seite 7

 
falkov:

Meiner Meinung nach irren Sie sich gewaltig!

Sobald Sie große Projekte haben (mindestens mehrere tausend Zeilen Code), werden Sie sehen, dass die Programmierung mit Klassen (OOP) es sehr einfach macht, den Entwicklungsprozess und vor allem den Debugging-Prozess zu kontrollieren.

Außerdem bringt OOP die Projekte näher an das wirkliche Leben heran, denn im wirklichen Leben haben wir es nur mit Instanzen von Objekten zu tun (ein Haus, ein Baum, ein Mann, ein Auto, ein Auftrag usw.), d. h. mit einer Reihe von Eigenschaften und Methoden :)

Versuchen Sie, etwas in OOP zu machen, Sie werden sehen, dass es eleganter und klarer ist. Es ist einfacher als prozedurale Programmierung!

+1
 

MoneyJinn:

Verwenden Sie die übliche prozedurale Programmierung in MetaTrader 5.

OOP ist eine Weiterentwicklung der prozeduralen Programmierung.

Schließlich bestreitet niemand, dass man auf Funktionen verzichten kann. Bis zu einem gewissen Grad ist es sogar schneller. Dabei spielt es keine Rolle, dass es Codefragmente gibt, die ein und dieselbe Aktion mit unterschiedlichen Daten durchführen. Es ist sehr einfach, eine Kopie zu erstellen.

Die wiederholte Verwendung von Funktionen geht zu Lasten von OOP. Eine Funktionserweiterung ist immer die Schaffung einer neuen Funktion und die Umgestaltung des Codes, um den Aufruf dieser Funktion in Abhängigkeit von verschiedenen Bedingungen zu ermöglichen. In einem ordnungsgemäß geschriebenen OOP-Programm ist eine Erweiterung eine einfache Sache, die nicht erfordert, dass der gesamte Code neu geschrieben wird.

Wenn Sie beim Schreiben von Programmen ohne OOP keine Skalierungsprobleme, eine Fülle von unnötigen Daten und Hunderten von Funktionen, zufällige Überschneidungen von Variablen und die Notwendigkeit des "Hot Swapping" von Funktionen haben, brauchen Sie kein OOP.

Ja, man sollte nicht um der OOP willen in OOP schreiben, dann kommt nichts Gutes dabei heraus. Sie sollten Funktionen nicht durch Klassen ersetzen. Vermeiden von Anti-Mustern

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

OOP ist ein Fehler, wie "Niva" oder "Lada".

Verwenden Sie die reguläre prozedurale Programmierung in MetaTrader 5.

Sie ist hier genauso zugänglich wie im MetaTrader 4.

Schade, dass MetaQuotes dies nicht hervorhebt.

Was für ein Blödsinn. Wenn ich Sie wäre, würde ich meinen Beitrag löschen, um mich nicht zu blamieren...
 
Vigor:

OOP ist eine Weiterentwicklung der prozeduralen Programmierung.

Wenn Sie beim Schreiben von Programmen ohne OOP keine Probleme mit Skalierungsproblemen, einer Fülle von zusätzlichen Daten und Hunderten von Funktionen, sich versehentlich überschneidenden Variablen und der Notwendigkeit des "Hot Swapping" von Funktionen bekommen, dann brauchen Sie kein OOP.

Ja, man sollte nicht um der OOP willen in OOP schreiben, dann kommt nichts Gutes dabei heraus. Sie brauchen Funktionen nicht durch Klassen zu ersetzen.

Ich stimme zu 100% zu.

Ich stimme zu 100 % zu:

Außerdem bringt OOP die Projekte näher an das wirkliche Leben heran, denn im wirklichen Leben haben wir es nur mit Instanzen von Objekten zu tun (Haus, Baum, Person, Maschine, Auftrag usw.), d. h. mit einer Reihe von Eigenschaften und Methoden :)

Was ist näher an der Realität: ein virtuelles Haus, ein Baum, ein Mensch oder das Programm in der Reihenfolge zu sehen, in der es tatsächlich vom Prozessor ausgeführt wird?

Es ist eine religiöse Frage. Und jeder hat seine eigene Wahl.

AlexSTAL:

Mein Beitrag war eine Antwort auf die Frage eines blockierten Themenstarters, der am Ende für seine Abneigung gegen OOP bezahlen musste,

Und auch als Antwort für gewöhnliche Händler, die versuchen, ein Produkt wie MT5 zu beherrschen oder von MT4 zu MT5 zu wechseln.

 
MoneyJinn:

Mein Beitrag war eine Antwort auf die Frage eines blockierten Themenstarters, der am Ende den Preis für seine Abneigung gegen OOP zahlen musste,

Eine Checkliste für den Themenstarter:

Objektorientierte Programmierung ist (man lese den Satz rückwärts) objektorientierte Programmierung. Oder die objektbasierte Programmierung.

Unter Objekt verstehen wir Programmcode (in der Regel isoliert von anderem Code), derParameter und Verhalten von realen Objekten (z. B. "Maschine") oder fiktiven Objekten (z. B. "Gralspoopkin") beschreibt. Jedes Objekt kann ein Eigenleben haben und in seinem eigenen Saft schmoren. Eine begrenzte Anzahl von "Nervenkanälen" wird für die Kommunikation mit der Außenwelt verwendet - wie spezielle Funktionen mit externem Zugriff.

Meiner Meinung nach besteht der Hauptvorteil von OOP darin, dass der Objektcode unabhängig von anderem Code debuggt werden kann. Und dann können Sie, wie ein Mosaik, komplexere Objekte zusammensetzen. Ein Objekt "Frau" kann zum Beispiel auch andere Objekte umfassen: "Rumpf", "Fahrwerk", "Tanks", "Cockpit", usw.

Der MQL5-Assistent ist ein gutes Beispiel für MQL OOP. Sie ermöglicht es Ihnen, den Expert Advisor aus vorgefertigten Objekten zusammenzustellen. Und diese Objekte können kombiniert werden.

Das tragischste Argument für die OOP: Diejenigen, die ihr Wesen verstanden haben, werden süchtig danach. Es ist einfach einfacher zu programmieren; der Code ist klarer und strukturierter.

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

Das schlagendste Argument für OOP: Diejenigen, die sie verstehen, werden süchtig nach ihr. Es ist einfach einfacher zu programmieren, der Code ist verständlicher und besser strukturiert.

Das stimmt, bis ich OOP beherrschte, schien es mir, dass es so ein Quatsch ist, dass es sich nicht einmal lohnt, es unterzumischen.

Als ich das verstanden hatte, wurde mir alles klar: Ich brauche keine eindeutigen Variablennamen mehr zu erfinden,

Sie müssen keine eindeutigen Namen für Variablen erstellen, Sie müssen keine eindeutigen Namen für die Zähler i und j erstellen und Sie müssen nicht tausende Male Code durchsuchen, um herauszufinden, wo die Variable nicht auf Null gesetzt ist. :o), und vor allem ist alles direkt vor Ihren Augen - wenn Sie das Programm öffnen, ist alles sofort klar, hier ist der Objektaufruf, hier ist die Interaktion der Objekte, wenn Sie verstehen wollen, was das Objekt tut, gehen Sie zum Objektcode ...

 
Urain:

Das stimmt, bis ich OOP beherrschte, schien es mir, dass es so ein Haufen Mist ist, dass es sich nicht einmal lohnt, sich damit zu befassen.

Sobald ich das verstanden habe, bin ich alles losgeworden, ich brauche keine eindeutigen Variablennamen mehr zu erfinden,

Sie müssen keine eindeutigen Namen für Variablen erstellen, Sie müssen keine eindeutigen Namen für die Zähler i und j erstellen und Sie müssen nicht Tausende von Codes durchsuchen, um herauszufinden, wo diese Variable nicht nulled ist. :o), und vor allem ist alles so klar wie eine Handfläche, wenn man das Programm öffnet, ist alles sofort verständlich, hier ist der Aufruf des Objekts, hier ist die Interaktion der Objekte, wenn man verstehen will, was das Objekt tut, geht man zum Objektcode

+10

Ich würde sogar der Aussage widersprechen, dass man OOP nicht für kleine Projekte verwenden sollte.

Ich bin der Meinung, dass OOP überall dort eingesetzt werden sollte, wo es möglich ist - der Code wird zwar ein wenig länger, aber seine Transparenz steigt um ein Vielfaches.

 
falkov:

+10

Ich würde sogar der These widersprechen, dass für kleine Projekte keine Notwendigkeit besteht, OOP zu verwenden.

Mir scheint, dass OOP überall dort, wo es möglich ist, forciert werden sollte - der Code wird dadurch nur unwesentlich länger, aber seine Transparenz steigt um ein Vielfaches.


Hier ist übrigens ein sehr einfaches Beispiel dafür, dass die Verwendung von OOP in einem winzigen Projekt zu zusätzlichen Vorteilen führen kann.
 

Ich bin ein OOP-Befürworter, da ich die Vorteile der Programmierung von unten nach oben verstanden habe. Von den Schnittstellen der Objektinteraktion zur Implementierung von Klassen. All diejenigen, die mit der Implementierung von Klassen beginnen, schreiben nicht in echter OOP, sondern in funktionalen Wrappern. Solche Wrapper bieten nichts weiter als einen praktischen Namensraum für Variablen und Funktionen. Dies ist der übliche Ansatz der Bibliothek. Aber selbst dieses Minimum passt einigen Leuten und sie sagen stolz "Ich schreibe in OOP", was allerdings ihr gutes Recht ist.

Es gibt erfahrene Programmierer und Begründer ganzer Strömungen in der modernen Software, die genug Erfahrung haben, um das OOP-Paradigma zu kritisieren. Das ist ein altes Thema, und im Prinzip ist schon längst alles bis ins kleinste Detail diskutiert worden, wann und wo was verloren geht:

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

Hier ist die Antwort der OOP-Befürworter

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

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

C++ Geschwindigkeitsvergleich (kleiner Test) Objektorientierte und prozedurale Programmierung (+ verschiedene Compiler)

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

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