Aus dem Kurs: JavaScript Grundkurs 1: Grundlagen und Syntax

Konzepte für guten Code

JavaScript ist eine Programmiersprache, die sehr einfach ist und dem Programmierer sehr, sehr viele Freiheiten gestattet. Ich vergleiche JavaScript ganz gerne mit einem Skalpell. Man kann feine Dinge damit machen, wenn man sich damit auskennt. Ein geübter Chirurg kann sehr, sehr nützliche Dinge mit einem Skalpell machen, aber falsch angewendet ist ein Skalpell natürlich auch sehr gefährlich. In diesem Video möchte ich Ihnen einige Strategien zeigen, wie Sie mit JavaScript oder allgemein auch mit Programmiersprachen besseren Code schreiben. Und als Ausgangspunkt für meine Überlegung soll das KISS-Prinzip genannt werden. Das KISS-Prinzip steht für Keep it simple, stupid beziehungsweise davon gibt es auch einige Abwandlungen, wofür das steht, aber im Grunde sagt es immer das Gleiche. Man soll versuchen, wenn es mehrere Möglichkeiten für die Lösung eines Sachverhaltes gibt, diejenige Lösung zu nehmen, die am einfachsten ist. Und dieses KISS-Prinzip kann man in der Programmierung sehr, sehr gut durchführen, indem man Dinge immer wieder gleich macht. Ich sage ganz gern zu den Teilnehmern in meiner Schulung, dass professionelle Programmierung langweilig ist. Und langweilig heißt positiv besetzt, langweilig erwartbaren Code. Dinge, die man an der einen Stelle so gemacht hat, macht man an der anderen genauso. Im Grunde ist das ein Teil dessen, was hier im KISS-Prinzip steht. Aber es gibt nicht nur dieses KISS-Prinzip, es gibt beispielsweise auch das Do not repeat yourself oder Try-Prinzip. Und das sagt, dass man möglichst sich nicht wiederholen soll. Dinge, die man mehrfach braucht, soll man nur einmal hinschreiben und dann immer wieder verwenden. Es gibt z.B., wenn man mal sogenannte Funktionen betrachtet, die Aussage, dass man bereits, wenn man zweimal den gleichen Code braucht, es Sinn macht, eine Funktion zu schreiben und beim zweiten Mal die Funktion aufzurufen, natürlich das erst einmal auch, aber bereits da nutzt es, vorher eine Funktion geschrieben zu haben. Das kann man übertragen auf Klassen, Objekte, Methoden etc. Auch auf Schleifen lässt sich das übertragen. Also man sollte sich möglichst wenig selbst wiederholen. Und auch diese anderen Programmierparadigmen wie beispielsweise dieses MAYA-Prinzip, sagt, dass man nur etablierte Techniken benutzt und nur so neu und komplex wird, wie es maximal noch akzeptabel ist. Man bleibt also möglichst bei gewohnten etablierten Dingen und führt neue Dinge nur dann ein, wenn es unabdingbar ist. Und ein weiteres Prinzip Konvention vor Konfiguration sagt, dass man möglichst viel Konventionen einhält, und das ist wahrscheinlich sogar bei JavaScript die wichtigste Aussage. JavaScript hat durch seine sehr, sehr großen Freiheiten die Gefahr, dass man sich verliert in Quellcodes. Konventionen helfen unendlich, da die Übersicht zu behalten und die Richtung beizubehalten. Das geht beispielsweise los, dass man Groß- und Kleinschreibung zu 100 % konsequent durchzieht, dass man die Bezeichner nach einem bestimmten Schema wählt, dass man Regeln einhält, wo man deklariert, wo man aufruft etc.. Allgemein muss man eben sehen, dass diese großen Freiheiten und Flexibilitäten von JavaScript zum Risiko und zur Gefahr werden können, wenn man sie missbraucht. Stellen Sie sich vor, Sie sind auf einer Autobahn ohne Geschwindigkeitsbeschränkung. Und wenn Glatteis ist und Sie fahren immer noch mit 250, dann haben Sie die Konsequenzen zu tragen. Konventionen erlauben es zusammen mit dem KISS-Prinzip erwartbaren Code zu schreiben. Erwartbar für jemanden Fremden, aber auch für einen selbst, wenn man nach Monaten nochmal seinen eigenen Code hineinschaut. In diesem Training werde ich versuchen, konsequent diese Paradigmen durchzusetzen, wobei die natürlich nicht standardisiert sind und was ich zum Beispiel für erwartbaren Code halte, mag ein anderer Programmierer für nicht erwartbar halten, und deswegen ist das eine sehr schwammige Angelegenheit, nichtsdestotrotz sehr wichtig, gerade bei Sprachen wie JavaScript, aber auch PHP oder auch Python.

Inhalt