Was ist das größte Problem für Programmierer? Gib mir einen Namen!

Hartmut Schlosser

(c) Shutterstock/Lorelyn Medina

Was ist die schwierigste Aufgabe eines Programmierers? Wer die Antwort auf diese Frage in komplizierten Algorithmen oder verzwickten Software-Architekturen sucht, der gehört zu einer Minderheit. In einer Umfrage auf Quora haben sich nämlich 49% der Teilnehmer für die Option „Das Benennen von Dingen“ als ihre schwierigste Aufgabe entschieden.

Überraschend deutlich liegt „Naming Things“ vor „Erklären, was ich tue“ (16%), „Aufwandsschätzungen“ (10%), „Mit anderen Leuten umgehen“ (8%) und „Mit dem Code eines anderen arbeiten“ (8%). Unter ferner liefen rangiert  noch „Implementieren von Funktionalität, die ich nicht unterstütze“ (3%), „Entwerfen einer Lösung“ (2%), „Schreiben von Tests“ (2%) und „Schreiben von Dokumentationen“ (2%).

4.500 Personen haben sich an dem Voting beteiligt, und obwohl es sich hier natürlich nicht um eine wissenschaftlich belastbare Statistik handelt, dürfte das Ergebnis einen interessanten Punkt aufgeworfen haben: Das Benennen von Code-Artefakten wie Klassen, Variablen, Methoden ist nicht trivial, denn die Namensgebung hat Auswirkungen auf die Lesbarkeit und damit auf die Wartbarkeit des Quellcodes.

Phil Johnson von IT World greift diese Umfrage auf und unterfüttert sie mit einigen Zitaten bekannter Entwickler, beispielsweise Jeff Atwood:

Creating good names is hard, but it should be hard, because a great name captures essential meaning in just one or two words

Kommentatoren vergleichen das Namengeben mit einer Art Kunst oder weisen darauf hin, dass Probleme bei der Namensgebung möglicherweise auf Probleme im Design hinweisen.

 I have to agree that naming is an art. Otávio Décio

Often times, however, the inability to come up with a name may be a hint to something wrong with your design. Does your method have too many responsibilities? Does your class encapsulate a coherent idea?Brad Barker

One lesson I have learned, is that if you can’t find a name for a class, there is almost always something wrong with that class: you don’t need it, it does too much Toon Krijthe

Nun macht es die Sache mit den Namen aber nicht gerade einfacher, dass sich hier quasi zwei Schulen gegenüberstehen. Da ist zum einen die Auffassung, dass Namen für Variablen, Funktionen, etc. wie kleine Kommentare wirken sollten. „Nutzt sprechende Namen“, rät beispielsweise Kapitel 5.4 der GNU Coding Standards:

The names of global variables and functions in a program serve as comments of a sort. So don’t choose terse names—instead, look for names that give useful information about the meaning of the variable or function.

Kritiker weisen aber darauf hin, dass zu eindeutige Namen die Nutzung des Artefaktes einschränken können. Sie raten dazu, diese zu einem gewissen Grad generisch zu halten, damit sie in verschiedenen Situationen noch Sinn machen. Mit Namen baut man schließlich ein Kategorien-System auf, in das sich die verschiedene Einzelfälle einordnen lassen müssen.

But naming is really another way of describing the process of categorizing, reducing and ultimately building a model for what you are describing. Of course it’s the most difficult task! Marco Falcioni

Wie halten Sie es mit der Benennung? Verwenden Sie auch so viel Zeit darauf, den Dingen Namen zu geben? In welchen Situationen neigen Sie zu sprechenden Namen, wo verwenden Sie generische? Oder wird dem Problem eine zu große Aufmerksamkeit geschenkt und die Standards für das Namengeben sind längst gesetzt?

Aufmacherbild: Illustration of a Man Being Baptized in Water von Shutterstock / Urheberrecht: Lorelyn Medina  

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Content-Stratege, IT-Redakteur, Storyteller – als Online-Teamlead bei S&S Media ist Hartmut Schlosser immer auf der Suche nach der Geschichte hinter der News. #java #eclipse #devops #machinelearning #seo. Zum Lächeln bringen ihn kreative Aktionen, die den Leser bewegen. @hschlosser
Kommentare

Hinterlasse einen Kommentar

2 Kommentare auf "Was ist das größte Problem für Programmierer? Gib mir einen Namen!"

avatar
4000
  Subscribe  
Benachrichtige mich zu:
Marcel
Gast

Gute Bezeichner machen In-Code-Kommentare überflüssig. Code wird 1x geschrieben, aber 100x gelesen!

Dennoch ist das m.M. nach kein Riesenproblem. Ein weiterer Artikel mit den restlichen Punkten würde mich interessieren, wo das Namensproblem rausgerechnet wurde.

trackback

[…] Phil Johnson hat die Ergebnisse der Umfrage in einem schönen Diagramm dargestellt: Don’t go into programming if you don’t have a good thesaurus. Und Hartmut Schlosser hat die Ergebnisse noch einmal auf deutsch zusammengefasst: Was ist das größte Problem für Programmierer? Gib mir einen Namen! […]