Styler im MetaTrader 5-Handelsterminal - Seite 5

 
Renat :

Meine Herren, für wen wird der Code geschrieben?


Ich bin mir ziemlich sicher, dass es für andere Programmierer ist. Es ist für sie sehr unangenehm, den unformatierten Code anderer Leute zu lesen.


Um genau dieses Problem zu lösen, haben wir die integrierte Styler-Funktion entwickelt. Wenn Sie wollen, dass andere Leute (nicht Sie, sondern andere Leute) bereit sind, sich Ihren Code anzusehen, sollten Sie ihn so einfach und eindeutig wie möglich gestalten. Und das Schlüsselwort hier ist "Menschen", nicht "Sie".


Renat, für wen wurde der Styler geschrieben?


Ich bin mir ziemlich sicher, dass sie für andere Benutzer geschrieben wurde. Aber es ist sehr unangenehm für sie, Code zu lesen, der im Stil eines anderen formatiert ist.


Um dieses Problem zu lösen, schlagen wir vor, die Funktionen des regulären Stylers zu erweitern. Wenn Sie möchten, dass andere Leute (nicht Sie, sondern andere Leute) Ihren Styler benutzen, sollten Sie ihn so bequem und anpassbar wie möglich machen. Und das Schlüsselwort hier ist "Menschen", nicht "Sie".



Programmierer schreiben Code nicht für sich selbst, auch wenn sie fälschlicherweise denken, dass er für sie ist. Sie wissen es, nicht wahr?



ps: diese CodeBase-Ausrede ist absurd, was hat der eingebettete Styler im Editor damit zu tun?

 
komposter :

ps: die Ausrede über CodeBase ist absurd, was hat der eingebettete Styler damit zu tun...?

Wenn Sie Code Base selbst erstellen, pflegen und bezahlen, wird diese Frage sofort verschwinden. Oder denken Sie, dass alles umsonst ist?


Im Moment reden wir nur über die prinzipielle Position "es ist schlecht, nur weil es nicht anpassbar ist".


Gehen wir zu den einzelnen Punkten über - zeigen Sie auf, welcher Punkt und warum er vom Styler nicht korrekt ausgeführt wird.

 
Renat :

Jetzt geht es nur noch um den prinzipiellen Standpunkt "es ist nur schlecht, weil es nicht abstimmbar ist".

Da bin ich anderer Meinung.

Ich zum Beispiel vertrete die folgende Position: "Was wir haben, ist nicht gut, weil es nicht den allgemein anerkannten Kodierungsstandards entspricht. Die Mittel, um das Ergebnis zu erreichen, spielen keine Rolle".


Sie haben eine prinzipienfeste Position, nicht nur in dieser Frage.

Und Sie lehnen es kategorisch ab, sich die Argumente anderer Leute anzuhören, auch wenn diese durchaus vernünftig und rational sind.

Lassen Sie uns zu den einzelnen Punkten übergehen - geben Sie an, welcher Punkt und warum es falsch ist, den Styler zu verwenden.

Styler macht alles richtig. Aber das Ergebnis ist nicht wie gewünscht (akzeptabel).
 
TheXpert :

Da bin ich anderer Meinung.

Zum Beispiel ist meine Position wie folgt - "was nicht zufrieden ist, weil es nicht den allgemein anerkannten Standards für die Kodierung entspricht. wenn ich nicht zufrieden bin, werde ich es nicht verwenden, wenn ich zufrieden bin, werde ich es verwenden. Die Mittel, um das Ergebnis zu erreichen, spielen keine Rolle".


Sie haben eine prinzipielle Position, nicht nur in dieser Frage.

Und Sie weigern sich beharrlich, sich die Argumente anderer Leute anzuhören, auch wenn diese durchaus vernünftig und rational sind.

Styler macht alles richtig. Aber das Ergebnis ist nicht das, was Sie wollen (akzeptabel).

+1. In jeder Hinsicht.

Es ist nur eine Entscheidung nötig, um zu den Standardstilen zurückzukehren. Sie wollen einfach nicht zugeben, dass sie in der Vergangenheit Fehler gemacht haben, weil sie einen krummen Weg eingeschlagen haben.

 
marketeer :

+1. In jeder Hinsicht.

Es ist nur eine Entscheidung nötig, um zu den Standardstilen zurückzukehren. Sie wollen nur nicht zugeben, dass sie irgendwann in der Vergangenheit einen krummen Weg eingeschlagen haben.


