Die künstlerische Art des Programmierens

Als ich vor 12 Jahren mit meinem Informatikunterricht begann, lernte ich als erstes „Daten“ bedeutet „Information“. Einige Tage später begannen wir mit der konventionellen Programmierung, bei der Code und Daten getrennt behandelt wurden. Als funktionale Argumente können beispielsweise nur Daten übergeben werden. Es war für mich schwer zu verdauen, dass „Code, der auch Informationen ist, nicht als Daten behandelt wird“. Ich war der festen Überzeugung, dass dies die Komplexität von Software auf lange Sicht erhöhen wird.

Ein System macht drei Dinge – lesen, transformieren (Daten verarbeiten), schreiben. Mit anderen Worten – die Mathematik (der Transformationsteil) und die Auswirkungen davon im wirklichen Leben (der Lese-/Schreibteil). Die Datentransformation ist in der Tat ein mathematisches Konzept, und mit Hilfe von Lesen und Schreiben machen wir die Mathematik (den Transformationsteil) für die reale Welt nützlich. Das Einbringen des „Transformations“-Teils vollständig in den mathematischen Bereich hat seinen eigenen Vorteil, die Mathematik ohne Angst (mögliche Fehler) für die Analyse des Systems zu verwenden, wodurch das System mathematisch handhabbarer wird. Der Haken ist, dass beide Transformationselemente, Daten und Funktionen, gleich behandelt werden.

Anfangs war der Code größer als die Daten, sodass das Senden von Daten über das Kabel möglich war. Aber mit der Zeit werden die Daten riesig, das Senden von Code an Systeme über das Kabel wird zur Notwendigkeit, die Daten bleiben intakt auf den Systemen. Bei Big Data ist es das Gebot der Stunde, den Code als Daten zu behandeln, damit der Code als Argument für eine andere Metafunktion auf einem System mit riesigen Datenmengen verwendet werden kann, das einen Algorithmus für Transformationen erwartet.

Codes sind grob gesagt Algorithmen, Algorithmen sind mathematische Funktionen, Funktionen wiederum sind eigentlich Nachschlagetabellen, also Daten. Daher sind bei diesem Prinzip alle Codes oder Funktionen Daten. Dies ist genau der Grundstein des funktionalen Paradigmas. Die funktionale Programmierung ist das Programmieren mit Funktionen, sie behandeln Funktionen und Daten gleichermaßen. Ein weiteres Prinzip, das ich liebe, um Komplexität zu kontrollieren, sollten Regeln selbst nicht komplex sein.

Für das funktionale Paradigma neu geschriebene Daumenregeln:

Lesen/Schreiben und Transformationen (Algorithmen) sollten getrennt sein.

Verwenden Sie unveränderliche Variablen. Entmutigen Sie die Verwendung von Neuzuweisungsanweisungen.

Vermeiden Sie Nebenwirkungen (Eingabe/Ausgabe oder das Ändern einer beliebigen Variablen an Ort und Stelle), jede Funktion sollte NUR das erwartete Ergebnis zurückgeben.

Verwenden Sie referenziell transparente Funktionen (manchmal auch reine Funktionen genannt) ohne Nebenwirkungen, dh wenn x = y, sollten f(x) und f(y) für immer gleich sein.

Unit-Tests sind für jede Funktion ein Muss.

Eines der wichtigsten Entwurfsmuster ist die Verwendung von Ausdrücken anstelle von Anweisungen, dh es sollte deklarativen Charakter haben. Vermeiden Sie die Verwendung von Schleifen wie for/while – verwenden Sie rekursive Anweisungen wie oben gezeigt, um die Summe zu berechnen. Sagen Sie Computern, was zu tun ist, und nicht, wie es zu tun ist – es reduziert Fehler, insbesondere in Grenzfällen.

Mit der Notwendigkeit, die Komplexität des Systems und das Vorausdesign zu kontrollieren, kann das Designmuster für die funktionale Zusammensetzung so gestaltet werden, dass es einigen grundlegenden algebraischen Strukturen folgt, was wiederum robuster wird.


Source by Kapil Rajak

About admin

Check Also

Kann man Computerprogrammierer werden?

Der Einstieg in die Computerprogrammierung ist lukrativ, da Sie gut bezahlt werden. Obwohl diese Softwarebranche …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.