Sauberes Programmieren // Varibeln mit Prefix



  • also so richtig Probleme zu wissen was fürn typ ich programmiert hab hatich nochnie...... grösstenteils logisch das name kein int und hausnummer kein string ist.
    Aber wenn jemand anders dann dadrangesetzt wird macht das schon Sinn denkich, nur dumm wenn aus dem short dann doch mal ein long werden soll nachdem man ihn 100 mal irgendwo benutzt hat.



  • Ich finde, dass man seinen eigenen Style darin entwickeln sollte (natürlich nur soweit, dass es jeder andere auch versteht). Meiner Meinung nach ist es leserlicher bei den Standardsachen wie int (i oder n), bool (b oder f) oder string (str oder sz) einen Prefix zu verwenden, da man sonst schnell den Überblick verliert. Für Klassen benutze ich meistens keinen einbuchstabigen Prefix sondern ein Wort (z.B. m_editEingabe oder m_fileOpen). Ist einfach leserlicher. Ich glaube nicht, dass irgendwer ohne gewisse Regeln programmiert. So ziemlich jeder schreibt ein p vor den Pointer oder ein "m_" vor Membervariablen... Wenn nicht sind IMHO die anderen Leute arm dran die später mal mit dem Code arbeiten müssen... Dann muss man nämlich bei jeder Variable nachgucken ob Pointer oder nicht, Member oder nicht, Global oder nicht usw. 🙄



  • Woher hastn das? Nur weil viele sagen, dass es nicht sinnvoll ist, heißt das noch lang nicht, dass es keiner verwendet.

    Ich verwendete in meiner Aussage das Stilmittel der Übertreibung um den Punkt der Aussage deutlicher zu machen.

    Mir ist durchaus bewusst, dass der ein oder andere nach wie vor die ungarische Notation benutzt. Das allein macht sie allerdings keinesfalls besser.
    Es fahren auch einige Menschen Auto nach dem sie Alkohol konsumiert haben.
    Und es programmieren auch Leute Fortran in Prolog.



  • ich kann nur Gründe dagegen nennen.

    Dann nenn sie auch. 🙂

    Was ist an lpfnWndProc schlecht oder Unsinn?



  • Und auf das p vor Zeigern seh ich auch nur Leute verzichten, die sich immer voll auf Ihre Codevervollständigung verlassen. Dann geht man stillschweigen davon aus, dass jeder, der Editor mal lesen will auch ne gute Codevervollständigung hat.

    quatsch, ich lese eine Menge Source von verschiedenen Open Source Projekten, die idr. von den meisten Leuten mit vi(m) oder dem emacs geschrieben werden (oder ähnlichen Editoren), die per default keine schöne Codevervollständigung haben und ich habe noch nie in so einem Projekt ungarische Notation oder vergleichbares entdeckt.

    Encoding the type of a function into the name (so-called Hungarian
    notation) is brain damaged - the compiler knows the types anyway and
    can check those, and it only confuses the programmer. No wonder
    Microsoft makes buggy programs.
    -Linus Torvalds in "Linux Kernel Coding Style" http://www.purists.org/linux/

    [ Dieser Beitrag wurde am 04.03.2003 um 20:39 Uhr von kingruedi editiert. ]



  • Original erstellt von HumeSikkins:
    Nur mal so als winzig kleine Anregung:
    [url=http://www.objectmentor.com/resources/articles/naming.htm

    ]http://www.objectmentor.com/resources/articles/naming.htm[/QB][/QUOTE][/url]

    If you can't pronounce it, you can't discuss it without sounding like an idiot. "Well, over here on the bee cee arr three cee enn tee we have a pee ess zee kyew int, see?"

    ROTFL, wie gut ich das kenne!
    Passiert mir leider auch sehr oft... und ich klinge wohl auch ab und zu
    wie ein Idiot, wenn ich ueber meinen Source rede 😉

    cu, Daniel



  • Also ich hab neu angefangen zu Programmieren 😉
    soll ich mir angewöhnen bei nicht funktionen usw ungarisch zu notieren? (das mit den long und short überleg ich mir selbst noch ;D)

    cya Marco



  • am besten du läßt es gleich ganz bleiben



  • jo, lass es sein. an member ein _ zu haengen ist relativ weit anerkannt, typen gross, vriablen und funktionen klein, anfangsbuchstaben von woertern im namen gross.

    Klasse
    MeinStruct
    objekt
    eineZahl
    funktion
    memberVariable_
    memberFunktion



  • Java Style
    und immer brav

    for (bla) {
    und nicht
    for (bla) 
    {
    


  • Hallo,
    es geht hier nicht darum einen Style als den Richtigen zu propagieren. Es geht hier eigentlich nur darum, dass die ungarische Notation für Sprachen wie C++ oder Java völlig unangemessen ist.

    Wo du deine Klammern setzt und ob dein erster Buchstabe groß- oder kleingeschrieben wird ist Geschmacksache und hautpsächlich abhängig von den Style-Guides eines Projekts.



  • hast du meinen Sarkasmus überlesen 😃
    über sowas sich zu streiten ist unnütz will ich sagen



  • gehört das nach Rund um die Programmierung, oder? Denn der Autor schreibt nichts über C++. Er fragt nur, wie der Name der ungar. Not. lautet, und dass er das mal wo gehört hat.



  • gehört das nach Rund um die Programmierung, oder?

    Da hast du verdammt nochmal völlig recht 😃
    Nur ist der Thread mittlerweile bereits drei Seiten lang, er hat also genug Publikum. Ich sehe also keinen Sinn mehr darin den Thread zu verschieben. Der Zug ist abgefahren 🙂



  • Bitte werdet mal konkret und nennt die Nachteile der ungarischen Notation. 🙂



  • Original erstellt von <bitte>:
    Bitte werdet mal konkret und nennt die Nachteile der ungarischen Notation. 🙂

    Schreibarbeit



  • Also ich mag ungarische Notation, benutze sie hauptsätzlich bei Klassen, sie sind verdammt nützlich da ist mir die Schreibarbeit egal.

    Benutze sie aber nur für die Grundtypen eigene Klassen von mir besitzen des nicht.



  • Also ich als Windows-Programmierer könnte nicht auf die ungarische Notation verzichten. 🙄



  • Ja OK bei WinAPI aufjedenfall nötig aber unbedingt braucht man sie in c++ nicht(also nicht winapi)



  • auch bei windows unnötig.
    warum sollte ich
    lpszCommandLine schreiben, wenns ein CmdLine auch tut?

    Nachteil?
    Schreibarbeit
    erschwert das lesen - du kannst lpfn oder lpsz oder pstr nicht flüssig lesen
    bei klassen sowieso unmöglich UN zu verwenden, bzw. wäre es wahnsinn und würde nur alles verkomplizieren
    welchen prefix hat ein std::string, welchen ein char* und welchen ein TCHAR*?
    was wenn sich der typ einer variablen ändert?
    der eine verwendest sCmdLine, der nächste szCmdLine der nächste pCmdLine und der nächste pstrCmdLine und der nächste strCmdLine und der nächste lpszCmdLine,...
    und irgendwann weisst du, dass du die variable foo brauchst, aber du weisst nicht welches prefix sie hat. wars jetzt ein iFoo, uFoo, uiFoo, nFoo, unFoo?
    und bei functions pointer wirds ja nur noch lustig.


Anmelden zum Antworten