Wie unterscheidet man programmatisch zwischen einem PROFESSIONELLEN Fötus und einem DILIETANEN Fötus? - Seite 7

 

Alle String-Funktionen sind kostenintensiv.

Alle grafischen Funktionen sind kostspielig.

Je mehr Diagrammelemente - desto langsamer (um die Arbeit im visuellen Modus zu beschleunigen, sollten Sie die Ordnungssymbole regelmäßig löschen, vor allem, wenn es viele davon gibt).

Am zeitaufwändigsten sind hier WinowsRedraw() und Comment(), da das Diagramm bei deren Aufruf ebenfalls neu gezeichnet wird.

So sieht es auf den ersten Blick aus.

 

Das Problem ist, dass der Code zwar von einem Profi und sehr kompetent geschrieben werden kann (ohne kostspielige Funktionen und Designs), aber er kann den absoluten Unsinn verkörpern, für den er in Auftrag gegeben wurde.

Es ist nicht mehr interessant.

 
Mathemat:

Das Problem ist, dass der Code zwar von einem Profi und sehr kompetent geschrieben werden kann (ohne kostspielige Funktionen und Designs), aber er kann den absoluten Unsinn verkörpern, für den er in Auftrag gegeben wurde.

Es ist nicht mehr interessant.

Meines Erachtens muss ein professioneller Programmierer für sich selbst schreiben, wie ein Schriftsteller oder Komponist, und zwar auf Bestellung, auch professionell, unbedingt mit einem wirklich positiven Ergebnis. Eine andere Sache ist, wenn er gebeten wird, über die Idee des Kunden zu schreiben (TOR), obwohl seine Idee für den Programmierer nicht schlüssig ist. In diesem Fall warnt der Programmierer, dass es unwahrscheinlich ist, dass der Kunde mit dem Tipp arbeitet, aber der Kunde besteht darauf und der Programmierer führt den Auftrag aus. Ich verstehe, dass die Besonderheiten hier anders sind und dass kein Meisterwerk den Test der Zeit bestehen wird, aber ich stimme zu, dass es Beispiele für Langlebigkeit (verifiziert durch den Tester) im Markt auf MT5 für die gesamte Geschichte gibt. Ich denke, dies wird der Ausgangspunkt für die Bestimmung der Professionalität des Programms und der Programmierer, als auch der Händler, nicht weil er weiß, weiß, wie, aber durch das Ergebnis. Natürlich muss diese professionelle Arbeit auch einen entsprechenden Preis haben. Und niemandem ist es verboten, schlechte Arbeit zu leisten, wie es Schriftsteller und Komponisten oft tun, die dies herablassend als einen erzwungenen Nebenjob "zum Unterhalt ihrer Hosen" betrachten. Verzeihen Sie mir meine Offenheit, aber warum sollte ich mich sonst äußern?

 
Inspiration ist nicht käuflich. Aber Sie können ein Manuskript verkaufen.
 

Dimitri, definieren Sie, was Ihr Analysator können soll. Einen guten Code von einem schlechten zu unterscheiden ist eine Aufgabe, eine gute Idee von einer schlechten zu unterscheiden eine ganz andere. Und während man im ersten Fall versuchen kann, automatische Lösungen zu finden, ist das im zweiten Fall selbst im manuellen Modus schwierig, und selbst im automatischen Modus ist es einfach unrealistisch. Aber da wir jetzt von einem Analysator sprechen, der guten von schlechtem Code unterscheiden kann, sollten wir das Thema diskutieren:

Was unterscheidet einen Profi überhaupt von einem Amateur? Meiner Meinung nach ist es das Niveau der Sprachkenntnisse, das sich durch eine Vielzahl von Möglichkeiten des Sprachgebrauchs zeigt. Wenn ein Entwickler also nicht-triviale Notation und Algorithmen wie Rekursion verwendet, ist es wahrscheinlicher, dass er ein professioneller Programmierer ist. Auf dieser Grundlage können wir ein Expertensystem konstruieren, das den Code analysiert und die Anzahl der darin verwendeten "Tricks" berechnet. Für jeden Chip gibt es Punkte. Ist ein Chip hingegen negativ, werden Sanktionen verhängt. So erhält man eine Zahl oder eine Gesamtpunktzahl, die den Code als Ganzes charakterisiert. Sie können zum Beispiel eine Art Gewichtungstabelle erstellen:

Hier ist der Tipp:
Ergebnis
Verwendung von Arrays
+1
Wiederverwendung von Code (Verhältnis von Funktionen zu Codezeilen)
+4
Operatoren += -= /=
+1
Operatoren % >> <<
+3
Rekursiver Funktionsaufruf
+5
Verwendung von Präprozessor-Direktiven
+3
Anzahl der kommentierten Zeilen in Bezug auf die Menge des Codes
+5
Verwendung von "langsamen" Funktionen
-3
Verwendung von Variablen desselben Typs: time1, time2, time3, time4
-4

