Hinweis: Dieser Artikel ist ein Beitrag zum ScienceBlogs Blog-Schreibwettbewerb 2015. Hinweise zum Ablauf des Bewerbs und wie ihr dabei Abstimmen könnt findet ihr hier. Informationen über die Autoren der Wettbewerbsbeiträge findet ihr jeweils am Ende der Artikel.
——————————————
Hello there.
Ich dachte ich könnte mal beim Blogschreibwettbewerb mitmachen indem ich Euch etwas über übersichtlichen Code erzähle. Ich versuche nicht allzu Fachspezifisch zu sein, sodass dieser Artikel auch für Nicht-Programmierer geeignet ist.
Ich bin ein Programmierer im 3. Lehrjahr von 4 und lebe in der Schweiz. In diesem Artikel werde ich eines meiner Programme als Beispiel nehmen. Es geht nicht um das Programm oder den Code an sich, ich könnte jedes andere Programm nehmen dass mir zur Verfügung steht. Das Programm ist in C# mit Visual Studio geschrieben.
Schauen wir uns erstmal an wie mein Programm aussieht:
Das Programm sieht jetzt nicht allzu spektakulär aus, aber die Main File hat knapp 400 Zeilen, wo es schon sehr unübersichtlich werden kann.
Bevor ich anfange will ich noch mal kurz erklären warum man den Code eigentlich übersichtlich halten sollte. Es gibt für mich 3 Gründe dies zu tun:
– Wenn andere am Programm arbeiten (Egal ob man im Team arbeitet oder wenn man in den Ferien ist und jmd einen vertritt: Die Personen die sonst noch am Programm arbeiten müssen sich schnell mit Eurem Code zurecht finden)
– Wenn man selbst nach langer Zeit das Programm bearbeitet (Beispiele wären, wenn man aus den oben erwähnten Ferien kommt oder wenn man nach einer Pause an einer Erweiterung des Programms arbeitet)
– Um den Überblick zu erhalten (Nichts ist nerviger als in 400+ Zeilen unübersichtlichem Code herauszusuchen wo die Methode oder Schlaufe ist die man gerade braucht)
Ich habe schon im Team an Programmen gearbeitet. Kommentieren und übersichtlicher Code ist da sehr wichtig.
Jetzt zur Frage, wie hält man den Code übersichtlich?
Folgende Punkte sind für mich sehr wichtig:
-Strukturieren
-Je weniger Code desto besser
-Kommentieren
-Dokumentieren
Fangen wir mit dem Obersten Punkt an: Wenn man seinen Code gut strukturiert, zum Beispiel mit Abständen, ist er schon mal sehr Leserlich. Dies kann auch beim Schreiben von Texten hilfreich sein. Wie man sehen kann verwende ich auch viele (Evtl zu viele…) Abstände um diesen Artikel leserlicher zu machen. In meinen Augen liest sich nichts schwieriger als eine endlos grosse Textwand.
Ein Beispiel wie man mithilfe von Abständen den Code leserlicher machen kann ist wie ich meine Variablen strukturiert habe.
Kurz erklärt: Variablen sind Platzhalter für Zahlen, Text, Objekte, etc. Dies ist aber nicht so wichtig.
Kommen wir zum Bild:
Hier kann man erkennen dass ich die Variablen nach Ihrem Datentyp sortiert habe. Der Datentyp erklärt was in der Variable gespeichert ist. Int steht für Integer und beschreibt eine Zahl. String Beschreibt einen Text. Diese Datentypen existieren weil die Verschiedenen Typen verschieden viel Platz im Speicher brauchen. Auch die Operationen mit den Variablen unterscheiden sich je nach Datentyp. Auch sind einige Datentypen untereinander inkompatibel. Ich kann zwar Zwei Strings mithilfe von + (Sring c = (String) a + (String) B) miteinander verbinden und es ist auch möglich Ints mithilfe von + zu addieren aber ich kann nicht folgendes schreiben: Int c = (String) a + (Int) b. Dies würde einen Fehler verursachen.
Zurück zur Übersichtlichkeit:
Es ist viel einfacher die Gewünschte Variable zu finden, wenn die Variablen nach Datentyp sortiert sind.
Auch interessant sind die Namen der Variablen. Man sollte immer gute und selbsterklärende Namen verwenden oder Namen die Sinn ergeben.
Zum Beispiel ist der Name “i” typisch für eine Zählvariable, also weiss man schon dass “i” als Zähler verwendet wird.
Auch sollten die Namen innerhalb des Programms konsistent bleiben. Die Variablen flip, flop und flap sind alle booleans, die entweder true (wahr) oder false (falsch) sein können und werden innerhalb des Programms als eine Art Schalter verwendet. Würde ich eine vierte Variable namens flup erstellen, wäre es leicht zu erraten wofür ich diese Variable Verwenden würde.
Kommen wir zum nächsten Punkt: Je weniger Code desto besser.
Das macht ja Sinn. Verglichen mit anderen Arbeitsplätzen ist es ja auch aufgeräumter und übersichtlicher wenn weniger Dinge auf dem Schreibtisch liegen.
Den Code kann man auf verschiedene Arten kürzen. Eine Variante ist das Verwenden von Schleifen:
Was der Code macht ist nicht weiter wichtig. Ihr müsst nur Wissen dass ich mithilfe einer Schleife durch eine Liste von Pictureboxen(Dort werden Bilder eingefügt) gehe und so jede Picturebox bearbeite. Insgesamt sind es 16 Pictureboxen. Ohne die Schleife müsste ich den Code 16 mal Copy-Pasten. Möchte ich eine kleine Änderung an diesem Code vornehmen müsste ich dies dann 16 mal tun. Durch die Schleife muss ich aber nur einmalig was ändern.
Ein zweiter Weg um Code zu sparen ist das Auslagern von häufig verwendetem Code in sogenannte Methoden. Dazu wieder ein Bild:
Dieses Bild ist in 3 Teile unterteilt. In der Mitte haben wir die Methode Paint. Oben und unten können wir sehen wie diese Methode aufgerufen wird. Der Inhalt der Methode ist 6 Zeilen lang (Ohne die Kommentare und abstände) und sie wird Zwei mal aufgerufen. Würde ich direkt den Inhalt der Methode an beiden Stellen verwenden wären das 2*6 Zeilen = 12 Zeilen Code.
Da ich den Code aber in einer Methode ausgelagert habe und der Aufruf dieser Methode je nur eine Zeile benötigt, ergibt das Total: 6 Zeilen + 2*1 Zeile pro Aufruf = 8 Zeilen. Also benötigen wir in diesem Bespiel 33% weniger Code. Da ich viel Code in verschiedensten Methoden ausgelagert habe ist die Gesamtersparnis schon recht ordentlich.
Und hier auch wieder: Wenn wir den Code der Paintmethode ändern wollen müssen wir ihn nur einmal ändern und nicht Zwei oder Drei mal, jenachdem wie oft wir die Paintmethode verwenden.
Auf dem Bild zum Thema Methoden konnten wir noch etwas anderes erkennen: Kommentare (Grüne Schrift).
Kommentare helfen ungemein bei der Leserlichkeit und Verständlichkeit des Codes. Einerseits kann man so kurz erklären was zB eine Methode oder ein Code Teil macht, aber man kann auch so den Beginn einer Methode kennzeichnen damit man leichter Sieht was wo anfängt und aufhört.
In diesem Bild kann man sehr gut erkennen wie Kommentare die Verständlichkeit und Leserlichkeit des Codes erhöhen.
Wir sehen die 2 Methoden Paint und frm_Paint.
Jetzt bist du, werter Leser, gefragt: Sage mir wie sich diese 2 Methoden unterscheiden? Dank der Kommentare kann selbst Jemand der nicht programmiert diese Frage recht einfach beantworten.
Wenn wir beim Thema Kommentare sind kann ich auch erwähnen dass eine Dokumentation des Projekts auch sehr wichtig ist. Kommentare sind eine Art der Dokumentation innerhalb des Codes. In vielen Fachbereichen ist es Sinnvoll seine Arbeit zu Dokumentieren und zu erklären. Egal ob man, wie ich, ein Memory programmiert, ein neues Auto entwickelt oder ein wissenschaftliches Experiment aufstellt und durchführt. Dokumentieren ist eines der wichtigsten Aufgaben eines Programmierers. Genauso wichtig, evtl. noch wichtiger, wie das Programmieren selbst. Die Dokumentation wird benötigt wenn man zum Beispiel nicht mehr am Programm arbeitet und ein neuer Programmierer sich einarbeiten muss. Eine gut erstelle Dokumentation ist in solchen fällen Gold wert. Und auch die oben erwähnten 3 Punkte warum man übersichtlichen Code benötigt beantworten die Frage wieso man eine gute Dokumentation braucht.
Okay, das war es erstmal von mir. Es gibt noch viel mehr zu erzählen über übersichtlichen Code und wie man zB besser kommentiert und so weiter.
Als Fazit kann man sagen, dass man recht schnell mithilfe der hier erwähnten Tipps den Code schon recht übersichtlich hinbekommt. Die Tipps lassen sich auch auf das Erstellen von normalen Texten übertragen.
Ende 🙂
————————————————-
Hinweis zum Autor: „Mein Name ist Rex-Lii und ich bin Programmierer in Ausbildung. Ich schreibe einen Fan Fiction in Englisch auf Deviant Art: https://spacegandhi.deviantart.com/“
Kommentare (39)