Ungarische Notation veraltet



  • Hier soll es nicht darum gehen, was schöner aussieht, oder was jemandem persönlich besser gefällt, sondern ob die ungarische Notation durch moderne IDEs nicht mehr nötig ist. Das man nun bequem den Typ Ersetzen kann (Refaktoring), ist übrigens ein weiterer Vorteil, der sich durch moderne IDEs ergibt.

    [ automatisch ] schrieb:

    Wenn ich was programmier, dann weiß ich doch welche Variable ich brauch

    Nicht jeder muss nur mit eigenen Code arbeiten.

    Sieben ist die ungefähre Größe des Kurzeitgedächtnis (http://www.google.de/search?hs=Fj9&hl=de&client=firefox-a&rls=org.mozilla%3Ade-DE%3Aofficial&q=Kurzzeitgedächtnis+sieben+dinge+gleichzeitig&btnG=Suche&meta=), übrigens unabhängig von der sonstigen Intelligenz. f'`8k

    Bye, TGGC (\-/ returns)



  • Zur ungarischen Notation sind vielleicht auch auf folgender Seite die Punkte 30 und 31 interessant. 🙂

    http://mindprod.com/jgloss/unmainnaming.html



  • Gomon schrieb:

    Was hat denn nun das mit irgendetwas zu tun? Aber um auch diesem Argument den Wind aus den Segeln zu nehmen, ja ich habe an der Uni die Möglichkeit den Source Code von Windows einzusehen.

    lpszText ist weitaus angenehmer weil ich dem Namen SOFORT den Typ entnehmen kann.

    Gomon

    Wegen dem Gebrauch der ungarischen Notation schließe ich auf eine Gedächtnisschwäche deiner Person. Normalerweise kennen die Programmierer den Typ der Variable.

    Achja: Was bedeutet eigentlich "lpsz" ausgeschrieben? Long Pointer String Z****?
    Warum "Long"? Und das 'Z'? Ist es dazu da, damit der code 1337-mäßig aussieht?

    Und wie lautet dann das Prefix von einem Object, welches vom Typ map <string , Object> ist? Angenommen Object ist vom typ vector<foo> und foo ist vom typ stack<int>?



  • Ho

    Das ist ja schon in sich widersprüchlich. Meistens sind die UNIX/Linux Progammierer doch immer so eingefleischte Minimalisten die NIEMALS eine moderne IDE nutzen würden, sondern immer auf Sachen wie vi oder emacs setzen. Und die sind mitnichten modern, insofern ist gerade dort die ungarische Notation in absoluter MUSS!

    Davon ab trifft jeder diese Entscheidung für sich selbst insofern geht es sehr wohl darum, was schöner aussieht und mit wsa man sich komfortabler fühlt!

    Gomon



  • Gomon schrieb:

    Ho

    Das ist ja schon in sich widersprüchlich. Meistens sind die UNIX/Linux Progammierer doch immer so eingefleischte Minimalisten die NIEMALS eine moderne IDE nutzen würden, sondern immer auf Sachen wie vi oder emacs setzen. Und die sind mitnichten modern, insofern ist gerade dort die ungarische Notation in absoluter MUSS!

    Davon ab trifft jeder diese Entscheidung für sich selbst insofern geht es sehr wohl darum, was schöner aussieht und mit wsa man sich komfortabler fühlt!

    Gomon

    Netter Versuch seriös zu wirken, Troll. 😃
    Was hat die ungarische Notation damit zu,ob man ne überladene IDE nutzt oder nen wesentlich flexibeleren editor wie vim?



  • Oh Man! Das z steht für zero und bedeutet daß es sich um eine NULL-terminierte Zeichenkette handelt. Das lp steht für long pointer weil es früher eine Bedeutung spielte und jederzeit wieder Bedeutung erlangen kann, sollte eine zukünftige Windows Version wieder auf mehreren Architekturen verfügbar gemacht werden.

    Gomon



  • Das hat insofern etwas damit zu tun, als daß als Gegenargument angeführt wird, daß eine moderne IDE sowieso den Typ erkennen könnte.



  • Gomon schrieb:

    Oh Man! Das z steht für zero und bedeutet daß es sich um eine NULL-terminierte Zeichenkette handelt. Das lp steht für long pointer weil es früher eine Bedeutung spielte und jederzeit wieder Bedeutung erlangen kann, sollte eine zukünftige Windows Version wieder auf mehreren Architekturen verfügbar gemacht werden.

    Gomon

    Achsooo. "früher eine Bedeutung spielte"? => veraltet 😃

    Gomon schrieb:

    Das hat insofern etwas damit zu tun, als daß als Gegenargument angeführt wird, daß eine moderne IDE sowieso den Typ erkennen könnte.

    Wer nutzt schon ne IDE. IDE's sidn doch was für Weicheier. 🤡

    Also mal ehrlich. Es dürfte einem Programmierer immer bewusst sein, dass man strings in char* ( oder string in c++ ) speichert und nicht in int oder float.

    Somit ist das Prefix str schonmal wertlos.

    Den Unterschied zwischen int und float dürfte ein Programmierer auch kennen.

    Naja, aber jedem das seine.



  • Ach Mensch. Wenn du die Vorteile der ungarischen Notation nicht schätzt, dann lass es eben. 🙄 Keiner zwingt dich dazu.

    Sinnvolles Einsatzgebiet der ungarischen Notation:

    http://www.microsoft.com/development/literature/not/hungary.html





  • Shade Of Mine schrieb:

    http://schornboeck.net/artikel/cobject.htm

    Es heißt Präfix/Präfixe und nicht Prefix/Prefixe



  • Was macht ihr (ungarische Notationsbeführworter) denn nun mit Objekten, Maps, Vektoren usw.?



  • Am besten sowas:

    map< string , vector< map<string , stack> > >

    Lautet dann das Prefix etwa mapstrvecmapstrstck?



  • Och ist ganz einfach:

    Bsp: vecAsbVenAutos
    [b]vec[/b]tor gefüllt mit [b]A[/b]utos [b]s[/b]orted [b]b[/b]y [b]Ven[/b]dor mit dem Namen [b]Autos[/b].
    

    Ist doch echt brilliant, nicht? Man hat einfach alle Infos, die man braucht auf einen Blick und das trotzdem absolut intuitiv. Demnächst werd ich wahrscheinlich noch wichtige Termine in die Variablen eintragen, damit ich nicht ständig das Programm wechseln muss, was mich ungeheuer aus meinem Rythmus reißt.

    Lautet dann das Prefix etwa mapstrvecmapstrstck?

    Ist schon ein ganz guter Ansatz, allerdings fehlen noch 2 entscheidende Dinge:
    - die Sortierung (um während dem Programmieren Aufschluss über die Laufzeit zu haben)
    - der Name selbst

    mapKStrVVecMapKStrVStcknsName
    

    Klarerweise mussten auch noch der Key und der Value klarer differnziert werden, ansonsten wurde eben noch die Tatsache angegeben, dass der Vektor nicht sortiert ist und der Name wurde angefügt. Wieder einmal mehr ist bewiesen, dass alle Software Entwickler, die keine Präfixe verwenden keine Ahnung haben ..



  • befürworter schrieb:

    Och ist ganz einfach:

    Bsp: vecAsbVenAutos
    [b]vec[/b]tor gefüllt mit [b]A[/b]utos [b]s[/b]orted [b]b[/b]y [b]Ven[/b]dor mit dem Namen [b]Autos[/b].
    

    Ist doch echt brilliant, nicht? Man hat einfach alle Infos, die man braucht auf einen Blick und das trotzdem absolut intuitiv. Demnächst werd ich wahrscheinlich noch wichtige Termine in die Variablen eintragen, damit ich nicht ständig das Programm wechseln muss, was mich ungeheuer aus meinem Rythmus reißt.

    Lautet dann das Prefix etwa mapstrvecmapstrstck?

    Ist schon ein ganz guter Ansatz, allerdings fehlen noch 2 entscheidende Dinge:
    - die Sortierung (um während dem Programmieren Aufschluss über die Laufzeit zu haben)
    - der Name selbst

    mapKStrVVecMapKStrVStcknsName
    

    Klarerweise mussten auch noch der Key und der Value klarer differnziert werden, ansonsten wurde eben noch die Tatsache angegeben, dass der Vektor nicht sortiert ist und der Name wurde angefügt. Wieder einmal mehr ist bewiesen, dass alle Software Entwickler, die keine Präfixe verwenden keine Ahnung haben ..

    Hat schon seine Vorteile, wenn der Prefix 10 mal so lang ist wie der eigentliche Variablenname! Das bringt echt Vorteile mit sich!

    Ungarische Notation: mapKStrVVecMapKStrVStcknsName
    UNIX/Linux-like: name



  • TGGC schrieb:

    Hier soll es nicht darum gehen, was schöner aussieht, oder was jemandem persönlich besser gefällt, sondern ob die ungarische Notation durch moderne IDEs nicht mehr nötig ist. Das man nun bequem den Typ Ersetzen kann (Refaktoring), ist übrigens ein weiterer Vorteil, der sich durch moderne IDEs ergibt.

    [ automatisch ] schrieb:

    Wenn ich was programmier, dann weiß ich doch welche Variable ich brauch

    Nicht jeder muss nur mit eigenen Code arbeiten.

    Sieben ist die ungefähre Größe des Kurzeitgedächtnis (http://www.google.de/search?hs=Fj9&hl=de&client=firefox-a&rls=org.mozilla%3Ade-DE%3Aofficial&q=Kurzzeitgedächtnis+sieben+dinge+gleichzeitig&btnG=Suche&meta=), übrigens unabhängig von der sonstigen Intelligenz. f'`8k

    Bye, TGGC (\-/ returns)

    Es gibt mehr als 7 verschiedene Präfixe in der ungarischen Notation, was mach ich jetzt bloß?!



  • Langzeitgedächtnis benutzen. f'`8k

    Bye, TGGC (\-/ returns)



  • dragon90# schrieb:

    Es gibt mehr als 7 verschiedene Präfixe in der ungarischen Notation, was mach ich jetzt bloß?!

    Sie vernünftig organisieren. Die korrekte Aussage ist nicht, dass man sich "sieben Dinge" merken kann sondern "sieben +/- zwei Chunks". Chunks können durchaus auch aus kleineren Teilen zusammengesetzt sein.
    Siehe "1 2 3 4 5 6 7 8 9 1 2 3 4 5 6" - da ist bei der Ziffer 7, durchschnittlich aber spätestens bei der 9 Schluß.
    Wenn du dir die selbe Ziffernfolge aber als "12 34 56 78 91 23 45 6" merkst, kommt durchschnittlich jeder bis zur 45. Und wennst dir "1 bis 9" und "1 bis 6" als Chunk merkst, hast ohne Probelme die ganze Folge. Letzteres sind nur zwei Chunks. Hättest dann sogar noch ~5 Chunks Platz übrig 😉
    Ist also alles eine Frage der Organisation.

    Intuitiv ist uns das aber sowieso allen klar. Wie merkst du dir z.B. Telefonnummern? 😉



  • Das einzige was ich an der Ungarischen Notation gutfinde bzw. was ich benutze sind "m_" für Membervarialben und eventuell "p" für Pointer. Wobei das p ja eigentlich ausgedient hat, da moderne IDE's Zeiger erkennen und somit den Punkt . durch einen Pfeil -> ersetzten können.

    Visual Assistent X macht's vor.



  • Wenn ich das so toll organisieren kann, wozu soll ich mir dann nen Präfix vor die Variable schreiben?


Anmelden zum Antworten