Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
In vielen Softwareunternehmen würde man sich für einen solchen Code die Finger abhacken. Das erste, was immer und überall erforderlich ist, ist die Vermeidung von "unnötigem Lesen". Zum Beispiel, wenn Sie bei der Eingabe einer Funktion eine Bedingung verwenden:
dann ist es empfehlenswert, zu schreiben:
Dieser Ansatz ist eine große Hilfe, um die Bindung von Bedingungen zu vermeiden.
Das ist wieder einmal eine Plage. Weil niemand überprüft hat, was die Funktion OrderType() zurückgibt. Oder wurde vielleicht -1 oder 6 zurückgegeben? Dies ist ein Beispiel dafür, dass man sich auf die Eigenschaften des Compilers stützt, was man auf jeden Fall vermeiden sollte. Sie selbst führen viele Beispiele für plattformübergreifenden Code an. Warum weichen Sie also in diesem Fall davon ab? Wenn ein neuer MQ-Compiler herauskommt, wird dieser Code nicht mehr korrekt funktionieren.
Mit weiterhin die gleiche Situation. Code wie:
ist schwieriger zu lesen als:
Und doch ist die Effizienz der Ausführung in beiden Fällen die gleiche.Das ist wirklich schade:
Das ist doch totaler Quatsch, oder?
Was ist blechern? Bei einer Zeile einer Superexpression wird es schwierig. Der Mensch ist kein Computer, und er muss den Rest der Bedingung nicht verarbeiten. Ein Mensch muss, anders als ein Computer, den gesamten Ausdruck bis zum Ende durchrechnen und versteht dann erst, dass dessen erste Komponente zu einem falschen Ergebnis führt.
Bei einem Eintrag, bei dem alles durch einfache Bedingungen zerlegt wird, ist diese Berechnung unnötig: Die erste Bedingung ist nicht erfüllt - weg.
Sie müssen Zeit sparen, nicht Fäden. Aber sie kämpfen nur um die Kürze, die in Wirklichkeit ein Ineinandergreifen von Vorgängen und Bedingungen ist. Wenn diese Verpackung Ihnen nur einen erheblichen Produktivitätsgewinn bringen würde, könnte ich das verstehen. Aber das ist nicht der Fall. Das maximale Wachstum liegt innerhalb des Messfehlers. Die Leute sind darauf bedacht, Zeichenketten zu sparen, aber sie denken überhaupt nicht daran, Zeit für das Verständnis und die Fehlersuche im Code zu sparen.
Was ist die Dose? Eine Zeile mit einem Superausdruck - da wird es schwierig. Ein Mensch ist kein Computer und kann daher sofort verstehen, dass der Rest der Bedingung nicht bearbeitet werden muss. Ein Mensch muss, anders als ein Computer, den gesamten Ausdruck bis zum Ende durchrechnen und versteht dann erst, dass dessen erste Komponente zu einem falschen Ergebnis führt.
In der Akte, in der alles durch einfache Bedingungen zerlegt wird, ist eine solche Berechnung unnötig: Die erste Bedingung ist nicht erfüllt - weg.
Sie müssen Zeit sparen, nicht Fäden. Aber sie kämpfen nur um die Kürze, die in Wirklichkeit ein Ineinandergreifen von Vorgängen und Bedingungen ist. Wenn diese Verpackung Ihnen nur einen erheblichen Produktivitätsgewinn bringen würde, könnte ich das verstehen. Aber das ist nicht der Fall. Das maximale Wachstum liegt innerhalb des Messfehlers. Die Leute sind darauf bedacht, Zeichenketten zu sparen, aber sie denken überhaupt nicht daran, Zeit für das Verständnis und die Fehlersuche im Code zu sparen.
Ich würde es nicht als schwer lesbaren Super-Ausdruck bezeichnen.
Ach ja, und der "kurze Berechnungszyklus" ist eine grundlegende Sache, die beim Lesen einer Bedingung "automatisch" berücksichtigt wird, ohne dass dafür eine geistige Anstrengung erforderlich ist.
Auch dies ist eine rein subjektive Meinung.
Sie haben selbst zugegeben, dass es eine Frage der Gewohnheit ist.
Und ich sage es noch einmal. Ich möchte niemanden ermutigen, seine Gewohnheiten zu ändern und nach einem Unterschied im Geschmack von Filzstiften zu suchen.
Wie Sie schon sagten - es ist eine Frage des Geschmacks, aber wie Sie wissen: alle Filzstifte sind unterschiedlich ))))
Ich würde es nicht als schwer zu lesenden Superlativ bezeichnen.
Und es ist nicht nötig, hier irgendetwas anzurufen. Bis jetzt haben meine Gegner (Sie eingeschlossen) kein einziges Argument vorgebracht, dass dieser Ausdruck leichter zu lesen ist als die Zeilenaufteilung.
Von mir wurden jedoch gleich drei Argumente vorgebracht:
Und es ist nicht nötig, hier etwas zu nennen. Bis jetzt haben meine Gegner (Sie eingeschlossen) kein einziges Argument vorgebracht, dass dieser Ausdruck leichter zu lesen ist als die Zeilenaufteilung.
Von mir wurden jedoch gleich drei Argumente vorgebracht:
Igor, wenn sich die Augen nicht in den Augenhöhlen bewegen und man den Kopf drehen muss, kann man so schreiben:
Und wie viele kurze Zeilen mit Irrtümern habe ich gefunden........... Die Anzahl und die Wahrscheinlichkeit von Fehlern hängt offensichtlich nicht von der Länge der Linie ab.
Mit der Fehlersuche kann man nur einverstanden sein. Aber die Gewohnheit wurde entwickelt, bevor der Debugger in mql4 auftauchte und nicht jeder ist in der Lage, die Gewohnheiten zu ändern.
Igor, wenn sich die Augen nicht in den Augenhöhlen bewegen und man den Kopf drehen muss, kann man es so schreiben:
Und wie viele kurze Zeilen mit Irrtümern habe ich gefunden........... Offenbar hängen die Anzahl und die Wahrscheinlichkeit von Fehlern nicht von der Länge der Linie ab.
Man kann der Fehlersuche nur zustimmen. Aber die Gewohnheit hat sich vor dem Debugger in mql4 entwickelt und nicht jeder ist in der Lage, Gewohnheiten zu ändern.
Sie können es so machen, aber mit diesem Stil, um einen Programmblock zu sehen, müssen Sie den Bildschirm 2 mal scrollen und das ist schlimmer als den ganzen Code in einem Bildschirm zu sehen. (Das betrifft nicht Sie, es ist nur ein Beispiel).
Leider lässt sich dieser Mythos in der Geschichte des Forums nicht belegen. Darüber hinaus haben die Entwickler immer wieder deutlich gemacht, dass solche Änderungen grundsätzlich nicht vorgenommen werden können.
So etwas gab es. Die Sortierung hat sich ausgewirkt.
Die Diskussion wurde wahrscheinlich im alten metatrader4.com-Forum geführt (das vor kurzem noch offen war, jetzt aber auf mql5.com umgeleitet wurde).
Es war folgendermaßen. Die Sortierung war betroffen.
Die Diskussion muss im alten metatrader4.com-Forum stattgefunden haben (das vor kurzem noch geöffnet war und jetzt auf mql5.com umgeleitet wird).
Es war, es war. Genau wie jetzt bei der Anzahl der historischen Aufträge, wenn Sie "Heute" einstellen, dann wird OrdersHistoryTotal() die Anzahl der geschlossenen Aufträge zurückgeben, die heute geschlossen wurden. Wenn auf der Registerkarte "Historie" keine alte Bestellung angezeigt wird, ist sie auch per Ticket nicht verfügbar.
Es war, es war. Genau wie bei der Anzahl der historischen Aufträge wird OrdersHistoryTotal() die Anzahl der heute geschlossenen Aufträge zurückgeben, wenn Sie "Today" einstellen. Wenn auf der Registerkarte "Historie" keine alte Bestellung angezeigt wird, ist sie nicht verfügbar, auch nicht per Ticket.
Es geht ums Sortieren. Wenn sie damals nicht nach Zeit sortiert waren, konnte man den letzten Eintrag nicht über den Index finden - er war der letzte der sortierten Einträge.
Und jetzt hängt die Tiefe der Geschichte nicht mehr von der gewählten Registerkarte ab? Meiner Meinung nach ist das immer noch der Fall.