Logische Schreibweisen

  • vor vielen Jahren gab es hier mal ne Kampagne, um die Variablenbezeichnungen verständlicher zu machen. Da hat man sich so ungefähr auf die von Martl genannte Notation geeinigt und das für "guten Stil" erklärt.


    Wie gesagt, es gibt in unserer Branche auch Anfänger und andere Personen, die etwas weniger Überblick haben. Denen sollte damit geholfen werden.
    Immerhin laufen unsere Programme hinterher auch ohne uns und unter der Obhut von Leuten, die nicht unbedingt Programmierer sind.
    Wir arbeiten schließlich alle für irgendwelche Kunden, die zum Schluß zufrieden sein sollen.

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Schritt für Schritt zum Roboterprofi!

  • Ich wäre da etwas vorsichtiger mit meiner Ausdrucksweise. Bezeichnungen wie etwa Dilettanten und/oder Faule haben hier nichts zu suchen.


    Danke Roland, ich bin ja auch öfter mal Diletant. :goodpost:

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Guten Tag!


    Also ich habe die ungarische Notation im Studium gelernt und nutze sie täglich. Sie wird insbesondere dann sinnvoll, wenn Kollegen mit einem fremden Programm arbeiten sollen. Da ist es durchaus hilfreich, anhand der Notation gleich zu wissen, worum es sich bei der Variable handelt.


    Allerdings verbietet auch die microsoftsche Programmierrichtlinie die Verwendung der ungarischen Notation...nicht alles, was vom Softwareriesen festgelegt wird, ist sinnvoll :evil1:


  • Wenn man eine anständige IDE zur Verfügung stehen statt, dann bringt die ungarische Notation überhaupt nix.


    Da gebe ich Dir Recht! Wir arbeiten leider viel mit Embarcadero C++ Builder. Den zähle ich nicht zu den vernünftigen IDEs...

  • Allerdings verbietet auch die microsoftsche Programmierrichtlinie die Verwendung der ungarischen Notation...nicht alles, was vom Softwareriesen festgelegt wird, ist sinnvoll :evil1:

    Hallo!

    Doch, das ist so gar sehr sinnvoll!

    Die ungarische Notation ist ein Modell, welches vor ca. 20 Jahren noch sinnvoll war, aber heutzutage eher lästig ist. In höheren Programmiersprachen (und dazu gehört KRL nicht) ist die ungarische Notation nahezu unbekannt und das liegt einerseits an der Verbreitung der objektorientierten Programmierung, sowie an den komfortablen IDEs, wie z.B. Visual Studio. Der Typ einer Variablen lässt sich heute durch simples "Mausdrüberhalten" herausbekommen, da braucht man keine Präfixe mehr.

    Auch Roboterprogrammierer, ins Besondere KUKA-Programmierer, brauchen heute nicht mehr auf dem Smartpad programmieren, sondern können Work Visual benutzen, welches ebenfalls über Tooltips den Typ der Variablen anzeigt. Es ist schon erstaunlich, dass KUKA-Programmierer bei einem Zeichenumfang von 24 so verschwenderisch mit den Zeichen umgehen. Einerseits verballern sie die Zeichen für Präfixe und Unterstriche, andererseits meinen viele nur 4-5 Buchstaben müssten reichen. Ich habe schon Exoten wie "bBool" oder diEingang34" gesehen, da fehlen mir dann die Worte...

    Die Microsoftrichtlinie wird hier nur teilweise zitiert. Sie besagt auch, dass Variablen auf bestimmte Art und Weise benannt werden sollen, so dass der Kontext sofort erkannt wird. Ein Boolscher Zustand könnte z.B. so aussehen: "IsActive" oder "HasPart". Es ist eindeutig, das "Is" einen boolschen Zustand beschreibt. Oder wenn eine Zuweisung von True oder False erfolgt, kann es ja nur eine Bool sein. Genauso könnten eine numerische Variable "NumberOfGrippers" heissen, Die Anzahl von Greifern kann nur numerisch festgelegt werden.

    Aus meiner Sicht sollte die UN bei einfachen Datentypen vermieden werden, da der Code sich schlecht lesen lässt, und es keinen Grund dafür mehr gibt. Die einzige Ausnahme bei mir sind noch I/Os die ich mit "di" und "do" Präfixe.

  • Guten Morgen!


    Ich selber komme aus der Hochsprachenprogrammierung (C++). In unserem Unternehmen gab es auch Bestrebungen, das Microsoftsystem umzusetzen, bis wir dann vor einem halben Jahr gemeinsam entschieden haben, dass das System unpraktisch ist, vor allem im Hinblick auf die Programmierung im Team. Das sogenannte "Mausdrüberhalten" ist auf Dauer schlichtweg lästig, weil der Programmierer die Hände im Normalfall auf der Tastatur hat und nicht an der Maus.

    Außerdem ist es mir lieber, den Variablentyp auf einen Blick zu sehen, als dafür extra den Mauszeiger zu suchen, ihn auf die Variable zu halten, zu warten, bis die IDE sich bequemt (wir nutzen den Embarcadero C++ Builder 10.2.3 :-()

    Natürlich ist es jedem selbst (im Rahmen der Unternehmensphilosophie) überlassen, welche Notation er einsetzt. Bei uns heißt es inzwischen glücklicherweise wieder bActive, dValue usw. Wenn man es rein auf boolsche Variablen begrenzen würde, könnte ich auch mit den zusätzlichen Buchstaben von "Is" und "Has" leben, ist ja im Endeffekt nichts anderes, als "b" wie bool. Anders ist es da bei double, float, string und anderen Variablen. Da ist man zwangsläufig an den Hint beim Mouseover angewiesen.


    Wie dem auch sei, beides hat Vor- und Nachteile.


    Gruß


    Christian

  • ist ja im Endeffekt nichts anderes, als "b" wie bool.

    Hallo,


    etwas anders ist es schon. Der Sinn ist der, dass man Code wie normale Sätze lesen kann. Bsp: "IF GripperHasPart AND NumberOfParts > 3" liest sich einfach besser als "IF bPart AND iParts > 3". Es geht um das vollständige Ausschreiben von Zuständen (nicht nur Abkürzungen, auch wenn sich das nicht immer vermeiden lässt) und um die Verwendung bestimmter "Schlüssel"-Wörter.

    Bei den Tooltips und anderer Hilfsmittel kommt es sicher stark auf die Qualität der IDE an.

    Letztendlich ist es wichtig, dass man sich an ein bestimmtes System hält und sinnvolle Variablennamen verwendet.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden