Rückmeldung zu MQL5 - Seite 7

 
Renat Fatkhullin:

Die Beschreibung der Regeln durch einen Stilisten lässt sich nicht in ein paar Zeilen eines fiktiven Textes zusammenfassen.

Es formatiert den Weg, den wir festgelegt haben.

Hallo!

Die Tatsache, dass der Styler nur die Art und Weise formatiert, die Sie festgelegt haben, und nichts anderes, ist ein wenig seltsam. Lassen Sie mich das erklären.

MT ist eine Windows-Plattform. Das wichtigste Entwicklungswerkzeug für Windows ist MSVC, während MT in MFC geschrieben ist. Diese Bibliothek übernimmt die Variante des Einrückungs- und Formatierungsstandards von Kernighan und Ritchie. Für eine Person, die ihr ganzes Leben in MSVC verbracht hat (und das sind die meisten in Windows), sind 3 Leerzeichen als Tabulator und 2 zusätzliche Leerzeichen vor "{" und auch kein Leerzeichen zwischen Geraden (if, for...) und folgenden Klammern ein wenig lächerlich und stören das Lesen des Codes. Ich verstehe, dass Sie dieses Format als Unternehmensstandard übernommen haben, aber es gilt nicht für andere Entwickler.

Ich schlage also vor, einige Styler-Einstellungen einzuführen, und alle werden sich sehr bedanken.

 
SeriousRacoon:

Hallo!

Die Tatsache, dass der Styler nur so formatiert, wie Sie es wünschen, und nicht auf andere Weise, ist etwas seltsam. Lassen Sie mich das erklären.

MT ist eine Windows-Plattform. Das wichtigste Entwicklungswerkzeug für Windows ist MSVC, die MT-Bibliothek ist in MFC geschrieben. Diese Bibliothek übernimmt die Variante des Einrückungs- und Formatierungsstandards von Kernighan und Ritchie. Für jemanden, der sein ganzes Leben in MSVC verbracht hat (und das sind die meisten in Windows), sind 3 Leerzeichen als Tabulator und 2 zusätzliche Leerzeichen vor "{" sowie das Fehlen von Leerzeichen zwischen Eigenschaften (if, for...) und der darauf folgenden Klammer etwas lächerlich und stören das Lesen des Codes. Ich verstehe, dass Sie dieses Format als Unternehmensstandard übernommen haben, aber es gilt nicht für andere Entwickler.

Deshalb schlage ich vor, einige Styler-Einstellungen einzuführen, jeder wird sich dafür bedanken.

Eine kleine Korrektur: Microsoft Codestyle ist kein K&R-Standard. Der K&R-Standard ist im Grunde ein Unterschied in geschweiften Klammern, der so konzipiert ist, dass so viele Zeilen wie möglich auf den Bildschirm der PDP-11 und anderer alphanumerischer Displays passen - 80 Zeichen * 25 Zeilen. Übrigens, hier ist ein Link zu dem Buch, vielleicht findet es jemand nützlich http://rabus.ru/KernighanRitchie_C/index.html#content

/* подсчет строк, слов и символов */
main()
{
    int с, nl, nw, nc, state;
    state = OUT;
    nl = nw = nc = 0;
    while ((с = getchar()) != EOF) {
        ++nc;
        if (c == '\n')
            ++nl;
        if (c == ' ' || c == '\n' || c == '\t')
            state = OUT;
        else if (state == OUT) {
            state = IN;
            ++nw;
        }
    }
    printf(“%d %d %d\n”, nl, nw, nc);
}

Ansonsten stimme ich zu, und es wurde schon 100500 Mal geschrieben. Ich persönlich nehme alle MQL-Fremdtexte mit ins Studio und formatiere sie dort neu.

 
Alexey Volchanskiy:

Kleine Korrektur: Microsofts Codestyle ist kein K&R-Standard. Der K&R-Standard ist hauptsächlich ein Unterschied in geschweiften Klammern, er wurde entwickelt, um so viele Zeilen wie möglich auf den Bildschirm der PDP-11 und anderer alphanumerischer Displays zu bringen - 80 Zeichen * 25 Zeilen. Übrigens, hier ist ein Link zu dem Buch, vielleicht findet es jemand nützlich http://rabus.ru/KernighanRitchie_C/index.html#content

Ansonsten stimme ich zu, und es wurde schon 100500 Mal geschrieben. Ich persönlich nehme alle MQL-Fremdtexte mit ins Studio und formatiere sie dort neu.

Ja, der Unterschied liegt in der öffnenden Klammer, ansonsten ist es ähnlich, deshalb habe ich es eine "Variante" genannt.

Es wäre einfacher, wenn die МТ-Umgebung über Benutzerwerkzeuge verfügen würde, so dass ich ein Verschönerungsprogramm eines Drittanbieters hinzufügen könnte, aber das ist nicht möglich. Optional können Sie einen Editor eines Drittanbieters verwenden, der die stdout-Ausgabe von Benutzerwerkzeugen unterstützt (Editplus ist ein Klassiker, aber es gibt auch interessantere Lösungen), aber das ist nur eine zusätzliche Krücke. Ich verwende Unscrutify, das in UniversalIndentGUI konfiguriert ist.

 
Kommentare, die sich nicht auf dieses Thema beziehen, wurden nach "Diskussion über "Warum Shared Hosting in MetaTrader 4 und MetaTrader 5 besser ist als reguläre VPS" verschoben.
 
urusov:

Ich bitte Sie:

https://www.mql5.com/ru/forum/35326

