9 Tipps für besseres Programmieren

Hartmut Schlosser

Aus seiner 30jährigen Tätigkeit als Programmierer zieht John Graham-Cumming in seinem Blog „Some things I’ve learnt about programming“ eine Bilanz und stellt 9 Erfahrungswerte vor, die seiner Meinung nach das Entwickeln von Software verbessern.

  1. Programmieren ist ein Handwerk – keine Wissenschaft, keine Ingenieurskunst

    Programmieren ist eine Mischung aus Können und Erfahrung, ausgedrückt durch Tools. Wie der Handwerker wählt ein Entwickler spezifische Tools und lernt sie einzusetzen. In diesem Sinn sind Programmierer näher an Uhrenmacher dran als an Brückenbauer oder Physiker.

  2. Intellektuelle Ehrlichkeit ist der beste Weg

    Intellektuelle Ehrlichkeit bedeutet, nicht einfach ein API aufzurufen, das man eigentlich nicht versteht, nur damit ein Bug „auf magische Art und Weise“ verschwindet. Es liegt in der Verantwortung des Programmierers stets zu wissen, was in seinem Code passiert.

  3. Vereinfache, vereinfache, vereinfache

    Wie Tony Hoare sagte: „Es gibt zwei Wege, Software zu schreiben: Entweder man macht Software so einfach, dass sie offensichtlicherweise keine Fehler hat; oder man macht sie so kompliziert, dass sie keine offensichtlichen Fehler hat. Die erste Methode ist die weitaus schwierigere.“

    Oder anders ausgedrückt:

    Innerhalb eines jeden komplexen Programmes gibt es ein kleines, elegantes Programm, das dasselbe auf korrekte Art und Weise tut.

  4. Debugger sind lediglich Krücken, Profiler nicht

    Debugger verleiten dazu, faul zu sein und nicht von vorneherein zu bedenken, was passieren wird. Profiler hingegen sind unabdingbar, um die Performance einer Anwendung zu verstehen.

  5. Code-Doppelungen werden irgendwann auf dich zurückkommen

    Wiederhole dich nicht selbst und tue alles nur einmal in deinem Code. Spätestens wenn du an einer Stelle einen Bug zu beheben hast, ihn an der anderen Stelle aber vergisst, hast du ein Problem.

  6. Sei Sprachen gegenüber untreu

    Es ist ein Fehler, sich zu sehr auf eine Sprache zu konzentrieren, denn es gibt nicht die eine Sprache, die alles erledigt. Vielmehr kommt es darauf an zu wissen, mit welcher Sprache aus deiner Werkzeugkiste du ein bestimmtes Problem lösen kannst. Und je mehr Tools du in deiner Kiste hast, desto besser kannst du wählen. Sprachkriege sind Blödsinn.

  7. Es ist einfacher, Software zu erweitern, als sie am Stück zu bauen

    Wer den großen Architekturentwurf auf einmal umsetzen will, läuft Gefahr, (a) das Projekt aufgrund der Komplexität in den Sand zu setzen, (b) ein starres Gerüst zu bauen, aus dem man später nur schwer entkommen kann. Kleinere Komponenten lassen sich hingegen schnell umschreiben, austauschen, neu implementieren. Wer kennt denn die Anforderungen von Morgen?

  8. Lerne die Programmebenen verstehen

    Es ist wichtig zu verstehen, was genau auf jeder Stufe des Programmablaufs passiert – begonnen bei der CPU bis hin zu der Higher-Level Sprache, die man zum Programmieren nutzt. Verstehe in C den Code, in den C kompiliert wird, verstehe in Java, was die JVM genau tut. Das hilft enorm bei Performance-Problemen und beim Debuggen.

  9. Man hat nie ausgelernt

    Es gibt immer neue Sprachen zu entdecken – und es gibt Sprachen, die man nur oberflächlich kennt.

Die zehnte Weisheit hält John übrigens noch zurück – dabei würde es um Unit Tests gehen. Er hat in seiner Karriere Code mit und ohne ausgiebigem Unit Testen geschrieben, und neigt der Ansicht zu, dass Unit Tests einen Unterschied ausmachen könnten. Um die Frage aber endgültig beantworten zu können, ob Unit Tests Software verbessern, bittet sich John weitere 30 Jahre Programmiertätigkeit aus…

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.