Als Ergebnis berechnet das Expertensystem die Gewichtung der einzelnen Parameter und gibt eine Gesamtbewertung ab, die die allgemeine Qualität des Codes charakterisiert.

 

Leute, der einzige Weg, den Unterschied zwischen Profi-Code und Rookie-Code zu erkennen, ist, die Ergebnisse der Code-Optimierung zu sehen. Sie werden nicht in der Lage sein, eine 100%ige Optimierung zu verfolgen. Sie können nur einige seiner Elemente zurückverfolgen. Und auch ein Anfänger kann eine Teiloptimierung durchführen. Ersetzen Sie zum Beispiel die Operation "Multiplizieren mit zwei" durch die Operation "Addieren eines Wertes zu sich selbst". Geben Sie es auf, die Idee der Nachverfolgung ist zu ressourcenintensiv im Vergleich zu dem Ergebnis, das sie bringen kann. Es ist nicht rentabel, in einen Prog zu investieren - es ist ein Versuch, ein Streichholz aus einem Stamm zu schneiden - ein Streichholz als Produkt und der Rest als Späne.

 
drknn:

Leute, der einzige Weg, den Unterschied zwischen Profi-Code und Rookie-Code zu erkennen, ist, die Ergebnisse der Code-Optimierung zu sehen.

Scheißkerle ))
 

Zeichen des Berufskodex:
Aussagekräftige Namen von Variablen und Funktionen;
Gut durchsuchbare Programmstruktur;
Gute Kommentare.

Sie können nur manuell in der Software nach solchen Merkmalen suchen. Die Automatisierung wird nicht funktionieren.

SZY Dies alles sollte in Programmen gesucht werden, die ein Programmierer für sich selbst schreibt.
In unserer Zeit wird ein Programmierer, der etwas auf sich hält, diesen Code nicht an Dritte weitergeben.

 
FAQ:

Alle String-Funktionen sind kostenintensiv.

Alle grafischen Funktionen sind kostspielig.

Je mehr Diagrammelemente - desto langsamer (um die Arbeit im visuellen Modus zu beschleunigen, sollten Sie die Ordnungssymbole regelmäßig löschen, vor allem, wenn es viele davon gibt).

Am zeitaufwändigsten sind hier WinowsRedraw() und Comment(), da das Diagramm bei deren Aufruf ebenfalls neu gezeichnet wird.

So sieht es auf den ersten Blick aus.


Ich bin an schnelleren Optimierungen (Testen ist ein separates Thema) und geringerem Speicherverbrauch interessiert.
Die Frage der Beschleunigung von Optimierungen (Testen ist ein separates Thema) und die Verringerung des Speicherverbrauchs. Im Forum erwähnte jemand beiläufig, dass dies notwendig sei, um das "Hinzufügen" von grafischen
Objekte während der Optimierung. Theoretisch sieht die Optimierung überhaupt keine Grafiken und ich nahm an, dass solche
Ich nahm an, dass Befehle wie ObjectCreate() bei der Optimierung einfach ignoriert werden.
Muss ich sie blockieren oder nicht?
Aber wenn Sie sie trotzdem deaktivieren müssen, bedeutet das, dass wir jedes Mal eine Prüfung hinzufügen müssen
if(IsOptimization()==false ) {
}
Gleichzeitig beeinträchtigen solche Prüfungen selbst die Optimierungsgeschwindigkeit.
Sind Zustandsprüfungsfunktionen teuer?
Ist es sinnvoll, sie Variablen zuzuweisen und sie später zu verwenden?
Ich habe fast immer Comment() - sollte es auch während der Optimierung gesperrt werden?
Was ist mit Alert und Print? (wieder - während der Optimierung). Sie werden während der Optimierung nicht in das Protokoll geschrieben, oder?
 
chief2000:

Und wenn Sie sie trotzdem blockieren müssen, bedeutet das, dass Sie jedes Mal ein Häkchen setzen müssen

Tu es einfach nicht

if(IsOptimization()==false ) {
}

а

if( !IsOptimization() ) {
}

Aber es ist besser, es auf diese Weise zu tun:

if ( !IsOptimization() && ( !IsTesting() || IsVisualMode() ) ) {

// ...

}

Diese Bedingung kann einmalig ausgeführt werden und einen Wert eines Flags setzen, der dann verwendet werden kann, um zu prüfen, ob Text und grafische Informationen im Diagramm angezeigt werden müssen.

PS.

Und überhaupt, warum bist du so lebhaft? Der Themenstarter zeigt von Zeit zu Zeit an, dass du ..., und von D'Artagnan.