Ungarische Notation Ja Oder Nein
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Von ReligionsKriege. Siehe UngarischeNotation
Vorteile der UN:
- die UN erzeugt standardisierte Namen, die auch geeignet sind, über Projektgrenzen hinweg verwendet zu werden.
- die UN kann kompaktere Namen erzeugen, ohne unklar zu werden. Z.B. cCustomer statt CustomerCount oder pFirstRecord statt FirstRecordPtr.
- ...
Nachteile der UN:
- Einige weit verbreite Varianten der UN beruhen nicht auf abstrakten Datentypen, sondern auf den Basisdatentypen der jeweiligen Programmiersprache (z.B. Ganzzahlen 'integer', Gleitkommazahlen 'double' oder 'strings'). So entstehen Konventionen, die eher kontraproduktiv sind.
- die UN kombiniert die semantische Bedeutung einer Variable mit ihrer Repräsentation. Wenn man jedoch aus technischen Gründen den Typ einer Variable ändert (z.B. von 'integer' in 'long integer'), dann sollte es nicht notwendig sein, den Namen der Variable zu ändern.
- vermeidet man redundante Informationen in Variablennamen, so kann das schnell zu Namen führen, die sich nur noch im Prefix unterscheiden (customerCount, isCustomer -> cCustomer, bCustomer)
- kompakte Variablennamen mögen leichter zu schreiben sein, erhöhen jedoch selten die Lesbarkeit von Code. Code wird im Allgemeinen jedoch deutlich häufiger gelesen als geschrieben.
- macht nur den Namen länger, wenn man Typen und nicht funktionalitäten hinein codiert
- absolut redundant, zumindest wenn man es auf Typen anwendet, weil der Typ unabhängig davon gegeben ist
- jeder handhabt ungarische Notation anders, das führt in der Anwendung zu mehr Verwirrung als Klärung
- es ist gegen das objektorientierte Prinzip
- kann niemals konsistent durchgehalten werden, zum einen man ja in der Regel Code anderer Herkunft, z.B. aus Bibliotheken, verwenden muss, der sich nicht an das eigene Schema hält, zum anderen weil im Verlauf eines längeren Projekts die bevorzugte Namenskonvention nur zu oft ergänzt oder geändert wird
- mach das mal mit Templates!
- die C++ Standardlibrary macht das auch nicht
- es ist genauso sinnlos, als wollte man die Worttypen in die Schriftsprache hineinkodieren, was man aus gutem Grund auch nicht tut: pIch vMag aUngarische nNotation avNicht
- ...
Diskussion:
Ich habe lange Zeit die UN verwendet (in C++), allerdings inzwischen wieder weitgehend abgewöhnt. Seit einiger Zeit verwende ich nur mehr die Prefixes
- n für "Number of..."
- p für "Pointer auf..."
und es geht mir nicht wirklich etwas ab.
Anzumerken ist hier: In C++ sollte man ohnehin Pointer vermeiden, wo es nur geht. Man verwendet Refrenzen und automatische Variabeln. Braucht man wirklich einen Pointer, weil es nicht anders geht, verwendet man std::auto_ptr, boost::shared_ptr, oder einen anderen geeigneten geeigneten intelligenten Zeiger, der sich selbst um die Speicherverwaltung kümmert. In C++ haben Pointer heutzutage (fast) nichts mehr zu suchen. Von daher zeugt es eigentlich nur von einem schlechten Programmierstil, wenn man für Pointer noch einen extra Präfix verwenden muss...
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 29. April 2005 14:41 (diff))