1. #1
    Avatar von Dose
    Registriert seit
    23.12.2011
    Beiträge
    83
    Thanked 22 Times in 17 Posts

    Standard Machen Typ-Präfixe bei stark typisierten Sprachen Sinn?

    Hey,

    manche Programmierer setzen ja ein Präfix für den Typ einer Variable vor ihren Namen, zum Beispiel i für Integer, f für Float, s oder str für String und so weiter. Bei schwach typisierten Sprachen wie PHP finde ich das sinnvoll, dort hat man ohnehin schon ein ordentliches Chaos da man ständig prüfen muss, ob z.B. der Parameter einer Funktion auch tatsächlich den Typ hat, den man erwartet. Wenn ich da dann z.B. $iUserId habe weiß ich, dass es eine rein nummerische Id (1234) ist und kein Id-String wie Microsoft sie beispielsweise einsetzt. Wobei man auch hier damit argumentieren kann, dass in einer vernünftigen Dokumentation der Typ angegeben wird. Aber hier macht es zumindest vom Ansatz her Sinn meiner Meinung nach.

    Teils sieht man aber auch Code in stark typisierten Sprachen wie Java, C# oder C++, in dem diese Präfixe verwendet werden. Dort sehe ich keinerlei Mehrwert: Wenn ich einen Integer habe und dort einen String (etwa obiges Beispiel mit der User-Id) rein schreiben möchte, kann ich das Programm nicht mal compilieren. Der Fehler wird bei einer guten IDE sogar direkt zur Laufzeit angezeigt. Bei Sprachen die nicht typsicher sind ist dies von der Sprache oder IDE her nicht der Fall. Da kann ich einer Funktion die z.B. ein Array erwartet auch einen String übergeben. Je nachdem wie weit der Programmierer mitgedacht hat, wird dann eine selbst geschriebene Exception geworfen, oder das ganze funktioniert halt spätestens dann nicht, wenn Array-Typische Funktionen auf einen String angewendet werden sollen.

    Da ich nicht ausschließen will, dass ich in meiner Überlegung einen Aspekt übersehen habe würde ich gerne von euch wissen: Stimmt ihr mir zu oder erachtet ihr Typ-Präfixe in Variablenbezeichnungen als sinnvoll? Wenn ja warum? Nutzt ihr sie vielleicht sogar selbst?

  2. The Following User Says Thank You to Dose For This Useful Post:

    Negok (23.03.2016)

  3. #2
    Avatar von Nuebel
    Registriert seit
    23.11.2013
    Beiträge
    446
    Thanked 361 Times in 236 Posts

    Standard AW: Machen Typ-Präfixe bei stark typisierten Sprachen Sinn?

    Hi,

    es gibt die weit verbreitete Ungarische Notation.
    Früher als man viel in ANSI C programmierte, konnte die Notation nützlich sein. Der ANSI Standard sah nämlich vor, dass Variablen Deklarationen am Anfang einer Funktion stattfinden müssen und nicht dort, wie heute üblich, nah an der Stelle ihrer ersten Verwendung. Hinzu kommt, dass Funktionen gerne mal mehrere Bildschirm-Seiten lang wurden, sodass die Deklarationen nicht immer sichtbar waren, je nachdem wie weit man sich im Quelltext verirrte. Und es gab keine IDEs mit dem Funktionsumfang von heute.
    Seit dem C89-Standard kann man die Deklarationen platzieren wo man möchte. Das macht die Ungarische Notation überflüssig meiner Meinung nach. Einzig allein ein Präfix für Globale Variablen und Konstanten würde ich heute noch sinnvoll finden.

    Wenn ich mal in schwach typisierten Sprachen programmiere, verzichte ich ebenfalls auf die Notation. Ich gebe meinen Variablen aussagekräftige Namen, aus denen sich der Typ i.d.R. Regel ableiten lässt (für mich*) und/oder ich kommentiere.
    *) var age; zum Beispiel bedeutet für mich immer, dass es ein Integer ist
    Geändert von Nuebel (19.03.2016 um 21:47 Uhr)

  4. The Following User Says Thank You to Nuebel For This Useful Post:

    Dose (19.03.2016)

  5. #3

    Registriert seit
    23.03.2016
    Beiträge
    3
    Thanked 0 Times in 0 Posts

    Standard AW: Machen Typ-Präfixe bei stark typisierten Sprachen Sinn?

    Kurz gesagt. Nein.

    Der Typ der Variable sollte sich meiner Meinung nach aus dem Kontext ergeben. Wenn der Typ der Variable sich nicht aus dem Kontext ergibt, ist die Methode zu lang in der sie benutzt wird oder zu allgemein bezeichnet.

    Ein Beispiel:
    Eine Variable $data sagt quasi nichts aus. Man weiß nicht warum sie benutzt wird oder was diese enthält.
    Eine Variable $name sagt hingegen aus das diese einen Namen enthält (je nach Kontext kann die Bedeutung auch anders sein)

Ähnliche Themen

  1. Machen Überwachungskameras zuhause Sinn?
    Von DotNet im Forum Security
    Antworten: 15
    Letzter Beitrag: 12.02.2017, 13:53
  2. Antworten: 3
    Letzter Beitrag: 14.03.2014, 20:23
  3. Antworten: 6
    Letzter Beitrag: 08.01.2014, 03:09
  4. In welchen Sprachen programmiert ihr?
    Von Minecraft im Forum Hochsprachen
    Antworten: 10
    Letzter Beitrag: 13.08.2012, 21:21
  5. [Vorschlag] Präfixe
    Von CoD im Forum Feedback
    Antworten: 2
    Letzter Beitrag: 20.11.2011, 13:01
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.