Ich bin mit der "Krümmung" nicht einverstanden.

Es schmeckt ihnen "leckerer" und "heller"... Diskutieren Sie nicht darüber.

Und zur Individualisierung heißt es - zurück zum Thema später

;)

 
Sorento :


Ich bin mit der "Krümmung" nicht einverstanden.

Es schmeckt ihnen "leckerer" und "heller"... Diskutieren Sie nicht darüber.

Und zu den Einstellungen sagen sie - zurück zum Thema später

;)

Was meinen Sie damit, dass Sie nicht einverstanden sind? Es gibt de facto Normen, denen man nicht widersprechen kann, man muss sie nur befolgen. Es kam ihnen nicht in den Sinn, Berichte in ihrem eigenen HTML-Format mit einer Subversion zu erstellen - sie taten es genau in der Standardversion. Das Gleiche gilt für den Stil. Die Programmierung ist eine globale Industrie, die Stile sind festgelegt, und MetaQuotes kann sich mit einer solchen "Innovation" nicht gegen die Masse stellen.

 

Bitte geben Sie an, welches Element und warum es vom Styler nicht korrekt ausgeführt wird.


Vorzugsweise mit einer Demonstration von formatierten Codestücken.

 
Renat :

Bitte geben Sie an, um welchen Artikel es sich handelt und warum er vom Styler nicht korrekt ausgeführt wird.

Vorzugsweise mit Demonstration von formatierten Codestücken.

https://www.mql5.com/ru/forum/122145, nur dort sind die Tabs klein - 2 Zeichen, aber das ist nicht so entscheidend, obwohl es normal 3-4 sind.

Die Demonstration finden Sie im ersten Beitrag. Hier fehlt ein Komma, es sollte wie in diesem Satz sein.


Wenn Sie es ernst meinen, kann ich Auszüge aus unserer Betriebsvereinbarung zitieren.

Вот это стиль! :) - MQL4 форум
  • www.mql5.com
Вот это стиль! :) - MQL4 форум
 
Renat :

Bitte geben Sie an, um welchen Artikel es sich handelt und warum er vom Styler falsch bearbeitet wurde.

Die Demonstration von formatierten Codefragmenten wäre wünschenswert.


Renat, das ist schon unsportlich ;)

MQL ist IHRE Sprache, es gibt keinen Standard dafür, also haben Sie das Recht, IHRE Standards zu setzen. Und wir werden Ihnen nichts beweisen.

Aber MQL ist eine C-ähnliche Sprache. Und C hat mehrere allgemein anerkannte Standards. Hier sind sie: https://en.wikipedia.org/wiki/Indent_style.

Ich persönlich bevorzuge den Allman-Stil (bsd in Emacs).

Die Formatvorlage setzt die zu einer Steueranweisung gehörende geschweifte Klammer auf die nächste Zeile, eingerückt auf der gleichen Ebene wie die Steueranweisung. Anweisungen innerhalb der geschweiften Klammern werden auf die nächste Ebene eingerückt.

