namensgebung für variablen/funktions/typnamen:Kriterien
-
otze schrieb:
jo, ich hab das problem, dass ich es irgendwie nicht schaffe, sinnvolle kurze namen zu vergeben.
kürze ist völlig irrelevant.
aber sinnvoll ist wichtig. evtl schießt Shade gerade über's ziel hinaus.wenn bei mir in einer funktion der rückgabeparameter vom typ "vector" ist, dann nehm ich auch meistens eine variable mit dem namen "vector"
das kann sinnvoll sein. nicht umsonst heißt ne laufvariable i oder j oder k.
der rückgabeparameter hat keinen sinnvollen namen, daher ist ein bedeutunsleerer wue "vector" an sich gut. noch besser (und noch platter) ist "result". da braucht man nichtmal über den typ nachzudenken.-einfach weil mir nichts bessres einfällt...
nicht gut. der platte name sollte schon aus gründlicher überlegung entstammen, in der man verschiedene alternativen begutachtetz hat und letztlich den nimmt, der am wenigsten denkaufwand erfordert, wenn man nach jahren den code nochmal lesen muss.
und wenn ich dann ne funktion habe, die sehr spezialisiert ist, dann hat sie meist solch schlangennamen wie:getGroupMemberWithElement...
guter name, aber designfehler vorher.
wie macht ihr das? nach welchen Kriterien benennt ihr eure variablen/typen/funktionen?
ganz, wie man auch in der außenwelt sachen benennt. der hund heißt hund, das kind heißt kind und die frau heißt frau. willkürliche namen wie bello oder anneliese verwirren nur und lenken vom wesentlichen ab.
ist das problem nicht gut in viele kleine klassen kleinzuhacken, sondern wird zu einem haufen funktionen, dann werden meine funktione auch lang und länger. ich sehe da an einen 6-zeiler, dessen name 36 zeichen lang ist (ausgeschrieben 52 zeichen). und der name ist gut.
wenn du nicht den treffenden namen findest, dann gib dir ruhig auch mal 15 minuten zeit, ihn zu suchen. eigrntlich gibt es kaum was wichtigeres im ganzen programmiergeschäft, als den treffenden namen zu benutzen.
-
Master-Kriterium:
Ein Fremder soll den Code lesen können (auch wenn Du für dich alleine hackst: nach einem halebn Jahr nicht draufgucken bist Du so gut/schlecht wie ein fremder)Also, wie schon gesagt: was steht in der variable drin - in deinem vector z.B. Namen? Mitglieder?
Sprache ist eigentlich egal - ich bevorzuge English, weil es im mittel kürzer ist, IMO prägnanter (weil Übersetzungsvariationen nicht dazukommen), und man sich den Schiet mit umlauten/ß sparen kann.
(Ich hab mal jmd gesehen, der seine Variablen "durchnumeriert" hat: s0, s1, s2, s3, s4, s5.... bitte nicht.)
Sub-Regeln:
-
orthogonality
Bei "jungen" codern stelle ich oft das Bedürfnis fest Variablen "zu sparen" und mit unterscheidlichen bedeutungen wiederzuverwenden. Bringt normalerweise überhaupt nix, und 10 variablen mit je einer Bedeutung sind klarer als 5 Variablen mit je 2. -
principle of least surprise
Konsistenz ist alles. Wenn eine Variable mit der gleichen Bedeutung mal currentMbr, mal curMember heißt, überlädst du "nur" den Aufmerksamkeitsspeciehr des "Lesers". Wenn sie dreimal "member", und einmal "current" heißt, erzeugst Du das Gefühl, daß die Variable an dieser einen Stelle etwas anderes bedeutet, und man sie lieber nicht anrühren sollte.
Genauso umgekehrt: wenn eine Variable "member" mal den namen, mal den ID eines Mitglieds enthält, ist das ganz schön fies.
- age rule
Nach meiner Erfahrung werden die Namen mit den Jahren länger und pendeln sich so um die 15 Zeichen Maximum ein. Weiß nicht woran das liegt...
-
-
volkard schrieb:
und wenn ich dann ne funktion habe, die sehr spezialisiert ist, dann hat sie meist solch schlangennamen wie:getGroupMemberWithElement...
guter name, aber designfehler vorher.
name is mies, hab ihn nämlich nun korrigiert(getElementWithID war doch besser, und heisst was ganz andres^^),und wegen des designfehlers wollte ich dich mal fragen, ob man das in nem andren thread diskutieren kann?
-
otze schrieb:
name is mies, hab ihn nämlich nun korrigiert(getElementWithID war doch besser, und heisst was ganz andres^^)
Wie wäre es mit
GetElementByID()
oder einfach nur
GetElement(int id) ?
-
otze schrieb:
name is mies, hab ihn nämlich nun korrigiert(getElementWithID war doch besser, und heisst was ganz andres^^),
uff!
also das sollte der name bedeuten. dann war's gar kein designfehler. dann war der name nur fragwürdig. unter dem jetzigen namen kann sich jeder was vorstellen.und wegen des designfehlers wollte ich dich mal fragen, ob man das in nem andren thread diskutieren kann?
eigenlich schon, aber hat sich erledigt.
-
volkard schrieb:
wenn du nicht den treffenden namen findest, dann gib dir ruhig auch mal 15 minuten zeit, ihn zu suchen. eigrntlich gibt es kaum was wichtigeres im ganzen programmiergeschäft, als den treffenden namen zu benutzen.
Auch wenn das jetzt off-topic sein sollte
:
Ihr kennt doch sicher von diversen Baumansichten (z.B. im Windows-Explorer) die kleinen + und - vor einem Eintrag, mit denen man die darunterliegende Struktur ein- und ausblenden kann. Wie heißen diese Dinger? Ich habe mich in der Firma durch's halbe Stockwerk gefragt und das MSDN rauf und runter gelesen, aber ich weiß bis heute noch nicht, wie diese Dinger heißen (Ich musste mal eine Baumansicht programmieren, hatte da aber Probleme mit den Variablennamen)
-
Glaubst du, dass die Dinger einen eigenen Namen haben? Für mich ist das einfach ein + und ein - und ich glaube nicht, dass sich dafür jemand einen Namen ausgedacht hat.
-
Ich würde das Open- bzw. CloseTree o.ä. nennen.
-
expand/collapse box/button
-
Optimizer schrieb:
Glaubst du, dass die Dinger einen eigenen Namen haben? Für mich ist das einfach ein + und ein - und ich glaube nicht, dass sich dafür jemand einen Namen ausgedacht hat.
Im Reich von "Chevrons", "Keyboard Accellerators", "Focus Indicators", "Grippers", "Drop Down Arrows", "Menu Bullets" und "Up-Down Controls" hat alles einen Namen
@Rest
Gute Vorschläge, danke!ExpandBox gefällt mir am besten, darauf wäre ich alleine nie im Leben gekommen