27. October 2006, 18:37, by Silvan Mühlemann

Sauberer Code dank Hungarian Notation.

Ungarisches Parlament“Das macht ja nur dä Code unläserlich und git meh z’tippe”, erwiderte ich Entwickler Al, als er vor zwei Jahren zum ersten mal den Vorschlag brachte, in Variablen gemäss Hungarian Notation zu benennen. Weil Microsoft dies anwendet, ist dies noch lange keinen Grund, dies auch bei tilllate einzuführen.

Mit der Hungarian Notation werden Variablen gemäss Typ und Verwendung zu benennen. Also bennennt man einen Zähler in einer for-Schleife anstatt mit $row mit $cudRow. cud steht dann für “counter unsigned double Row”.

Strikt nach Ungarischer Notation hätten die Variablen also kryptische Namen wie $rgch, $uuluwch oder $rggr. Das ist was für Fundis und Freaks.

Wir denken ökonomisch und haben verwenden unsere eigene Version der Hungarian Notation. Der erste Buchstaben des Variablennamens beschreibt den Datentyp. Dann folgt ein Space und schliesslich kommt ein Bezeichner in CamelCase. $a_memberNames (Array), $r_photoFile (Resource), $o_supergirl (Object)… und so weiter für alle PHP-Variablentypen.

Dies hat folgende Vorteile:

  • Zweck der Variable ist schneller ersichtlich – erhöhte Verständlichkeit des Codes
  • Man ist gezwungen, sich zu überlegen, für was man die Variable verwenden will
  • Man widersteht der Verlockung von verwirrenden Typkonvertierungen
  • Mit Autocompletion im IDE findet man die Variable schneller: Wenn einem der Namen entfallen ist, dann wird man sich noch eher an den Typ erinnern. Dann weiss man, wo im Autocompletion-Dropdown suchen.

“Al, wir sind überzeugt. Du bisch eifach zwei Jahr z’früeh gsi mit Dim Vorschlag!”

Filed under: Programming

3 Comments

  1. Microsoft hat viele weniger nützliche Dinge gekauft und erfunden. Die ungarische Notation ist aber meiner Meinung nach eine der dümsten Erfindungen die Redmond je verlassen hat. Die Notation gibt eine Redundanz, denn die Daten über Typen sind meist schon im Code vorhanden (bei php natürlich nicht ganz so offensichtlich). Ausserdem kann die Information sehr gut falsch sein und das gibt dann mehr Probleme. Ich bin absolut dagegen irgendwelche Codeinfos im Namen zu codieren. Was aber nicht heissen will das es in gewissen Situationen durchaus Sinn machen kann die ungarische Notation sorgfälltig einzusetzen.

    Comment by leo — 7. November 2006 @ 01:00

  2. Einverstanden: Bei stark typisierten Sprachen wie Java, C++ und co. macht die Ungarische Notation natürlich keinen Sinn. Ebensowenig, wenn man als Einzelperson an einem Projekt arbeitet. Ausserdem ist der Typ “Apps Hungarian” ein massiver Overkill.

    Unsere “Light”-Variante funktioniert für uns perfekt.

    Comment by Silvan Mühlemann — 7. November 2006 @ 20:13

  3. Ich muss euch beiden recht geben.
    Microsoft schafft sehr viele sinnlose Dinge.
    Die Ungarische Notation ist der vollkommene blödsinn.
    Dies musste ich unter Anderem feststellen als ich mich an DirectX unter C++ heranwagte, bei welchem man sich komplizierteste struct-identifier merken musste um überhaupt etwas hinzubekommen.

    Diese “Light”-Variante funktioniert wunderbar. Ich habe sie zwar für mich ein wenig angepasst, aber die Idee ist perfekt.

    Ausserdem sollte man meiner Meinung nach nicht immer versuchen alles zu Normen, vor allem nicht wenn man dabei auf die Macht seines Monopols hofft, welches, zumindest wird es denke ich gehofft, hilft sinnlose Normen durchzusetzen.

    *wink mit dem Zaunpfahl an Microsoft*

    Liebe Grüße

    Comment by Marc — 27. August 2008 @ 23:14

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

© 2017 tilllate Schweiz AG - Powered by WordPress