while (x == y)
{
irgendwas();
{ somethingelse();
}
finalthing();


Das Problem, den eigenen Standpunkt zu verteidigen, scheint mir völlig abwegig zu sein. Wenn Sie Ihren Text so formatiert sehen wollen, nur zu! Es gibt aber auch Leute, die eine andere Formatierung wünschen. Diese Personen (die keinen Zugriff auf den Text haben) bitten Sie, ihre Bedürfnisse zu berücksichtigen und die Formatierung so anzupassen, dass sie sowohl Ihren als auch ihren Bedürfnissen entspricht. Nur Sie - die Entwickler - können dies tun. Deshalb wenden wir uns mit dieser Bitte an Sie. Entweder Sie kommen uns auf halbem Weg entgegen oder Sie schicken uns alle auf Ihren Standard zurück. Wählen Sie Ihre Option und geben Sie sie bekannt.

Indent style - Wikipedia, the free encyclopedia
  • en.wikipedia.org
Indentation is not a requirement of most programming languages, where it is used as secondary notation. Rather, programmers indent to better convey the structure of their programs to human readers. In particular, indentation is used to show the relationship between control flow constructs such as conditions or loops and code contained within...
 

Nur ein paar Absätze, um hinzuzufügen, warum ich denke, dass diese Frage wichtig ist und warum ich denke, dass der Allman-Stil (bsd in Emacs) der richtige ist. Vergessen wir für eine Weile, wer an was gewöhnt ist, und appellieren wir an die nackte Logik.

Warum müssen Sie Text formatieren? Um einzelne logische Blöcke darin zu isolieren und aufzuteilen, wird genau diese Formatierung verwendet.


Werfen wir einen Blick auf eine gewöhnliche Weile. Sie besteht aus zwei logisch isolierten Blöcken: dem "Kopf" der Schleife und dem Schleifenkörper. Um sie nicht zu verwechseln, müssen sie in getrennten Zeilen stehen. Aus diesem Grund führt eine öffnende Klammer in der gleichen Zeile wie while (für mich persönlich) zu Verwirrung (es ist wie bei einem Mann, der einen Raum halb betritt - der ganze Körper ist im Raum und der Kopf ist noch "links" hinter der Tür).


Die zweite Frage ist nun, ob man die Klammern einschieben soll oder nicht. Klammern beziehen sich im Prinzip nicht direkt auf den Kopf, sondern sind Teil des Schleifenkörpers. Es sollten jedoch nur ausführbare Befehle hineingeschoben werden, d. h. etwas, das eine eigene Logik hat. Es gibt jedoch mindestens ein sinnvolles Beispiel für eine Schleife ohne Körper:

while ( TradingServerNotAvailable() )
{
}

Wir haben einfach nichts zu tun, während der Handelsserver nicht verfügbar ist - also tun wir nichts und der Körperzyklus ist leer. In diesem Fall sehen die nach innen geschobenen Klammern (aus meiner Sicht) etwas seltsam aus: rechts verschoben und leer hervorgehoben.

Wenn eine Schleife einen Rumpf hat, wird dieser nach rechts verschoben und der Platz auf der linken Seite wird für die Suche nach schließenden Klammerpaaren zur Verfügung gestellt:

while ( TradingServerNotAvailable() )
{
Sleep ( 1000 );
}

Dies ist ein weiterer Grund, warum öffnende Klammern nicht in der gleichen Zeile wie der Schleifenkopf stehen sollten - sie sind dort schwerer zu finden, wenn man nach schließenden Klammern sucht. In meiner Version sehen Sie deutlich eine Klammer an dieser Stelle und ihr Gegenstück in einer anderen Zeile, aber an der gleichen Stelle. Darüber hinaus dient die Zeile mit der einfachen Klammer (auch ohne Kommentare!) als zusätzliches visuelles Element, das den internen Block vom externen Block hervorhebt und trennt.


Wie Sie sehen: nichts Persönliches - nur die Logik der visuellen Wahrnehmung des Textes!


Und aus der Sicht dieser Logik (und nicht aus der Sicht persönlicher Vorlieben und Gewohnheiten) ist der Text in der aktuellen Styler-Formatierung für mich unverständlich:

// чего вдавлен внутрь кусок кода - в котором кода нет и выделять там нечего
while ( TradingServerNotAvailable() )
{
}
// каждый отступ вправо ассоциируется с новым уровнем вложенности, а здесь визуально ТРИ уровня!
while ( TradingServerNotAvailable() ) // первый уровень
  { // второй уровень
   Sleep(1000); // третий уровень
  }

Und wenn es in GNU-inspirierter Schrift einfach nur Brei ist.

if ( TradingServerNotAvailable() ) {
  ....
} else { // вот тут в одной строке ТРИ элемента разных блоков: закрытие предыдущего, разделитель, начало следующего :(((
  ....
}

und wie können Sie feststellen, ob Sie keine öffnenden Klammern verloren oder eine zusätzliche schließende Klammer gesetzt haben? Es ist folgendermaßen:

if ( TradingServerNotAvailable() ) 
{
  ....
}
else
{
  ....
}
noch einmal: es geht nicht um meine persönlichen Gewohnheiten oder sonst etwas - es ist einfach die Logik der visuellen Wahrnehmung des Textes!
Indent style - Wikipedia, the free encyclopedia
  • en.wikipedia.org
Indentation is not a requirement of most programming languages, where it is used as secondary notation. Rather, programmers indent to better convey the structure of their programs to human readers. In particular, indentation is used to show the relationship between control flow constructs such as conditions or loops and code contained within...