Ungarische Notation und Sichtbarkeits-Präfix-Verständnisproblem



  • Hi

    Der Wikipedia-Artikel zur ungarischen Notation sagt beim Abschnitt des Sichtbarkeits-Präfixes, dass Methodenparameter und Interface-Parameter getrennt werden. Wie soll ich das klug trennen?



  • EOutOfResources schrieb:

    Wie soll ich das klug trennen?

    Es wäre klug, gar keine ungarische Notation zu verwenden. 😉



  • Gregor schrieb:

    Es wäre klug, gar keine ungarische Notation zu verwenden. 😉

    +1



  • dot schrieb:

    Gregor schrieb:

    Es wäre klug, gar keine ungarische Notation zu verwenden. 😉

    +1

    Da tut ihr jetzt dem Veranlasser der ungarischen Notation unrecht. War soweit ich weiss ein Mitarbeiter bei Microsoft. Die Dinge von Microsoft - wie die WinApi - wimmeln gerade von der ungarischen Notation und macht damit viele Dinge in den Beschreibungen sehr verständlich.

    Jedem sei es überlassen, darauf zu verzichten. Statt HINSTANCE hInstance kann jeder getrost HINSTANCE Emil oder was einsetzen. Das Programm wird schon laufen. Aber wehe demjenigen, der später das Programm pflegen soll. Will sagen, die ungarische Notation ist kein MUSS, bleibt aber oft guter STIL. daddeldu! :p


  • Mod

    Die Winapi ist auch in C geschrieben. In einer Sprache mit Membern und Interfaces hat sie nichts zu suchen. Und auch in C würde ich sie nicht unbedingt im Microsoftstil (d.h. als Typenmarkierung) benutzen sofern man nicht wild zwischen Typen hin- und hercastet.
    Den ursprünglichen Zweck, zu markieren was mit dem Inhalt einer Variable gemeint ist, kann man heutzutage viel besser mittels sprechender Namen gerecht werden. Wir müssen nicht mehr um jedes einzelne Zeichen im Quellcode knausern.



  • > Da tut ihr jetzt dem Veranlasser der ungarischen Notation unrecht.

    Früher war das 'ne super Idee. Im Zeitalter von VS2010 und "Search for Declaration" mMn nicht mehr nötig.



  • berniebutt schrieb:

    Da tut ihr jetzt dem Veranlasser der ungarischen Notation unrecht. War soweit ich weiss ein Mitarbeiter bei Microsoft. Die Dinge von Microsoft - wie die WinApi - wimmeln gerade von der ungarischen Notation und macht damit viele Dinge in den Beschreibungen sehr verständlich.

    Halbwissen ftw 🙂

    Hier der unvermeidliche Verweis auf die Diskrepanz zwischen "Apps Hungarian" und "Systems Hungarian", die auch im Grad ihrer Sinnhaftigkeit etwas differieren:
    http://de.wikipedia.org/wiki/Ungarische_Notation



  • Na gut, vielleicht ist alles dieses bereits Gechichte und wird nicht mehr unbedingt gebraucht. Halbwissen hin Halbwissen her, das war einmal sehr nützlich und hatte einmal etwas Ordnung in Sachen Programmierstil gebracht.

    Eine gewisse Ordnung im Programmierstil - auch bei der Namensvergabe - halte ich immer noch für mehr als sinnvoll! 🕶



  • berniebutt schrieb:

    Statt HINSTANCE hInstance kann jeder getrost HINSTANCE Emil oder was einsetzen.

    Instance instance; ist leserlicher und man muss sich nicht immer über den Typ Gedanken machen. War es jetzt hInstance oder phInstance oder lphInstance oder lpstrInstance oder nInstance????



  • Eine gewisse Ordnung im Programmierstil - auch bei der Namensvergabe - halte ich immer noch für mehr als sinnvoll! 🕶

    Ich habe irgendwie ein Déjà-vu...
    Wie oft gab es diese Diskussion schon und wie oft kam von dir immer nur dieses eine, häufig wiederlegte Argument?

    Ordnung bei der Namensvergabe kommt nicht von irgendwelchen Prä- oder Suffixen, sondern von sinnvollen, sprechenden Namen. Nexus hat glaube ich irgendwo einen Post geschrieben, der all die Nachteile der UN aufzeigt. Bitte einmal durchlesen (auch wenn es wahrscheinlich wirkungslos an dir abperlt).


  • Mod

    Dejavu schrieb:

    Wie oft gab es diese Diskussion schon ?

    136 Mal laut Forensuche 😃

    Ordnung bei der Namensvergabe kommt nicht von irgendwelchen Prä- oder Suffixen, sondern von sinnvollen, sprechenden Namen. Nexus hat glaube ich irgendwo einen Post geschrieben, der all die Nachteile der UN aufzeigt. Bitte einmal durchlesen (auch wenn es wahrscheinlich wirkungslos an dir abperlt).

    Hier:
    http://www.c-plusplus.net/forum/p1773551#1773551



  • SeppJ schrieb:

    Dejavu schrieb:

    Wie oft gab es diese Diskussion schon ?

    136 Mal laut Forensuche 😃

    Ordnung bei der Namensvergabe kommt nicht von irgendwelchen Prä- oder Suffixen, sondern von sinnvollen, sprechenden Namen. Nexus hat glaube ich irgendwo einen Post geschrieben .....

    Ja und? Nicht nur aus alter Gewohnheit (1996 oder früher) benutze ich UN weiterhin gerne, wenn auch nicht ausschliesslich. Gegen sprechende Namen ist überhaupt nichts einzuwenden, sofern es eigene Dinge sind.

    Denkt mal bitte zurück an die alten Zeiten von FORTRAN und Co., dort musste man sich bei den Namen von Bezeichnern auf 8 Stellen begnügen! Ging auch, las sich allerdings etwas kryptisch. Lasst dem Simonyi oder wer das mit UN war seinen verdienten Platz! Diese Diskussion hier scheint mir überflüssig! 😃



  • Nicht nur aus alter Gewohnheit (1996 oder früher) benutze ich UN weiterhin gerne, wenn auch nicht ausschliesslich.

    Irgendwie hätte ich am Ende dieses Satzes ein Argument für die UN erwartet. Wenn du es nicht nur aus alter Gewohnheit benutzt, muss es ja noch einen anderen Grund geben.

    Lasst dem Simonyi oder wer das mit UN war seinen verdienten Platz!

    Ja, früher war es sinnvoll, aber heutzutage nicht mehr.

    Diese Diskussion hier scheint mir überflüssig! 😃

    Ja, mir auch.



  • Dejavu schrieb:

    Nicht nur aus alter Gewohnheit (1996 oder früher) benutze ich UN weiterhin gerne, wenn auch nicht ausschliesslich.

    Irgendwie hätte ich am Ende dieses Satzes ein Argument für die UN erwartet. Wenn du es nicht nur aus alter Gewohnheit benutzt, muss es ja noch einen anderen Grund geben.

    Das Ende dieses Satzes hatte ich doch schon mitgeteilt. Weil viele von Microsoft stammende Bibliotheken wie die WinApi die UN unverdrossen als Schnittstelle benutzen. Warum sollte ich die MS-spezifischen Bennungen wesentlich ändern? Da ist immerhin schon in der Namensgebung ein klares verständliches Konzept zu erkennen.



  • berniebutt schrieb:

    Das Ende dieses Satzes hatte ich doch schon mitgeteilt. Weil viele von Microsoft stammende Bibliotheken wie die WinApi die UN unverdrossen als Schnittstelle benutzen. Warum sollte ich die MS-spezifischen Bennungen wesentlich ändern? Da ist immerhin schon in der Namensgebung ein klares verständliches Konzept zu erkennen.

    UN ist kein Teil der Schnittstelle der zB WinAPI oder MFC.



  • Es wurde außerdem ja bereits auf den Umstand hingewiesen dass das was man heute gemeinhin unter "ungarischer Notation" versteht eben genau nicht das ist was sich Charles Simonyi dabei gedacht hat...



  • Bezeichner mit sprechenden Namen zu belegen ist wohl im großen und Ganzen immer noch die beste Methode.

    Kann man den Zweck schon aus dem Bezeichner ableiten, bedarf es selten einer Typangabe im Namen, eigentlich nicht mal einer Typisierung. Erleichtert Les- und Wartbarkeit - "the code is the comment".



  • 'i' ist bei mir ein Index oder eine Laufvariable, nicht 'dwNummerAufEinElementInMeinemLieblingsArray'.
    C ist kurz, knapp und präzise - das schätze ich daran 👍



  • ist das eine Antwort auf mich? falls ja:

    eine Indexvariable "i" zu nennen, widerspricht dem Prinzip der "sprechenden Namen" ja nicht, solange a) jeder erkennen kann, daß i als Indexvariable dient und b) der Wirkungsbereich von i kurz genug ist, um den Zweck auf einen Blick zu erkennen - zB paar Codezeilen innerhalb einer Methode oder Funktion.

    - das geht nicht nur in C 🙂



  • berniebutt schrieb:

    Weil viele von Microsoft stammende Bibliotheken wie die WinApi die UN unverdrossen als Schnittstelle benutzen. Warum sollte ich die MS-spezifischen Bennungen wesentlich ändern? Da ist immerhin schon in der Namensgebung ein klares verständliches Konzept zu erkennen.

    MS selbst rät inzwischen von der verwendung der so genannten "UN" ab.


Log in to reply