Programmierung des Sonnenuntergangs? - Seite 17

 
Alexandr Andreev:

Natürlich ist es einfacher, den Code zu analysieren, wenn man den Schaltplan kennt, als wenn man den Schaltplan nicht kennt.

Technisch gesehen wäre es sogar praktisch, eine Art Code-Visualisierung zu haben... vor allem, wenn das eine das andere nicht aufhebt, sondern es ergänzt.

Ich stimme zu.
 
Wir sind also zu dem Schluss gekommen, dass ein Pferd in einer Kolchose zwar härter arbeitet, aber ohne einen guten Pfleger nichts taugt.
 
Aber man muss die Benutzerfreundlichkeit des Ganzen sehr gut ausarbeiten. Und verstehen, was am häufigsten gebraucht wird. D.h. es macht keinen Sinn, das ganze Durcheinander aller Zusammenhänge zu zeigen, denn es kann 20 Vererbungen (in der Tiefe) des Objekts mit vielen Anhängen, Nachladungen geben. Aber um zu sehen, wo dieses Objekt in den übergeordneten Strukturen erwähnt wird oder wo es initialisiert wird, müssen wir eine detaillierte externe Initialisierung des Objekts in dem zu analysierenden Code schreiben. Oder erstellen Sie schnell eine neue Zwischeneinheit mit dem Nachladen bestimmter Funktionen und stellen Sie sicher, dass Sie in den übergeordneten Funktionen keine Fehler gemacht haben. Obwohl diese Aufgabe normalerweise von der Suche oder dem Compiler übernommen wird
 
Alexandr Andreev:

Natürlich ist es einfacher, den Code zu analysieren, wenn man den Schaltplan kennt, als wenn man den Schaltplan nicht kennt.

Technisch gesehen wäre es sogar praktisch, eine Art Code-Visualisierung zu haben... vor allem, wenn das eine das andere nicht aufhebt, sondern ergänzt.

Aber warum nicht einen vollwertigen Code-Visualisierer entwickeln, der autark ist?

Erfinden Sie eine grafische Sprache für die Darstellung des Codes, überlegen Sie sich eine gute Navigation darin, entscheiden Sie über die Priorität der anzuzeigenden Informationen (je wichtiger die Informationen sind, desto weniger Aufwand ist nötig, um sie anzuzeigen, je unwichtiger dagegen). Sie brauchen auch eine gründliche Analyse des Codes.

Es wird sicher nicht einfach sein. OK, ich weiß, dass es unwahrscheinlich ist, dass es zur Umsetzung kommt...

 
Aliaksandr Hryshyn:

Warum nicht einen vollwertigen Code-Visualisierer entwickeln, der autark ist?

Überlegen Sie sich eine grafische Sprache für die Darstellung des Codes, überlegen Sie sich eine gute Navigation darin, entscheiden Sie sich für die Priorität der angezeigten Informationen (wichtigere Informationen erfordern weniger Aufwand für die Anzeige, weniger wichtige - im Gegenteil). Sie brauchen auch eine gründliche Analyse des Codes.

Es wird sicher nicht einfach sein. OK, ich weiß, dass es unwahrscheinlich ist, dass es zur Umsetzung kommt...

Es gibt Programme wie die 3D-Konstruktion für Ölraffinerien. Sie enthalten ein Diagramm der Rohrleitungsanschlüsse. Für erfahrene Verfahrenstechniker ist es einfacher, einen Stapel von Zeichnungen zu lesen als ein einzelnes "visuelles" Diagramm, aber sie gewöhnen sich nach einer Weile daran. Ich meine, dass der komplizierte Code im Falle einer Visualisierung immer noch schwer zu verstehen sein wird. Wenn Sie alle Regeln befolgen, ist der Code in seiner ursprünglichen Form recht einfach zu lesen.
 
Aliaksandr Hryshyn:

Warum nicht einen vollwertigen Code-Visualisierer entwickeln, der autark ist?

Überlegen Sie sich eine grafische Sprache für die Darstellung des Codes, überlegen Sie sich eine gute Navigation darin, entscheiden Sie sich für die Priorität der angezeigten Informationen (wichtigere Informationen erfordern weniger Aufwand für die Anzeige, weniger wichtige - im Gegenteil). Sie brauchen auch eine gründliche Analyse des Codes.

Es wird sicher nicht einfach sein. Ok, ich weiß, dass es unwahrscheinlich ist, dass es zur Umsetzung kommt...

Mit der Möglichkeit, eigene Einstellungen mit eigenem Code und visuellem Design zu erstellen und fertige visuelle Designvorlagen anderer zu verwenden, nennt man es Faulheit, ein paar Zeilen zu schreiben)))

Bei der Programmierung ist meine erste Anlaufstelle wahrscheinlich das Nachladen von Funktionen. Aber im Code ist sowieso alles sehr kurz, man schreibt den neuen Namen, schreibt, wovon man erbt (und normalerweise ist es eine Vorlage), schreibt, was und womit man es ersetzt. Das ist alles!