https://www.mql5.com/ru/forum/1111/

Nennen Sie eine gebräuchliche Sprache, in der ich einem Zeiger keine andere Adresse zuweisen kann? Nennen Sie eine andere weit verbreitete Sprache, in der ich eine Referenz desselben Typs nicht einem anderen Objekt zuweisen kann? Wo sonst wäre ich gezwungen , einen Konstruktor oder eine Kopierfunktion aufgrund dieser Einschränkungen Ihrer Sprache zu beschreiben?

Und wenn die Kontrollierbarkeit für Sie so wichtig ist, warum gibt es dann in anderen kontrollierten Sprachen keine ähnlichen Einschränkungen?

Für mich persönlich steht nicht die Sicherheit und Kontrollierbarkeit an erster Stelle, sondern die Geschwindigkeit, mit der ich eine Idee umsetzen kann; dies gilt ganz besonders im Zusammenhang mit Handelsideen; wer dem nicht zustimmt, überschätzt entweder den Wert seiner Systeme oder programmiert um des Programmierens willen, nicht um eines bestimmten Ergebnisses willen.

C# ist jetzt eine Industriesprache und hat C++ bei Geschäfts- und Internetanwendungen bereits weitgehend ersetzt. Es gibt also keine Zeiger, oder besser gesagt, sie sind da, aber unsicher, und niemand braucht unsicheren Code, nur für persönliche Basteleien.
 
Alexey Volchanskiy:
C# ist jetzt eine Industriesprache und hat C++ in Geschäfts- und Internetanwendungen bereits weitgehend ersetzt. Es gibt also keine Zeiger, oder besser gesagt, es gibt sie, aber unsicher, und niemand braucht unsicheren Code, nur für persönliche Basteleien.
Gibt es Vorteile von C sharp für normale Menschen?
 

Und warum ist ein nackter Zeiger so schlecht? Wenn Sie nicht mit strengen Aliasing-Optimierungen zu tun, Zeiger sind im Allgemeinen ziemlich sicher (msvc tat das).

Generell verschleiert das ganze Gerede über Sicherheit nur die wahren Gründe, wie schon gesagt wurde. Und der Grund ist einfach, ich denke - nicht zulassen, in irgendeiner Weise Adressen von Funktionen zu wissen, die an dll übergeben werden. Ein vergrabenes System braucht die Außenwelt nicht.

 
Oder ist der MC mit normalen Colbeks einverstanden? Ich habe eine Idee: Ist das Thema nicht tabu?
 
Alexey Volchanskiy:
C# ist inzwischen eine Industriesprache und hat C++ bei Geschäfts- und Internetanwendungen bereits weitgehend ersetzt. Es gibt also keine Zeiger, oder besser gesagt, sie sind da, aber unsicher, und niemand braucht unsicheren Code, nur für persönliche Basteleien.

Übrigens!

Ich bin einmal auf einen Vergleich der Sprachen C und Pascal gestoßen

Die Sprache C ist wie das Fahren eines Ferraris auf einer Bergstraße mit 180 km/h,

und die Pascalsche Sprache ist eine ruhige Fahrt in einer Limousine auf einer breiten Einbahnstraße mit 40 km/h.

C sollte eine echte Männersprache sein.)

In der C muss man auf die Wegweiser achten :-) Die Sprache C ist nichts für schwache Nerven, denn wenn man den Schildern nicht folgt, läuft man Gefahr, in einer Haarnadelkurve von der Strecke zu fliegen.

C ist die Sprache der Betriebssysteme und Dienstprogramme, der Treiber. C wurde ursprünglich von Profis geschrieben, die die Betriebssysteme und Dienstprogramme für die Benutzer entwickelten.

Pascal wurde ursprünglich in C für Studenten geschrieben und war als Lehrsprache gedacht.

Der Unterschied im Zweck und in der Verwendung der Werkzeuge ist offensichtlich.

MQL ist im Wesentlichen ein Derivat von C, die Wahl der MetaQuotes-Entwickler ist fachlich sehr richtig.

 
Yuriy Zaytsev:

Apropos!

Ich bin einmal auf einen Vergleich von C und Pascal gestoßen.

Die Sprache C ist wie ein echter Ferrari , der mit 180 km/h über eine Bergstraße fährt,

und die Pascalsche Sprache ist eine ruhige Fahrt in einer Limousine auf einer breiten Einbahnstraße mit 40 km/h.

C sollte eine echte Männersprache sein.)

In der C muss man auf die Wegweiser achten :-) Die Sprache C ist nichts für schwache Nerven, denn wenn man den Wegweisern nicht folgt, läuft man Gefahr, in einer Haarnadelkurve vom Weg abzukommen.

C ist die Sprache der Betriebssysteme und Dienstprogramme, der Treiber. C wurde ursprünglich von Profis geschrieben, die die Betriebssysteme und Dienstprogramme für die Benutzer entwickelten.

Pascal wurde ursprünglich in C für Studenten geschrieben und war als Lehrsprache gedacht.

Der Unterschied im Zweck und in der Verwendung der Werkzeuge ist offensichtlich.

MQL ist im Wesentlichen ein Derivat von C. Die Wahl der MetaQuotes-Entwickler ist fachlich sehr korrekt.

Welchen Unterschied macht es überhaupt, in welcher Sprache man schreibt?

(Sie können zum Beispiel Treiber und alles andere in Pascal schreiben).

Es ist wichtig zu verstehen, was und wie man es macht, und die Programmiersprache ist eine doppelte Angelegenheit!