News

Dienstag, 30. November 2010 | News

10 Fehler, die jedem Programmierer unterlaufen

(Link zum Artikel: http://www.it-republik.de/jaxenter/news/057672)
  • Teilen
  • kommentieren
  • empfehlen
  • Bookmark and Share

Entwickler machen Fehler – doch ist es nicht auffällig, dass bestimmte Fehlertypen mit großer Regelmäßigkeit immer wieder auftreten? Julian M. Bucknall hat in seinem Artikel "10 mistakes every programmer makes" seine Top Ten der häufigsten Programmierfehler aufgelistet. Ein kurzes Resümee seiner Findungen:

  • Fehler 1: Entwickler schreiben für den Compiler, nicht für den Menschen

    Ein Fehler ist es, sich nicht die Zeit zu nehmen, menschenlesbaren Code zu schreiben. "Optimierungen" für den Compiler, etwa kurze Variablennamen i,j,k statt sprechende Namen oder verkürzte mathematische Ausdrücke ohne Klammern, bringen in den seltensten Fällen Performanz-Gewinne. Viel häufiger der Fall ist es, dass ein nachfolgender Entwickler den Code dadurch nicht mehr versteht.

  • Fehler 2: Entwickler schreiben zu lange Routinen

    Lange Methoden sind schwer zu verstehen, schwer zu pflegen, schwer zu testen. Kurze, übersichtliche Einheiten, die man auf den ersten Blick erfasst, sind produktiver.

  • Fehler 3: Entwickler "optimieren" ihren Code zu früh

    Entwickler tendieren dazu, nach dem Schreiben einer funktionierenden Methode nach Möglichkeiten der Optimierungen des Codes zu suchen. Der "bessere" Code ist dann oft kürzer und schwerer zu lesen – relevante Performance-Gewinne bringt er in den seltensten Fällen. Besser: Klaren und menschenlesbaren Code produzieren und zu einem späteren Zeitpunkt analysieren, wo die wirklichen Performance-Flaschenhälse liegen, und dann gezielt optimieren.

  • Fehler 4: Entwickler nutzen zu viele globale Variablen

    Zu oft werden globale Variablen eingesetzt. Man verliert dabei leicht die Kontrolle darüber, ob der Wert der Variablen nicht durch einen Methoden-Aufruf versehentlich verändert wird. Ähnliches tritt bei Singletons auf – der globalen Variable in neuem Gewand. Besonders problematisch ist das Testen von Singletons.

  • Fehler 5: Entwickler nehmen keine Aufwands- und Technologie-Einschätzungen vor

    Wer keine Aufwandsschätzungen vornimmt und einfach drauflos programmiert, sieht sich nur allzu schnell mit Performance- und Skalierungs-Problemen konfrontiert. Oder: Das Programm läuft super schnell auf dem eigenen 3GHz PC – auf allen anderen Computern quält es sich lahm von einem Kilck zum nächsten.

  • Fehler 6: Entwickler liegen in Schleifen immer eins daneben

    Einer der häufigsten Fehler: Eine Schleife wird einmal zu viel oder einmal zu wenig durchlaufen. Beginnt ein Objekt nun bei 0 oder bei 1? Wieviele Elemente hat die Liste nochmal?

  • Fehler 7: Entwickler ignorieren ihre Exceptions

    Oft werden zu allgemeine Exception-Typen abgefangen, auf die dann eine allgemein gültige Aktion ausgeführt wird. Am schlimmsten ist das Abfangen aller auftretenden Fehler, da es verhindert, dass wichtige nicht von unwichtigen Exceptions unterschieden werden können. Exception-Catching sollte so spezifisch wie möglich sein, damit angemessen auf Fehler reagiert werden kann.

  • Fehler 8: Entwickler speichern sensible Daten in Textdokumenten

    Allzu oft werden sensible Passwörter oder Log-ins irgendwo in einem Text-Dokument oder einem Quellcode-Kommentar gespeichert. Auch sollte man von Webseiten Abstand nehmen, die vergessene Log-in-Daten per E-Mail zurücksenden.

  • Fehler 9: Entwickler validieren den User-Input nicht

    Wer den Text-Input von Anwendern nicht überprüft, wird sich schnell mit Hacker-Angriffen konfrontiert sehen.

  • Fehler 10: Entwickler halten sich nicht auf dem Laufenden

    Die oben genannten Fehler sind seit Jahren bekannt – deshalb besteht der größte Fehler darin, sich nicht auf dem Laufenden zu halten. Wer sich nicht über die neuesten Programmier-Techniken und Technologien informiert, kommt nicht weiter und macht immer dieselben Fehler.

Irren ist menschlich - und deshalb endet Bucknalls Liste mit der klugen Aufforderung:

Make sure you stay up to date with the art and practice of programming. Julian M Bucknall

(hs)

Anzeige

Kommentare

Gravatar raksch 30.11.2010
um 13:42 Uhr
Fehler 10: Entwickler halten sich nicht auf dem Laufenden

eigentlich ein Unding, kommt aber leider viel zu oft vor...
#zitieren
Gravatar Florian 30.11.2010
um 13:47 Uhr
Nur weil in irgendeinem Blogeintrag im Internet eine Liste mit 10 Dingen, die man tun oder lassen sollte auftaucht, heißt das noch nicht, dass das ganze auch interessant ist. Die obige Liste ist trivial, die Aussagekraft äußerst begrenzt. Bitte, JAXenter-Team, ich lese diesen Blog um das Hintergrundrauschen vom Signal zu trennen. #zitieren
Gravatar ich 30.11.2010
um 14:20 Uhr
Naja, 1-9 sind sicherlich wahr, werden aber durch Punkt 10 niemals gelöst !

Ich kenne zu viele Entwickler die versuchen Punkt 1-9 durch Frameworks und aktuelle Technologien zu lösen, wobei diese Punkte zeitlos sind und sich eher durch Disziplin lösen lassen.
#zitieren
Gravatar volkix 30.11.2010
um 14:36 Uhr
wie sollen z.B. Cobol-Entwickler Fehler Nummer 4 vermeiden, Schlechter Rundumschlag, den man vielleicht auf eine oder mehrere Programmiersprachen beschränken sollte, nämlich auf die, wo die Punkte überhaupt theoretisch vorkommen könnten! Exceptionhandling ist auch nicht überall vorhanden. Der Bericht hat allenfalls BILD-Qualität. #zitieren
Gravatar Holger 30.11.2010
um 15:20 Uhr
Ein Punkt fehlt noch: Wer denkt, irgend ein Plug-in/Framework/Library löst wie von Wunderhand sein problem, der ist auf dem Holzweg.

Wer sein Programmierhandwerk nicht von Grund auf beherrscht, kommt mit den besten Frameworks auch nicht viel weiter.
#zitieren
Gravatar sancho 30.11.2010
um 16:06 Uhr
Meiner Meinung nach ist Punkt 10 als Ursache des Übels völliger Blödsinn. Logischerweise hilft es, sich für seinen Job zu interessieren. Pausenlos Bücher über JSF, Wicket und Co in der Badewanne zu lesen, löst jedoch in keinem Fall die Probleme 1-9.

Vielmehr lenken viele der neuen Technologien den Focus unbewusst immer mehr auf das "WOMIT entwickle ich" und weg von dem "WAS entwickle ich". Hauptsache das hippe Web Framework ist dabei. Die Fachlichkeit hacke ich mal nebenbei schnell rein.
#zitieren
Gravatar anonym 30.11.2010
um 23:00 Uhr
> etwa kurze Variablennamen i,j,k statt sprechende Namen

Schlechtes Beispiel für diesen Punkt. Nichts ist für einen durchschnittlichen Programmierer klarer als eine Laufvariable i. Wenn sie anders heissen würde wäre das eher ein Problem.
#zitieren
Gravatar annonüm 01.12.2010
um 08:29 Uhr
Fehler 11 = Beschäftigung mit dummen Artikeln von selbsternannten Experten #zitieren
Gravatar Hans-Peter 01.12.2010
um 09:23 Uhr
vielleicht sollte man dem Verfasser einfach mal "Clean Code" von Robert C. Martin empfehlen...
Ist meine "Bibel" der letzten Jahre...
#zitieren

Folgende Links könnten Sie auch interessieren

zurück zum Seitenanfang