Ich denke, diese Macken werden schnell zu einer riesigen Bibliothek anwachsen, und es wird schwer sein, sie sich alle zu merken.

 
Реter Konow:
Ja, aber die Richtung ist richtig. Die Codierung ist ein schmaler Kanal, um das Potenzial des Gehirns zu nutzen. Das durch den Code beschriebene Muster wird Hunderte Male länger verstanden als das gleiche Muster, das von den Augen wahrgenommen wird. Stellen Sie sich das Drehen einer Welle vor, die bei jeder Umdrehung langsamer wird und ihren Neigungswinkel leicht vergrößert. Beschreiben Sie diesen Vorgang mit Formeln in Code und filmen Sie ihn mit einer Kamera. Messen Sie die Zeit, die der Programmierer braucht, um zu erkennen, dass es sich um dieselbe Sache handelt.

Jeder hat seinen eigenen Ansatz. Persönlich finde ich Diagramme nur leicht ärgerlich) Ich viel mehr wie der Ansatz der literarischen Programmierung von Donald Knuth (übersetzt in russischer Sprache als "literate" aus irgendeinem Grund) und die Art und Weise es umgesetzt wird, zum Beispiel in R Sprache (R Markdown).

Es handelt sich um ein ungelöstes Problem der Mechanik - es gibt keine allgemeine Formel für die Bewegung (selbst wenn man die Reibung vernachlässigt).

Literate programming - Wikipedia
Literate programming - Wikipedia
  • en.wikipedia.org
The literate programming paradigm, as conceived by Knuth, represents a move away from writing computer programs in the manner and order imposed by the computer, and instead enables programmers to develop programs in the order demanded by the logic and flow of their thoughts.[2] Literate programs are written as an uninterrupted exposition of...
 
Aleksey Nikolayev:

Es ist ein ungelöstes Problem der Mechanik - es gibt keine allgemeine Formel für die Bewegung (selbst wenn man die Reibung ignoriert).

Und der keltische Stein ist auch eine Spirale )

 
Aleksey Nikolayev:

...

Es ist ein ungelöstes Problem der Mechanik - es gibt keine allgemeine Formel für die Bewegung (selbst wenn man die Reibung vernachlässigt).

Irgendwie habe ich nicht darüber nachgedacht. )

 
Aleksey Mavrin:
Es gibt Softwareprogramme wie 3D-Design für Ölraffinerien. Sie enthalten ein Diagramm der Rohrleitungsanschlüsse. Für einen erfahrenen Verfahrensingenieur ist es einfacher, einen Stapel von Zeichnungen zu lesen als ein einzelnes "visuelles" Diagramm, und er gewöhnt sich daran. Ich meine, dass der komplizierte Code im Falle einer Visualisierung immer noch schwer zu verstehen sein wird. Wenn Sie alle Regeln befolgen, ist der Code in seiner ursprünglichen Form recht einfach zu lesen.

Sie fragen sich, warum die beiden nachstehenden Codeanzeigen unterschiedlich wahrgenommen werden:

//+------------------------------------------------------------------+
//| Initialization of the indicators                                 |
//+------------------------------------------------------------------+
bool CSampleExpert::InitIndicators(void)
  {
//--- create MACD indicator
   if(m_handle_macd==INVALID_HANDLE)
      if((m_handle_macd=iMACD(NULL,0,12,26,9,PRICE_CLOSE))==INVALID_HANDLE)
        {
         printf("Error creating MACD indicator");
         return(false);
        }
//--- create EMA indicator and add it to collection
   if(m_handle_ema==INVALID_HANDLE)
      if((m_handle_ema=iMA(NULL,0,InpMATrendPeriod,0,MODE_EMA,PRICE_CLOSE))==INVALID_HANDLE)
        {
         printf("Error creating EMA indicator");
         return(false);
        }
//--- succeed
   return(true);
  }

Als Nächstes entfernen Sie den grafischen "Flitter". Abzüglich der Farbe, abzüglich des Einzugs (relative Positionierung).

//Initialisierung der Indikatoren

bool CSampleExpert::InitIndicators(void)

{

//MACD-Indikator erstellen

if(m_handle_macd==INVALID_HANDLE)

if((m_handle_macd=iMACD(NULL,0,12,26,9,PRICE_CLOSE))==INVALID_HANDLE)

{

printf("Fehler beim Erstellen des MACD-Indikators");

return(false);

}

//EMA-Indikator erstellen und zur Sammlung hinzufügen

if(m_handle_ema==INVALID_HANDLE)

if((m_handle_ema=iMA(NULL,0,InpMATrendPeriod,0,MODE_EMA,PRICE_CLOSE))==INVALID_HANDLE)

{

printf("Fehler beim Erstellen des EMA-Indikators");

return(false);

}

//Erfolg

return(true);

}

Die Lesbarkeit ist spürbar schlechter. Dies deutet darauf hin, dass eine grafische Darstellung die Lesbarkeit spürbar verbessern kann. Ich spreche nicht speziell von Diagrammen, es könnte viele Möglichkeiten geben.