Von Schlangen und Kamelen beim Programmieren

Verschiedene Programmiersprachen, verschiedene Konventionen für die Namen von Klassen, Methoden, Variablen. 

Da gibt es uppercase, camelcase, snakecase und dashes. Und natürlich noch dashes/underscore in uppercase, upper-camelcase und so weiter.

Hier ein paar Beispiele:

  • Uppercase: TOSTRING, USERNAME
  • Uppercase mit Bindestrich: TO-STRING, USER-NAME
  • Uppercase mit Unterstrich: TO_STRING, USER_NAME
  • Camelcase: toString, userName
  • Upper Camelcase: ToString, UserName
  • Underscore/Snakecase: to_string, user_name
  • Lowercase mit Bindestrich: to-string, user-name

Das befolgen von Konventionen ist wichtig um die Lesbarkeit des Codes zu erhöhen. Somit kann man sich besser in Code einarbeiten und Fehler vermeiden. Besonders bei Sprachen welche nicht kompiliert sind (ein Compiler merkt, ob man einmal getUserName und ein anderes mal GetUserName schreibt). Auch bei Webapplikationen, wo auf dem Server HTML gerendert wird und dann im Browser mit Javascript manipuliert wird, passieren immer mal wieder Fehler. 

Ein Beispiel:

HTML:

<div class=”node-1234”>Ein Element</div>

Javascript:

$(“.node_1234”).hide()

Dies sieht auf den ersten Blick korrekt aus, aber später wird man feststellen, dass der Javascript Code nicht das macht was man erwartet.

Ich versuchen in meinen Projekten die folgenden Konventionen einzuhalten:

Ruby:

Klassen: Upper Camelcase (UserGroup)
Methoden:  Snakecase (user_group)
Konstanten: Uppercase mit Unterstrich (USER_GROUP)

HTML/CSS:

id: Lowercase mit Bindestrich (#user-group)
class:Lowercase mit Bindestrich (.user-group)

Javascript:

Klassen: Upper Camelcase (UserGroup)
Methoden: Camelcase (userGroup)

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s