Sauberes Programmieren // Varibeln mit Prefix
-
Hi,
also bei uns in der Firma wird für die eingebauten Typen (int, float, ...) ein Präfix verwendet. Ebenso für die Windows Controls (z.B. edt für Editbox). Bei den Selbstgeschriebenen Klassen gibt es keine eindeutige Vorschrift, aber Pflicht ist mindestens ein sinnvoller Name.
MFG
Kai
-
Kein Mensch verwendet heutzutage noch ungarische Notation zusammen mit C++ Code.
Woher hastn das? Nur weil viele sagen, dass es nicht sinnvoll ist, heißt das noch lang nicht, dass es keiner verwendet. Auch wenn ich oo programmiere ist in c++ noch lange nicht alles ein Objekt. Und bei eingebauten Typen isses in c++ genauso sinnvoll respektive sinnlos wie in C. 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.
Die Präfixe machen den Code zwar optisch vielleicht nicht schön (aber 'std::' tut das auch nicht) , aber beim Lesen hindern tun sie wohl kaum und wer es gewohnt ist, schätzt es.
Natürlich kann man die Notation bei Objekten nicht durchziehen, aber man kann ja ein bisschen improvisieren, wo's sinnvoll erscheint:
z.B. ap für auto_ptr, itr für Iterator und itrp für einen Iterator, der selber wieder auf einen Zeiger zeigt.
-
Original erstellt von kartoffelsack:
Woher hastn das? Nur weil viele sagen, dass es nicht sinnvoll ist, heißt das noch lang nicht, dass es keiner verwendet.im allgemeinen hält man sich daran was die Gurus sagen...
Die Präfixe machen den Code zwar optisch vielleicht nicht schön (aber 'std::' tut das auch nicht) , aber beim Lesen hindern tun sie wohl kaum und wer es gewohnt ist, schätzt es.
wir haben letztens eine Beisprechung bezüglich Code Design gehabt.
das Resultat war, dass sich alle Programmierer einstimmig gegen ungarische Notation ausgesprochen haben.Natürlich kann man die Notation bei Objekten nicht durchziehen, aber man kann ja ein bisschen improvisieren, wo's sinnvoll erscheint:
z.B. ap für auto_ptr, itr für Iterator und itrp für einen Iterator, der selber wieder auf einen Zeiger zeigt.lpfnWndProc ist das beste Beispiel für den unsinn von ungarischer Notation.
ap? auto_pointer oder array of pointers?
itrp? Zeiger auf iterator oder iterator auf zeiger?soviele Fragen... da ist es noch lange nicht klar.
Wenn man funktionen kurz hält braucht man das alles sowieso nicht, da man dann die deklaration der variable dann ja eh sieht.
und klassenmembervariablen gibts nur so wenige, dass man den überblick leicht behalten kann.bzw. hat die ungarische Notation eine schwachstelle: funktionen. was geben die zurück? da muss man immer nachsehen.
aber wenn jemand ungarische Notation verwenden will, bitte, ich hindere niemanden daran - ich kann nur Gründe dagegen nennen.
-
Original erstellt von Dimah:
unter c braucht man das weil man ständig selber wissen muss was das für ein typ ist
z.b. bei printfDu musst auch in C++ wissen, was für ein Typ das ist. Du musst immer wissen, was für ein Typ 'das' ist. Man kann mit einem int nunmal nicht so umgehen, wie mit einem Datenbankinterface.
[Ich programmiere zB mit einem Compiler. Der sagt mir, wenn ich den falschen Typen mit dem Namen erwische. Auch bei printf.]
Die UN ergibt genau dann Sinn, wenn man die Typen _ignoriert_, beispielsweise bei einer string2int-Funktion wo man gerne zwei Variablen 'num' nennen will.
[ Dieser Beitrag wurde am 04.03.2003 um 17:40 Uhr von Daniel E. editiert. ]
-
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 redecu, 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 bravfor (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