OOP vs. prozedurale Programmierung - Seite 2

 
Реter Konow:
Wissen Sie, hinter all diesen Begriffen und dem OOP-Code kann ich das Problem, das Sie gelöst haben, nicht erkennen. Was ist der Sinn davon? Bitte beschreiben Sie es und ich werde Ihnen meine Lösung anbieten. Dann können wir sie nach allen möglichen Kriterien vergleichen.

Ähm ... Ich verstehe nicht ganz, worum es geht.

Die Aufgabe bestand darin, das TC vom Terminal zu trennen. Der Code muss auf beiden Plattformen ohne Änderungen kompilierbar sein. Die Superaufgabe - alle geschriebenen TS auf WealhtLab Developer zu übertragen, indem man nur die Klassen für die Arbeit mit dem Handelsserver schreibt.

 
George Merts:

Warum "nutzlos"? Sehr nützlich.

Doch wie lässt sich die "Einfachheit der Unterstützung" in der Praxis vergleichen?

Sagen wir, ein Code, der als ein großer Block geschrieben wurde, und ein Code, der in funktionale Teile aufgeteilt ist - die Einführung von Änderungen ist in beiden Fällen absolut gleich. Der einzige Unterschied besteht darin, dass man sich im ersten Fall alle Verbindungen merken sollte, die von der Änderung betroffen sind, und diese berücksichtigen sollte. Im zweiten Fall wirkt sich die Änderung auf alle verfügbaren Verbindungen aus, da die Einheit nur Zugriff auf die Verbindungen hat, die sie für ihre Arbeit benötigt. Sie brauchen sich nichts zu merken - Sie korrigieren alles, was für den zu ändernden Block verfügbar ist, nacheinander.

Wie lässt sich die Differenz hier abschätzen? Der Arbeitsaufwand ist genau der gleiche!

Lassen Sie uns ein konkretes Problem lösen und vergleichen.
 
George Merts:

Ähm ... Ich habe nicht ganz verstanden, worum es geht.

Ziel war es, das TC vom Terminal zu trennen. Der Code muss auf beiden Plattformen ohne Änderungen kompilierbar sein. Die Hauptaufgabe - alle geschriebenen TS auf WealhtLab Developer zu übertragen, indem nur Klassen geschrieben werden, die mit dem Handelsserver arbeiten.

Ist die Aufgabe auf beiden Plattformen zu kompilieren? Wahrscheinlich nur bei Verwendung von OOP. Ernsthaft, was ist daran eine Herausforderung? Beschreiben Sie, was es ist?
 
Реter Konow:
Lassen Sie uns ein bestimmtes Problem lösen und vergleichen.

Kriterium für den Vergleich ?

Ich behaupte, dass OOP notwendig ist, um die Wartung und Änderung des fertigen Codes zu erleichtern. Sie, so wie ich es verstehe (sprechen wir über "Sie"), behaupten, dass es in Ihrem Code nicht komplizierter (und vielleicht sogar einfacher) ist. Wie sollen wir vergleichen?

Allein Ihr Satz "Sie erinnern sich an alles" führt bereits eine Ungleichheit ein. Nehmen wir an, mein Händlerprozessor besteht aus 39 Dateien und 270kb Code. Wenn die Entwickler die Protokolle der Interaktion mit dem Handelsserver ändern werden - ich fürchte, dass es ohne Strukturierungs- und OOP-Systemklassen sehr schwierig für mich sein wird, alle Stellen zu finden, die von dieser Änderung betroffen sein müssen, und den Code so zu ändern, dass erstens die in MT4 arbeitenden Blöcke nicht betroffen sind und zweitens der geschriebene TS diese Änderung nicht "spürt".

Das ganze OOP-System begrenzt für mich die Möglichkeit, Fehler zu machen, gerade weil ich mir nicht alles merken kann. Und wenn ich mich an alles erinnern würde, wie Sie es tun, wäre es wahrscheinlich nicht nötig, all diese virtuellen Schnittstellen zu bauen...

 
Es ist wie bei einem Auto mit Schalt- oder Automatikgetriebe. In einem Handbuch ist das praktischer.
 
George Merts:

Ähm ... Ich verstehe nicht ganz, worum es geht.

Die Aufgabe bestand darin, den TS vom Terminal zu trennen. Der Code sollte auf beiden Plattformen ohne Änderungen kompilierbar sein. Die Hauptaufgabe - alle geschriebenen TS auf WealhtLab Developer zu übertragen, indem nur die Klassen für die Arbeit mit dem Handelsserver geschrieben werden.


Es ist ein Sharp, auch Arrays sind unterschiedlich eingestellt. Natürlich, wenn ich fxsaber mit seinen verrückten Definitionen anziehe, werde ich wahrscheinlich in der Lage sein, mit MQL5 und WealhtLab )))) gleichzuziehen.

 
Dmitiry Ananiev:
Es ist wie bei einem Auto mit Schaltgetriebe oder einem Automatikgetriebe, bei einem Automatikgetriebe ist es praktischer. Das ist bei einem Schaltgetriebe praktischer.

Was ist praktischer? Ist es praktischer, die Kupplung im Verkehr durchzudrücken?

Ich bin einen Tiguan gefahren, und der Start-Stopp-Knopf, der ist wirklich praktisch.

 
Alexey Volchanskiy:

Es ist ein Sharp, auch Arrays sind unterschiedlich eingestellt. Natürlich, wenn Sie fxsaber mit seinen verrückten Definitionen einbeziehen, können Sie wahrscheinlich MQL5 und WealhtLab )))) gleichsetzen.

Nun, das ist genau der Grund - ich arbeite nie mit Arrays. Ausschließlich mit sagrau Erbenklassen.

Ich bin mir nicht sicher, ob ich jemals einen solchen universellen Code in die Hände bekommen könnte, der sich ohne Änderungen aus WLD kompilieren ließe, aber ich würde gerne in der Lage sein,...

P.S. Sind Sie auch von der Arbeit von fxsaber begeistert? :)))

 
George Merts:

Das ist genau der Grund, warum ich nie mit Arrays arbeite. Ausschließlich mit Sagrau-Klassen.

Ich bin mir nicht sicher, ob ich einen solchen universellen Code in die Hände bekomme, um ihn unverändert mit WLD zu kompilieren, aber ich würde gerne in der Lage sein,...


WL liegt im Sterben, seit eineinhalb Jahren gibt es keine neuen Versionen mehr. Und wie Vic sagt.

DiePrüfung erfolgt auf 1Kern, was den Prozess auf modernen Computern mit vielen Kernen langwierig macht.

Центральный процессор | Wikiwand
Центральный процессор | Wikiwand
  • www.wikiwand.com
You can help our automatic cover photo selection by reporting an unsuitable photo.
 
George Merts:

Das ist genau der Grund, warum ich nie mit Arrays arbeite. Nur bei von sargau abgeleiteten Klassen.

Ich bin mir nicht sicher, ob ich einen so universellen Code in die Hände bekommen könnte, daß er sich mit WLD unverändert kompilieren ließe, aber ich würde es gerne können...

P.S. Sind Sie auch von der Arbeit von fxsaber begeistert ? :)))

Ja, wenn ich ein Mädchen wäre, würde ich abspritzen, nur der Herr aller Definitionen )))) Erinnern Sie sich an Lord of the Storm? ))