Wissenschaftliche Untersuchungen zur Codequalität

Das die Art und Weise in der wir Code schreiben direkt dessen Verständnis beeinflusst, kann sich jeder vorstellen der schon einmal Code lesen musste in dem keine sprechenden Variablennamen verwendet wurden. Diese Zusammenhänge sind mittlerweile auch Teil von wissenschaftlichen Untersuchungen. Zwei Paper die sich damit beschäftigen möchte ich an dieser Stelle verlinken.

Shorter Identifier Names Take Longer To Comprehend

Dieses Paper beschäftigt sich damit in wie weit variablen Namen generell die Lesbarkeit verbessern. Dazu wurde die Geschwindigkeit gemessen in der Quellcode von unterschiedlichen Personen verstanden wurde. Wobei der gleiche Code unterschiedlichen Personen einmal mit Variablen vorgelegt wurde die nur einen Buchstaben, wenige Buchstaben oder ganze Wörter umfasst. Wenig verwunderlich, führen ganze Wörter zu einem schnelleren Verständnis, wobei Einzelbuchstaben am schwersten zu verstehen sind. Abkürzungen sind nur solange hilfreich wie sie auch bekannt sind. So hilft ctx als Abkürzung nur man weiß, dass es sich um einen Context handelt oder idx nur wenn einem bekannt ist, dass es sich um einen Index handelt. pR für PersonRepository hingegen ist eine sehr schlechte Namensgebung und liegt auf dem gleichen Verständnislevel wie p oder r als Variablenname.

 

Meaningful Identifier Names: The Case of Single-Letter Variable

In dieser Studie werden die Variablennamen als Einzelbuchstaben näher betrachtet. Hier gilt im Grunde das Gleiche wie im voran gegangenen Paper. Insofern der Kontext einer Variable gesichert ist, ist sie auch mit nur einem Buchstaben verständlich. Bestes Beispiel dafür ist i oder j für Laufvariablen in Schleifen.

 

Aus meiner Sicht ist damit das wissenschaftlich untermauert, was im Clean Code gepredigt wird. Man sollte nach Möglichkeit sprechende Wörter für Variablennamen nutzen. Einzige allgemeingültige Konventionen dürfen hiervon abweichen.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

1 + fünfzehn =

Bitte folgende Aufgabe lösen um fortzufahren

Wieviel ist 3 + 2 ?
Please leave these two fields as-is: